Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2008-06-16
年龄: 43
帖子: 1
声望力: 0 ![]() |
![]()
我现在做的是把函数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高人帮小弟看看. 谢谢! |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2008-04-02
年龄: 47
帖子: 175
声望力: 21 ![]() |
![]()
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).^2)); 至于你贴出来的错误,由于不知道Untitled2.m文件的内容,也没法说清,不过看提示,估计是拼写方面的问题了。 |
![]() |
![]() |
![]() |
#3 |
高级会员
注册日期: 2007-12-02
年龄: 44
帖子: 303
声望力: 31 ![]() ![]() ![]() ![]() |
![]()
主程序: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) 副程序:function f=fun2(s,x,y) f=sin(s).^2.*exp((x.*sin(s).^2+y.*cos(s).^2)./sqrt(1+sin(s))); |
![]() |
![]() |
![]() |
#4 |
高级会员
注册日期: 2007-12-02
年龄: 44
帖子: 303
声望力: 31 ![]() ![]() ![]() ![]() |
![]()
上面的方法是
1.先产生x,y的网格矩阵 2.将(x,y)每个点的 f(x,y)利用quad (数值积分)进行求解 3. surf (P) 画出曲面图 程序里用了2个for 循环,这个是我不希望看到的,但是又没有找到更好的方法,这里修改下的话,运算速度才比较快! |
![]() |
![]() |
![]() |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[资料]SIMULINK学习资料汇总贴(不断更新中) | yesman | MATLAB论坛 | 17 | 2010-08-03 10:56 |
求教高手解一个积分,小女子拜求:) | angel4296 | MATLAB论坛 | 0 | 2008-09-16 17:49 |
[求助]曼彻斯特解码 | lxysbyp | MATLAB论坛 | 1 | 2008-08-27 20:52 |
请问这个方程可以用MATLAB解没有? | thb296 | MATLAB论坛 | 6 | 2008-04-28 19:02 |
Model-Based Design with Production Code Generation for Steer-by-Wire System Developme | TechnicalArticles | MATLAB技术文章 | 0 | 2008-01-06 16:32 |