永发信息网

用matlab积分求面积问题,快要上交,

答案:1  悬赏:50  手机版
解决时间 2021-03-21 18:35
  • 提问者网友:最美的风景
  • 2021-03-21 09:01
用matlab积分求面积问题,快要上交,
被积函数是对数概率密度函数,用simpson法数值计算出[0,2000]内的面积,这是我写的,第一个函数是simpson法的定义,第二个函数是对数正态分布的概率密度函数,但是运行出错,我看不出那里出错了,
function s=MySimp(x,h)
n=length(x);
ys=f(x(1));
yf=f(x(n));
ymid=0;
yin=0;
for i=1:n-1
ymid=ymid+4*f((x(i)+x(i+1))/2);
end
for i=2:n-1
yin=yin+2*f(x(i));
end
s=(h/6)*(ys+ymid+yin+yf);
function y=f(x)
y=(1/x*0.891*sqrt(2*pi))*exp((-(logx-7.59)^2)/2*0.7938);
a=0;
b=2000;
n=8;
h=(b-a)/8;
x=[0:h:2000];
ssimp=MySimp(x,h);
ssimp
最佳答案
  • 五星知识达人网友:封刀令
  • 2021-03-21 10:28

function s=MySimp(a,b,k)
h=(b-a)/k;
x=[a:h:b];
n=length(x);
ys=f(x(2));
yf=f(x(n));
ymid=0;
yin=0;
for i=1:n-1
ymid=ymid+4*f((x(i)+x(i+1))/2);
end
for i=2:n-1
yin=yin+2*f(x(i));
end
s=(h/6)*(ys+ymid+yin+yf);

function y=f(x)
y=(1/x*0.891*sqrt(2*pi))*exp((-(log(x)-7.59)^2)/2*0.7938);
a=0;
n=8;
b=2000;
ssimp=MySimp(a,b,n)
ssimp =
3.2412
再问: 为什么运行之后还是有错,运行后出现这样的结果。。。。望多指教一下。。。。谢谢。。。。 ssimp=MySimp(a,b,n) ??? Error using ==> MySimp Too many input arguments.
再答: 你的函数改了吗,我运行没问题


我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯