怎样在MATLAB中显示出这类函数的图像?

希望知道如何做的朋友帮我解答一下,谢谢了!如何用MATLAB表示出:Y与α的关系图?其中α是变量。积分符号前的竖线只是鼠标的光标。r1、r2设为1来,α的范围是0~π/2... 希望知道如何做的朋友帮我解答一下,谢谢了!
如何用MATLAB表示出:Y与α的关系图?其中α是变量。
积分符号前的竖线只是鼠标的光标。
r1、r2设为1来,α的范围是0~π/2
syms a b c;
a=0:0.1*pi:pi;
b=0:0.1:pi/2;
c=0:0.1:pi/2;
f=int(int((cos(b)*cos(c)+sin(b)*sin(c)*cos(a))/sqrt((cos(b)-cos(c))^2+(sin(b)*cos(a)-sin(c))^2+(sin(b)*sin(a))^2)),0,pi/2),0,pi/2);
plot(f,a)
这是我的程序,系统报错
??? f=int(int((cos(b)*cos(c)+sin(b)*sin(c)*cos(a))/sqrt((cos(b)-cos(c))^2+(sin(b)*cos(a)-sin(c))^2+(sin(b)*sin(a))^2)),0,pi/2),0,pi/2); |
Error: Unbalanced or unexpected parenthesis or bracket.
不知道该怎么改。
展开
 我来答
tianxiawulang
2015-08-20 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2610万
展开全部
r1、r2的值是什么?数值计算必须知道所有常量的值才行。
更多追问追答
追问
不好意思,我没有说清楚。这里r1、r2设为1来计算。设α的范围是0~π/2。
我刚刚编程将这个函数用一个二重积分表示,提示有错。
朋友,等下看看你有什么思路,谢谢了!
追答

1、你现在的代码有几个问题:
(1)报错的原因说的很清楚——括号不匹配( Unbalanced or unexpected parenthesis or bracket),稍微查一下就能找到多了一个右括号。
(2)既然定义了符号变量abc,又给它们赋值,会导致定义符号不起作用。
(3)即使解决了上面两个问题,仍然不可行。对这样复杂的积分求符号解是很困难的。

 

2、用数值方法求解(随便给a赋值,例如a=0.1):

>> dblquad(@(b,c)(cos(b)*cos(c)+sin(b)*sin(c)*cos(a))./sqrt((cos(b)-cos(c)).^2+(sin(b)*cos(a)-sin(c)).^2+(sin(b)*sin(a)).^2),0,pi/2,0,pi/2)
Warning: Minimum step size reached; singularity possible. 
> In quad (line 96)
  In dblquad>innerintegral (line 79)
  In quad (line 67)
  In dblquad (line 55)
ans =
    9.3896

造成警告的原因是,当b、c=0时,被积函数的值为无穷大,也就是有奇异点,导致达到最小积分步长。
从函数图像可以看出这一点。

a=0.2;
f = @(b,c)(cos(b)*cos(c)+sin(b)*sin(c)*cos(a))./sqrt((cos(b)-cos(c)).^2+(sin(b)*cos(a)-sin(c)).^2+(sin(b)*sin(a)).^2);
ezmesh(f,[0,pi/2,0,pi/2])

特别是,当a=0时,积分结果会出现NaN(非数)。对于R2012a之后版本的MATLAB,建议使用integral2函数代替dblquad(对于a=0,积分结果是无穷大Inf,这个结果应更可信)。

受字数限制,完整代码就不贴了,用循环对a取不同值即可。

cainiaobooee
2015-08-20 · 超过16用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:23.6万
展开全部
看不见公式啊。。。。
更多追问追答
追问
看不到图片是么?
追答
是的啊。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式