帮忙看一下 triplequad 的用法,谢谢!
我想算一个三重积分,程序如下,为什么总编译错误,帮忙指导一下吧。sigma1 = 0.25;
sigma2 = 0.25;
hl=1;% 元素浓度 含量
rxs=22.5;% 入射质量吸收系数
fxs=114.2;%反射质量吸收系数
md=4.54;%物质密度
rj=pi/4;
fj=pi/4;
III=triplequad(@(x,y,z) (1/(sqrt(2*pi)*sigma1*sigma2)*exp(-((x)^2/(2*sigma1^2)+(y)^2/(2*sigma2^2)+(sigma1^2+sigma2^2)*z^2/(2*sigma1^2*sigma2^2)))*hl*md*rxs*exp(-(rxs*csc(rj)+rxs*csc(fj))*sqrt(x^2+y^2)*md)),-1,0,-1,0,-1,1)
谢谢!! 我简化了一下,如下:
triplequad(@(x,y,z) exp(-(x^2/2+y^2/2+z^2/2)),-1,1,-1,1,-1,1)
显示错误如下:
??? Error using ==> mpower
Matrix must be square.
Error in ==> quad at 62
y = f(x, varargin{:});
.......
帮忙解决一下吧,help 我已经用了,例子很简单,但我的就不行:@( 我用的是Matlab6.5,用inline函数试了一下,没有问题.
回复 #3 xjzuo 的帖子
‘inline ’ 是定义函数用的,不是求积分的呀,===================
相当有意思的说法...
===================
你是怎么作的,怎样求积分呀? 谢谢,帮帮忙吧。
我的是 MATLAB 7.0
[ 本帖最后由 xjzuo 于 2007-3-28 10:33 编辑 ] 用inline定义你的被积函数就行了.
另:注意"点"运算的正确写法. 原帖由 yanzi12 于 2007-3-28 10:29 发表
‘inline ’ 是定义函数用的,不是求积分的呀,
===================
相当有意思的说法...
===================
你是怎么作的,怎样求积分呀? 谢谢,帮帮忙吧。
我的是 MATLAB 7.0
有可能是 .^ 和 ^ 的区别 谢谢,搞明白了,:@) 也搞定了!
但是它给的例题为什么不加 . 呢?真奇怪。 原帖由 yanzi12 于 2007-3-28 10:41 发表
谢谢,搞明白了,:@) 也搞定了!
但是它给的例题为什么不加 . 呢?真奇怪。
例题是数学语言,matlab是编程语言 不好意思,又有问题了,
用 inline 之后,所有的参数,也都变成变量了。如果用下面的形式:
I=inline('1/(sqrt(2*pi)*sigma1*sigma2).*exp(-((x-MU(1)).^2./(2*sigma1^2)+(y-MU(2)).^2./(2*sigma2^2)+(sigma1^2+sigma2^2).*z.^2./(2*sigma1^2*sigma2^2))).*hl.*md.*rxs.*exp(-(rxs*csc(rj)+rxs*csc(fj)).*sqrt(x.^2+y.^2).*md)','x','y','z')
之后,变量是 xyz,但是参数的值不能带入呀。
怎么办呀?谢谢!!
页:
[1]