24小时热门版块排行榜    

查看: 1290  |  回复: 11

柯柯柯南

新虫 (初入文坛)

[求助] 已知一个复杂的方程式,如何得到三维图 已有1人参与

求助各位大神,已知这一方程式,可否绘制出z随x,y变化的三维图。。能否指点一二,给我发一下这个代码呢?我试了好多都出错。跪谢各位大神。
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

guo_zy_123

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
柯柯柯南: 金币+10, ★★★很有帮助 2016-03-05 13:46:00
CODE:
% 方程是个z的3元一次方程
% 分别结算各个系数

...                                 % d f G l H g 提前给好

z = [];
for x = 0:0.001:1
    for y = 0:0.01:1                %数据范围自己写吧
        
z3 = 1;                             %3次系数
z2 = -(d+f*x^2+(l*x^2)/2);          %2次系数
z1 = ...                            %1次系数,一坨懒得输
z0 = ...                            %常数项系数,自己输吧

z_out = roots([z3,z2,z2,z1]);

plot3(x,y,z_out(1),'ro')                %什么鬼,要画3d的,要是有个复数解你就。。。。
plot3(x,y,z_out(2),'b.')
plot3(x,y,z_out(3),'c.')

hold on
    end
end

老古董
2楼2016-02-26 19:05:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

Mr__Right

专家顾问 (著名写手)

引用回帖:
2楼: Originally posted by guo_zy_123 at 2016-02-26 19:05:07
% 方程是个z的3元一次方程
% 分别结算各个系数

...                                 % d f G l H g 提前给好

z = [];
for x = 0:0.001:1
    for y = 0:0.01:1                %数据范围自己写吧
       ...

这个Matlab只能用isosurface

mathematica用ContourPlot3D

而且其中的除x,y,z之外的符号必须改成数值。

这样问的问题,看不出解决问题的诚意。
文章乃身外之物,要多考虑编辑、审稿人和读者的感受。
3楼2016-02-28 19:53:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guo_zy_123

木虫 (正式写手)

引用回帖:
3楼: Originally posted by Mr__Right at 2016-02-28 19:53:12
这个Matlab只能用isosurface

mathematica用ContourPlot3D

而且其中的除x,y,z之外的符号必须改成数值。

这样问的问题,看不出解决问题的诚意。...

呵呵哒

发自小木虫IOS客户端
老古董
4楼2016-02-29 08:43:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

柯柯柯南

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by guo_zy_123 at 2016-02-26 19:05:07
% 方程是个z的3元一次方程
% 分别结算各个系数

...                                 % d f G l H g 提前给好

z = [];
for x = 0:0.001:1
    for y = 0:0.01:1                %数据范围自己写吧
       ...

大神,问一下,为啥我输入for x=0:0.001:1.4,程序就没有反应了。还有z=[]是直接输这个就可以吗?还是要写三个根的表达式呢?
5楼2016-03-05 14:17:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guo_zy_123

木虫 (正式写手)

【答案】应助回帖

引用回帖:
5楼: Originally posted by 柯柯柯南 at 2016-03-05 14:17:19
大神,问一下,为啥我输入for x=0:0.001:1.4,程序就没有反应了。还有z=[]是直接输这个就可以吗?还是要写三个根的表达式呢?...

for 循环没有end呢
你把我写给你东西放到脚本里写出来,然后运行脚本,(.m文件)
老古董
6楼2016-03-05 16:03:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guo_zy_123

木虫 (正式写手)

引用回帖:
5楼: Originally posted by 柯柯柯南 at 2016-03-05 14:17:19
大神,问一下,为啥我输入for x=0:0.001:1.4,程序就没有反应了。还有z=[]是直接输这个就可以吗?还是要写三个根的表达式呢?...

新建一个script

然后把我给你的代码都贴进去
然后把...的部分修改,
其他部分不用动

点运行

» 本帖已获得的红花(最新10朵)

老古董
7楼2016-03-05 16:04:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

柯柯柯南

新虫 (初入文坛)

送红花一朵
引用回帖:
7楼: Originally posted by guo_zy_123 at 2016-03-05 16:04:32
新建一个script

然后把我给你的代码都贴进去
然后把...的部分修改,
其他部分不用动

点运行...

大神,按照你说的做法,试了一下。
提示错误
Error using plot3
Conversion to double from sym is not possible.

Error in Untitled (line 18)
plot3(x,y,z_out(2),'b.')
能帮我再看看是什么情况吗?是不是需要给这些参数赋值啊。
8楼2016-03-10 09:23:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guo_zy_123

木虫 (正式写手)

引用回帖:
8楼: Originally posted by 柯柯柯南 at 2016-03-10 09:23:18
大神,按照你说的做法,试了一下。
提示错误
Error using plot3
Conversion to double from sym is not possible.

Error in Untitled (line 18)
plot3(x,y,z_out(2),'b.')
能帮我再看看是什么情况吗?是不 ...

应该是出现复数解了,你先看看所有的z_out有没有复数解
老古董
9楼2016-03-10 09:36:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guo_zy_123

木虫 (正式写手)

引用回帖:
8楼: Originally posted by 柯柯柯南 at 2016-03-10 09:23:18
大神,按照你说的做法,试了一下。
提示错误
Error using plot3
Conversion to double from sym is not possible.

Error in Untitled (line 18)
plot3(x,y,z_out(2),'b.')
能帮我再看看是什么情况吗?是不 ...

在plot3的第一行加 break point
也就是算完了  z_out = roots([z3,z2,z2,z1]);这行
点开你的workspace看下z_out是不是有复数了
老古董
10楼2016-03-10 09:39:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 柯柯柯南 的主题更新
信息提示
请填处理意见