liangpj83 发表于 2007-11-14 14:56

如何用matlab画出带级数的三维图

设z=sin(x)*exp(y)+sin(2x)*exp(2y)+……+sin(nx)*exp(ny),0<x<10,0<y<10,
请问如何用matlab仿真出此式子的三维图和二维等高线图?
谢谢!!

[ 本帖最后由 eight 于 2007-11-15 11:18 编辑 ]

donkeyxu 发表于 2007-11-14 15:16

%保存为jplot,调用格式为jplot(n),n为级数
function jplot(m)
a=[];
for n=1:m
    a=;
end
a=;
eval(['fh=@(x,y) ' a ';']);
=meshgrid(,);
z=fh(x,y);
if n<=8
surfl(x,y,z)
shading interp
else
plot3(x,y,z)
end
axis();
view(111,30)

[ 本帖最后由 donkeyxu 于 2007-11-14 20:27 编辑 ]

archersky 发表于 2007-11-18 00:33

eval(['fh=@(x,y) ' a ';']); 运行这句出错

eval(['fh=@(x,y) ' a ';']);

出错
??? Error: "identifier" expected, "(" found.

Error in ==> G:\MathWorks_R13\work\work.m
On line 50==> eval(['fh=@(x,y)' a ' ;']);

eight 发表于 2007-11-18 09:34

原帖由 archersky 于 2007-11-18 00:33 发表 http://www.chinavib.com/forum/images/common/back.gif
eval(['fh=@(x,y) ' a ';']);

出错
??? Error: "identifier" expected, "(" found.

Error in ==> G:\MathWorks_R13\work\work.m
On line 50==> eval(['fh=@(x,y)' a ' ;']);
matlab 6.5不支持匿名函数,即 @ 符号

liangpj83 发表于 2007-11-18 13:05

回复 #4 eight 的帖子

matlab 7.0支持匿名函数(即 @ 符号)么?

eight 发表于 2007-11-18 15:22

原帖由 liangpj83 于 2007-11-18 13:05 发表 http://www.chinavib.com/forum/images/common/back.gif
matlab 7.0支持匿名函数(即 @ 符号)么?
貌似可以,自己看看置顶贴中各版本的更新情况

liangpj83 发表于 2007-11-21 10:57

如何用matlab 6.1版本实现

原帖由 liangpj83 于 2007-11-14 14:56 发表 http://www.chinavib.com/forum/images/common/back.gif
设z=sin(x)*exp(y)+sin(2x)*exp(2y)+……+sin(nx)*exp(ny),0
我工作用电脑是matlab 6.1版本,现在不方便安装7.0版本的,
用6.1版本如何仿真出此函数的三维图与等高线图?谢谢

xjzuo 发表于 2007-11-21 23:54

作一个n的循环,用meshc or surfc即可.画图是直接的,有什么困难吗?

liangpj83 发表于 2007-11-22 09:19

回复 #8 xjzuo 的帖子

x,y用=meshgrid(0:0.1:10)定义,不可行,请问还有其他的定义方式么?

花如月 发表于 2007-11-22 10:28

回复 #5 liangpj83 的帖子

7.0支持@用法

6.5可以用inline函数来代替@的用法
页: [1]
查看完整版本: 如何用matlab画出带级数的三维图