![]() |
[求助]一复杂函数的画图问题!
2 个附件
我现在做的是把函数f(x,y)做成关于xy的三维图.我用写程序计算的时候,不知道为什么总是无法把xy带如数值计算.具体的函数如附件所示
麻烦Matlab高手帮忙指点下这个小程序. 我是matlab新手,不会写程序,自己忙了几天总是出问题,我的做法是把函数z=fun(s,x,y)写成M文件函数,其中的s就是我要积分的变量. function f=f1(s,x,y) syms s x y f=sin(s)^2*exp((x*sin(s)^2+y*cos(s)^2)/sqrt(1+sin(s))); 之后我就是想对对函数进行积分 Q = quad(@(s)f1(s,x,y),0,2) 用的是上述函数,本来打算求完积分后就直接 做Q的图象,可是提示有错误,不知道程序哪里有问题 提示的错误是 ??? Error: File: C:\Documents and Settings\Administrator\桌面\Untitled2.m Line: 1 Column: 11 "identifier" expected, "(" found. 麻烦Matlab高人帮小弟看看. 谢谢! |
function f=f1(s,x,y)
[COLOR="Red"]syms s x y[/COLOR]%去掉这一行 f=sin(s)[COLOR="red"].[/COLOR]^2[COLOR="red"].[/COLOR]*exp((x[COLOR="red"].[/COLOR]*sin(s)[COLOR="red"].[/COLOR]^2+y[COLOR="red"].[/COLOR]*cos(s)[COLOR="red"].[/COLOR]^2)[COLOR="red"].[/COLOR]/sqrt(1+sin(s)[COLOR="red"].^2[/COLOR])); 至于你贴出来的错误,由于不知道Untitled2.m文件的内容,也没法说清,不过看提示,估计是拼写方面的问题了。 |
2 个附件
[SIZE="3"]主程序:[/SIZE][SIZE="4"]clear
clc [x,y]=meshgrid(-10:0.5:10); [m,n]=size(x); for i=1:m for j=1:n P(i,j)=quad(@(s)fun2(s,x(i,j),y(i,j)),0,2); end end surf(P)[/SIZE] [SIZE="4"]副程序:[/SIZE][SIZE="4"]function f=fun2(s,x,y) f=sin(s).^2.*exp((x.*sin(s).^2+y.*cos(s).^2)./sqrt(1+sin(s)));[/SIZE] |
[SIZE="4"]上面的方法是
1.先产生x,y的网格矩阵 2.将(x,y)每个点的 f(x,y)利用quad (数值积分)进行求解 3. surf (P) 画出曲面图[/SIZE] 程序里用了2个for 循环,这个是我不希望看到的,但是又没有找到更好的方法,这里修改下的话,运算速度才比较快! |
所有时间均为北京时间。现在的时间是 06:31。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.