登录论坛

查看完整版本 : [MATLAB基础] 哎,小白问个新手问题(关于积分的)


niujiaopeng
2009-06-06, 04:03
话说某小白4年前学的MATLAB,那时没有认真,现在弄的非常痛苦,弱弱的问个问题..
程序这样的:
输入变量有这些:
x, y ,z,x2,y2,w, rou,a,b.
而其中有变k=w/c,r=根号下X平方+Y平方。
主要需要计算这个积分
exp(i*k*(y2*y2-2*y*y2)/(2*r)
对y2积分,积分上下限分别为-b/2,b/2.
我用int积分,它显示的是varargout{1:nargout}] = builtin('find', varargin{:});
与Function 'find' is not defined for values of class 'sym'
难道用quad的积分公式吗,我用quad又得不出精确解,结果为含有符号k ,y2符号表达式,同时还是个矩阵。
到底咋整啊,小弟实在费解
希望有高手抬抬贵手,稍微指点一下就感激不尽了:confused:

TTT_IOU
2009-06-06, 16:57
又见面了
:)
syms x y x2 y2 w c b
k=w/c;
r=sqrt(x*x+y*y);
f=exp(i*k*(y2*y2-2*y*y2)/(2*r))
yy2=int(f,y2,-b/2,b/2)
f =
exp(1/2*i*w/c*(y2^2-2*y*y2)/(x^2+y^2)^(1/2))
yy2 =
-1/2*pi^(1/2)*exp(-1/2*i*w/c*y^2/(x^2+y^2)^(1/2))*2^(1/2)*(erf(1/4*i*2^(1/2)*w*(b+2*y)/c/(x^2+y^2)^(1/2)/(-i*w/c/(x^2+y^2)^(1/2))^(1/2))-erf(1/4*i*2^(1/2)*w*(-b+2*y)/c/(x^2+y^2)^(1/2)/(-i*w/c/(x^2+y^2)^(1/2))^(1/2)))/(-i*w/c/(x^2+y^2)^(1/2))^(1/2)
望有帮助!!!