图中的式子如果用高斯积分计算最后的结果,程序运行一直错误,各位大神帮我看一下该怎么改程序
function y=gaussf(x)
m=0;
sym x;
for j=1:inf
m= m+(1/j)*(sin(3.14*j)-sin(2.86*j))*cos(3.14*j)*exp(-0.00001247*x*j^2
end;
y=exp(-0.21*x-((15060-0.127*x)^2)/(2.286*x))*(0.089+0.6369*m))/(x^(-1.5));
function s=IntGauss(a,b)
ta=(b-a)/2;
tb=(a+b)/2;
s=ta*(0.2955242247*subs(sym(gaussf),findsym(sym(gaussf)),ta*0.148874339+tb)+0.2955242247*subs(sym(gaussf),findsym(sym(gaussf)),-ta*0.148874339+tb)+0.2692667193*subs(sym(gaussf),findsym(sym(gaussf)),ta*0.4333953941+tb)+0.2692667193*subs(sym(gaussf),findsym(sym(gaussf)),-ta*0.4333953941+tb)+0.2190863625*subs(sym(gaussf),findsym(sym(gaussf)),ta*0.6794095683+tb)+0.2190863625*subs(sym(gaussf),findsym(sym(gaussf)),-ta*0.6794095683+tb)+0.1494513492*subs(sym(gaussf),findsym(sym(gaussf)),ta*0.8650633667+tb)+0.1494513492*subs(sym(gaussf),findsym(sym(gaussf)),-ta*0.8650633667+tb)+0.0666713443*subs(sym(gaussf),findsym(sym(gaussf)),ta*0.9739065285+tb)+0.0666713443*subs(sym(gaussf),findsym(sym(gaussf)),-ta*0.9739065285+tb));
运行结果的程序:
for i=1:1000
t=365*i;
s(i)=IntGauss(0,t);
d(i)=349903.14*s(i);
end
错误提示:
??? Input argument "x" is undefined.
Error in ==> gaussf at 5
y=exp(-0.21*x-((15060-0.127*x)^2)/(2.286*x))*(0.089+0.6369*(m+(1/j)*(sin(3.14*j)-sin(2.86*j))*cos(3.14*j)*exp(-0.00001247*x*j^2)))/(x^(-1.5));
Error in ==> IntGauss at 4
s=ta*(0.2955242247*subs(sym(gaussf),findsym(sym(gaussf)),ta*0.148874339+tb)+0.2955242247*subs(sym(gaussf),findsym(sym(gaussf)),-
![求助高斯积分的程序]()
Z6$0HC1X}X4_4{`XWU6R683.jpg |