复化积分法(复化梯形求积-复化Simpson公式-变步长求积法)MATLAB编程实验报告 (1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
复化积分法(复化梯形求积,复化Simpson 公式,变步长求积法)
MATLAB 编程实验报告 一、 问题描述:
编写函数实现复化积分法。
二、 实验步骤(过程):
(一)复化求积法 (1)复化梯形求积:用复化梯形求积公式求解
dx x x ⎰10sin function [f]=Tn(a,b,n,y)
syms t;
h=(b-a)/n;
f=0;
for k=1:n+1
x(k)=a+(k-1)*h
z(k)=subs(y,t,x(k));
end
for i=2:n
f=f+z(i);
end
q=subs(y,t,a);
if y=='sin(t)/t'&&a==0
q=1;
end
p=subs(y,t,b);
T=h/2*(q+p+2*f);
T=vpa(T,7)
clc,clear;
syms t;
a=0;b=1;
y=sin(t)/t;
n=8;
Tn(a,b,n,y);
(2)复化Simpson 公式:用复化Simpson 公式求解⎰211dx e x
function [f]=simpson(a,b,n,y)
syms t;
h=(b-a)/n;
f=0;l=0;
for k=1:n+1
x(k)=a+(k-1)*h
w(k)=0.5*h+x(k)
z(k)=subs(y,t,x(k));
end
for i=2:n
f=f+z(i);
end
for i=1:n
l=l+w(i);
end
q=subs(y,t,a);
if y=='sin(t)/t'&&a==0
q=1;
end
p=subs(y,t,b);
T=h/2*(q+p+2*f);
T=vpa(T,7)
clc,clear;
syms t;
a=1;b=2;
y=exp(1/t);
n=5;
simpson(a,b,n,y);
(3)变步长求积法:以书本例4.5为例function [f]=TN(a,b,y,R0)
syms t;
T=[];
f=0;
q=subs(y,t,a);
if y=='sin(t)/t'&&a==0
q=1;
end
p=subs(y,t,b);
T(1)=(b-a)/2*(q+p);
i=2;
n=i-1;
h=(b-a)/n;
z1=a+h/2;
z2=subs(y,t,z1);
T(2)=T(1)/2+h/2*z2;
while ((T(i)-T(i-1))/3)>R0 i=i+1
n=i-1;
n=2^(n-1)
h=(b-a)/n;
f=0;
for k=1:n
x(k)=a+h*(k-1);
w(k)=x(k)+h/2;
z(k)=subs(y,t,w(k)); f=f+z(k);
end
T(i)=T(i-1)/2+h/2*f
if ((T(i)-T(i-1))/3)<=R0
break;
end
end
tl=T(i)
clc,clear;
format long;
syms t;
y=sin(t)/t;
a=0;b=1;
R0=0.5*10^(-3);
TN(a,b,y,R0);
结论如下:
三、结论:
复化梯形求积:复化Simpson公式变步长求积法