Matlab 版 (精华区)

发信人: ramjet (拖拖拉拉), 信区: Matlab
标  题: [合集]求助,k1*x+k2*y+k3*z=0,怎么画图表示?
发信站: 哈工大紫丁香 (2001年08月14日18:08:08 星期二), 站内信件


────────────────────────────────────────
 cxs (冬日暖阳)                       于 2001年08月10日15:35:55 星期五 说道:

用哪个命令?
我的表达式:
670.102*Zp*Xp^2-147.627*Xp^2-773.694*Zp^2*Xp+
403.245*Zp*Xp*Yp
+3226.63*Zp*Xp-731.408*Yp*Xp+1280.90*Xp-
31.3506*Zp^3+643.470*Zp^2*Yp+925.565*Zp^2-
3743.82*Zp-710.993*Zp*Yp-693.073*Zp*Yp^2+8374.19+
1620.34*Yp-722.143*Yp^2=0。
怎么画呀?谢谢

────────────────────────────────────────
 Christy (苦恼@杜撰论文的人生)        于 2001年08月11日01:08:09 星期六 说道:

一个比较直观但幼稚的方法。
figure;
for xp=a:s1:b
    for yp=c:s2:d
        for zp=e:s3:f
            if abs(F(xp,yp,zp)-tol)==0
                plot3(xp,yp,zp);
                hold on;
            end
        end
    end
end
%where a,b,c,d,e and f are the lower and upper limits you need
%for three variables; s1,s2 and s3 are the step lenghts,
%respectively. tol is a tolerance and F(.) is your function.
呵呵,太幼稚了,偶实在是记不起更好的方法。你或许可以在
SIMULINK下试试。

────────────────────────────────────────
 ramjet (>>>))))))))))))(o>)          于 2001年08月11日06:49:20 星期六 说道:

可以把这个方程写成z(x,y)函数的形式,然后参考mesh命令的例子。

────────────────────────────────────────
 Christy (苦恼@杜撰论文的人生)        于 2001年08月11日08:48:22 星期六 说道:

能改写就特容易了,可是大多数非线形方程无法改写,比如这个。
当然,你要是用一定的坐标变换也可以,不过原函数的特性就
很难再看出来了。

────────────────────────────────────────
 bage (欧是铁八哥)                    于 2001年08月11日09:00:49 星期六 说道:

ezplot()只能处理二元函数,ezplot3()能处理3元函数,
但是只能处理参数方程,hehe......
看来这个问题没有单个命令能够解决的。

────────────────────────────────────────
 Christy (苦恼@杜撰论文的人生)        于 2001年08月11日09:27:02 星期六 说道:

所以还是用偶的笨办法吧,hoho。。。

────────────────────────────────────────
 bage (欧是铁八哥)                    于 2001年08月11日10:39:33 星期六 说道:

哪个方法太慢了,三重循环,机器配置不好的估计能弄死机,hoho......
把循环改成向量吧,

────────────────────────────────────────
 Christy (苦恼@杜撰论文的人生)        于 2001年08月11日21:55:59 星期六 说道:

没事,偶用P166试了.不过用向量是好主意. Clever!

────────────────────────────────────────
 bage (欧是铁八哥)                    于 2001年08月12日07:12:29 星期天 说道:

厉害,我记得当时我做毕业设计的时候,要做数值计算
本来要算50K个数据,结果用p166挂了一个晚上第二天
一看才算了800个,当时我就ft了。

────────────────────────────────────────
 Christy (苦恼@杜撰论文的人生)        于 2001年08月12日08:23:49 星期天 说道:

哈哈哈,后来呢?

────────────────────────────────────────
 bage (欧是铁八哥)                    于 2001年08月12日10:41:33 星期天 说道:

后来就强行推出,修改了一些地方,数据采集稀疏一些,
减少到20K,才勉勉强强算了出来,hoho

────────────────────────────────────────
 bage (欧是铁八哥)                    于 2001年08月12日10:57:50 星期天 说道:

循环改成向量最简单的例子
for n=1:10
    x(n)=sin(n*pi/10)
end
可以改为
n=1:10;
x=sin(n*pi/10);
数小的时候看不出来什么优点,但是如果把10换乘10^5
肯定很明显。

────────────────────────────────────────
 Christy (苦恼@杜撰论文的人生)        于 2001年08月13日05:16:23 星期一 说道:

nod.//
尤其象偶要做二维图象变换的算法,还不是滤波器.
其实偶以前也ft过,经历和你差不多.减少数据点
之后差一点把工作点给漏了.

────────────────────────────────────────
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.409毫秒