求大神用MATLAB帮我编两个程序~
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/10 19:39:59
求大神用MATLAB帮我编两个程序~
用复化梯形公式、复化Simpson公式计算积分:∫ lnxdx 积分上限是10 下限是1 .
用复化梯形公式、复化Simpson公式计算积分:∫ lnxdx 积分上限是10 下限是1 .
1.新建两个m文件,分别把这两个function函数复制进去并保存,文件名为默认;
function Tn = mytrapz(f,a,b,n)
%复化梯形公式
t=0;
for i=1:n-1
t=t+f(a+i*(b-a)/n);
end
Tn=(b-a)/(2*n)*(f(a)+f(b)+2*t);
function Sn=simpson(f,a,b,n)
%Simpson积分公式
s1=0;s2=0;
for i=1:n-1
s1=s1+f(a+(2*i+1)*(b-a)/(2*n));
s2=s2+f(a+i*(b-a)/n);
end
Sn=(b-a)/(6*n)*(f(a)+f(b)+4*s1+2*s2);
2.调用程序计算;
在命令窗口输入:
>> f=@(x)log(x);
>> Tn=mytrapz(f,1,10,200)
Tn =
14.0257
>> Sn=simpson(f,1,10,200)
Sn =
14.0252
function Tn = mytrapz(f,a,b,n)
%复化梯形公式
t=0;
for i=1:n-1
t=t+f(a+i*(b-a)/n);
end
Tn=(b-a)/(2*n)*(f(a)+f(b)+2*t);
function Sn=simpson(f,a,b,n)
%Simpson积分公式
s1=0;s2=0;
for i=1:n-1
s1=s1+f(a+(2*i+1)*(b-a)/(2*n));
s2=s2+f(a+i*(b-a)/n);
end
Sn=(b-a)/(6*n)*(f(a)+f(b)+4*s1+2*s2);
2.调用程序计算;
在命令窗口输入:
>> f=@(x)log(x);
>> Tn=mytrapz(f,1,10,200)
Tn =
14.0257
>> Sn=simpson(f,1,10,200)
Sn =
14.0252