利用matlab进行数值积分时总是求不出结果,求教各位大虾,怎么实现数值积分

要求在(0,pi)上对函数F进行数值积分,函数F如下:functionF=myfunc(w)symswz=exp(i*w);g=(1/(1-z^(-1))).*((1-z... 要求在(0,pi)上对函数F进行数值积分,函数F如下:
function F=myfunc(w)
syms w
z=exp(i*w);
g=(1/(1-z^(-1))).*((1-z.^(-1))+2+0.01.*(1-z^(-1)).^2);
f=(-13+14*z)./(8*(-1+z)+z);
F=(abs((f.*g)./(1+f.*g))).^2;
其中 i 是虚数单位,要求程序运行可以通过,且有一个值出来,如果不是准确的,有一个近似值也可以,但要求说明是在什么精度下产生近似值的,结果好的还会追加分值得
展开
 我来答
dbb627
2011-10-12 · TA获得超过1.2万个赞
知道大有可为答主
回答量:2127
采纳率:88%
帮助的人:1618万
展开全部
syms w
z=exp(i*w);
g=(1/(1-z^(-1))).*((1-z.^(-1))+2+0.01.*(1-z^(-1)).^2);
f=(-13+14*z)./(8*(-1+z)+z);
F=(abs((f.*g)./(1+f.*g))).^2;
F=@(w)eval(F);
Q = quadgk(F,0,pi)

Q =

2.1654
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清味空情小样顾2S
2011-10-12 · TA获得超过1355个赞
知道小有建树答主
回答量:376
采纳率:0%
帮助的人:436万
展开全部
%源程序无法运行,做了适当修改
function F=myfunc(w)
%syms w %不要这一行
z=exp(i*w);
g=(1./(1-z.^(-1))).*((1-z.^(-1))+2+0.01.*(1-z.^(-1)).^2);%1./(1-z.^(-1))增加了点运算
f=(-13+14*z)./(8*(-1+z)+z);
F=(abs((f.*g)./(1+f.*g))).^2;
%在命令窗口中运行tol=1.e-6;Q = quadl(@myfunc,0,pi,tol);
%tol是误差,Q是积分值
%另外还可以x=[0,pi/1000,pi];y=myfunc(x);Q=trapz(x,y)
%x去点越密,结果越精度越高
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式