
利用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 是虚数单位,要求程序运行可以通过,且有一个值出来,如果不是准确的,有一个近似值也可以,但要求说明是在什么精度下产生近似值的,结果好的还会追加分值得 展开
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 是虚数单位,要求程序运行可以通过,且有一个值出来,如果不是准确的,有一个近似值也可以,但要求说明是在什么精度下产生近似值的,结果好的还会追加分值得 展开
2个回答
展开全部
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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%源程序无法运行,做了适当修改
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去点越密,结果越精度越高
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去点越密,结果越精度越高
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询