数值.docx
《数值.docx》由会员分享,可在线阅读,更多相关《数值.docx(8页珍藏版)》请在冰豆网上搜索。
数值
实习名称
数值实验
实习地点
吉林农业大学信息技术学院
实习起止时间
2012.6.8-2012.6.15
实习报告
一、实验目的:
使同学们理解Romberg积分法,完成设计编程实
现Romberg积分算法。
二、实验题目:
(1)试用Romberg积分计算,当
0.5,1,1.5,2,2.5,3,3.5,
的值
(2)对
分别用
多项式曲线
并对误差进行比较
1、实验原理:
变步长梯形公式
hm=(b-a)/2^(m-1)
m=1
T11=(b-a)/2(f(a)+f(b))
Tm,1=0.5{Tm-1,1+h(m-1)[(f(a+(k-0.5)h(m-1)+…..
f(a+(k-0.5)h2^((m-1)-1))]}
Tm,j=1/(4^(j-1)-1)(4^(j-1)Im,(j-1)-I(m-1),(j-1)),j=2,3…,
M=2,3,…
T11
T2,1T2,2
T3,1T3,2T3,3
T4,1T4,2T4,3T4,4
T5,1T5,2T5,3T5,4T5,5
…..…..…..
相邻的两个对角元素之差绝对值小于给定的代数精
度要求时停止
2、程序与其实现:
1.1构建M文件
functionl=integral(fun,a,b,ep,n)
T=zeros(n);
h=b-a;
l=h*(feval(fun,a)+feval(fun,b))/2;
T(1,1)=l;
fork=1:
n-1
h=h/2;
l=l/2;
N=2^(k-1);
fori=1:
N
l=l+h*(feval(fun,a+(2*i-1)*h));
end
T(k+1,1)=l;
forj=2:
k+1
T(k+1,j)=(4^k*T(k+1,j-1)-T(k,j-1))/(4^k-1);
end
ifabs(T(k+1,k+1)-T(k,k))break
end
l=T(k+1,k+1);
end
k
end
1.2利用龙贝格的积分计算
fun=inline('(2*pi).^(1/2)*exp(-(x.^2)*(1/2))')
fun=
Inlinefunction:
fun(x)=(2*pi).^(1/2)*exp(-(x.^2)*(1/2))
a=0;b=x;ep=0.00005;n=20;
l=integral(fun,a,b,ep,n
计算得出如下表格
x
0.5
1
1.5
2
2.5
3
3.5
L
1.7030
2.6448
3.2219
3.4987
3.6025
3.6331
3.6401
k
9
11
12
11
12
14
14
1.3最小二乘拟合
%数据的最小二乘拟合中,其中
%x,y为数据的(x,y)坐标;
%n为拟合的次,缺省值为1;
%w为权值,缺省值为1;
%S为拟合的系数
程序代码
FunctionS=squarleast(x,y,n,w)
Ifnargin<4w=1;end
Ifnargin<3n=1;end
puA=zeros(n+1);phb=zeros(n+1,1);
fori=0:
n
forj=0:
n
phA=(i+1,j+1)=sum(w.*(x.^i).*(x.^j));
end
phb(i+1)=sum(w.*(x.^(i)).*y);
end
S=phA\phb;
利用最小二乘拟合下列数据
x=[0.511.522.533.5]
y=[1.10891.97252.64513.16893.57653.8946
4.1420]
w=[691112131414]
S=squarleast(x,y,2,w)
x=
0.50001.00001.50002.0000
2.50003.00003.5000
y=
1.10891.97252.64513.1689
3.57653.89464.1420
w=
691112131414
S=
0.2526
1.9266
-0.2348
1.4多项式曲线拟合
tdata=0.5:
0.5:
3.5;
cdata=[1.70302.64483.22193.4987
3.60253.63313.6401];
fun=@(a,tdata)(a
(1)*pi).^(a
(2))*exp(
-(tdata.^a(3))*(a(4)))
a0=[21/221/2];
a=nlinfit(x,y,fun,a0)
t=0:
0.5:
10;
yf=fun(a,t);
plot(x,y,'o',t,yf)
(2)
(Y=1/y=A+B/x)
tdata=0.5:
0.5:
3.5;
cdata=[1/1.70301/2.64481/3.2219
1/3.49871/3.60251/3.63311/3.6401];
fun=@(a,tdata)(a
(1)+a
(2)/tdata)
a0=[21/221/2];
a=nlinfit(x,y,fun,a0)
t=0:
0.5:
10;
yf=fun(a,t);
plot(x,y,'o',t,yf)
实验总结
Roberg求积方法是在积分区间逐次分半的
过程中利用外推法产生的一种数值积分方
法,当被积函数的光滑性条件满足时,可以得
到较准确的积分近似法
在编写程序时会由于不细心把程序代码写错了
导致程序运行不出来.
在编写程序时,应先理一下思路,知道具体算法后,
再进行编写
编写程序时要耐心
要熟练运用matlab这门课程才能更好的解决数值分析
里的知识。
这次实验也让我了解到团队合作的重要性,要学会分工
合作.
实际成绩评定
签章
年月日
指导教师意见: