实验报告.docx
- 文档编号:4343619
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:28
- 大小:204.15KB
实验报告.docx
《实验报告.docx》由会员分享,可在线阅读,更多相关《实验报告.docx(28页珍藏版)》请在冰豆网上搜索。
实验报告
实验报告
课程名称:
数值分析
姓名:
张丹
学号:
08213016
任课老师:
赵雷
实验一:
实验名称:
运用不同的计算公式计算下列各函数值。
实验目的与要求:
运用自编程序对计算结果和计算方法进行分析。
实验内容:
运用不同的计算公式计算下列各函数值并对计算结果和计算方法进行分析。
实验环境与器材:
Matlab7.0
实验过程(步骤)或程序代码:
第一题:
程序:
x=input('x=');
f=x*(sqrt(x+1)-sqrt(x))
g=1/(sqrt(x+1)-sqrt(x))
第二题:
(a)程序:
s=1;m=1;
for n=1:
9
m=n*m;
s=s+((-1)^n)*(5^n)/m;
end
s
(b)程序:
s=1;m=1;
for n=1:
9
m=n*m;
s=s+(5^n)/m;
end
s=s^(-1)
第三题:
(a)程序:
formatlong
x=zeros(1,n);
x
(1)=1;
forn=2:
40
x(n)=x(n-1)*(1/3);
end
x
(b)程序:
formatlong
y=zeros(1,n);
y
(1)=1;
y
(2)=1/3;
forn=3:
40
y(n)=y(n-1)*(5/3)-y(n-2)*(4/9);
end
y
第四题:
程序:
syms('x');
p=1;
forn=1:
20
k=x-n;
p=p*k;
end
p
p=
(x-1)*(x-2)*(x-3)*(x-4)*(x-5)*(x-6)*(x-7)*(x-8)*(x-9)*(x-10)*(x-11)*(x-12)*(x-13)*(x-14)*(x-15)*(x-16)*(x-17)*(x-18)*(x-19)*(x-20)
a=0.001;
solve(p+a*x^19)
实验结果与分析:
第一题:
结果:
x=1
f =
0.4142
g =
2.4142
x=10^5
f =
158.1135
g =
632.4571
x=10^10
f =
5.0000e+004
g =
2.0000e+005
分析:
g(x)得到的值误差比较小,f(x)得到的值不够精确。
第二题:
(a)结果:
s =
-1.8271
e^(-5)= -1.8271
(b)结果:
s=0.0070
分析:
(a)程序得到的值是错误的不可能得到负值,(b)程序得到的值才是正确的且比较精确。
第三题:
(a)结果:
x=
Columns1through5
1.000000000000000.333333333333330.111111111111110.037037037037040.01234567901235
Columns6through10
0.004115226337450.001371742112480.000457247370830.000152415790280.00005080526343
Columns11through15
0.000016935087810.000005645029270.000001881676420.000000627225470.00000020907516
Columns16through20
0.000000069691720.000000023230570.000000007743520.000000002581170.00000000086039
Columns21through25
0.000000000286800.000000000095600.000000000031870.000000000010620.00000000000354
Columns26through30
0.000000000001180.000000000000390.000000000000130.000000000000040.00000000000001
Columns31through35
0.000000000000000.000000000000000.000000000000000.000000000000000.00000000000000
Columns36through40
0.000000000000000.000000000000000.000000000000000.000000000000000.00000000000000
Columns41through45
00000
Columns46through50
0000
(b)结果:
y=
Columns1through5
1.000000000000000.333333333333330.111111111111110.037037037037040.01234567901235
Columns6through10
0.004115226337450.001371742112480.000457247370830.000152415790280.00005080526343
Columns11through15
0.000016935087810.000005645029270.000001881676420.000000627225480.00000020907516
Columns16through20
0.000000069691720.000000023230580.000000007743530.000000002581180.00000000086040
Columns21through25
0.000000000286810.000000000095620.000000000031900.000000000010660.00000000000360
Columns26through30
0.000000000001250.000000000000490.000000000000260.000000000000220.00000000000025
Columns31through35
0.000000000000320.000000000000420.000000000000560.000000000000740.00000000000099
Columns36through40
0.000000000001320.000000000001760.000000000002350.000000000003130.00000000000417
分析:
(b)程序得到的值比(a)程序得到的值的有效数字位数多,而且比较准确。
第四题:
结果:
ans=
1.0000000000000000000082206352466
1.9999999999999181103721686190831
3.0000000016338242385051980289015
3.9999978104089828369347555291761
5.0006096104478121611874253483110
5.9520830976335371098727215585573
6.7576088500695613373496582001525+.65470437943497632710244996169678*i
27.081684159350407690505468487979+5.0381247465156983767887546052646*i
7.6926762171569880425046987508124+1.8988377402395301624310643961314*i
8.9128216107583166664211102599600+3.4731727536571324572309009854627*i
19.533677749724924092104646513976+9.1664045168766385324548225474719*i
10.721140617251104725551635419601+5.4609012089932269126258921027995*i
13.823545535626660217122537507881+7.7716667287284791002538182683774*i
13.823545535626660217122537507881-7.7716667287284791002538182683774*i
10.721140617251104725551635419601-5.4609012089932269126258921027995*i
19.533677749724924092104646513976-9.1664045168766385324548225474719*i
8.9128216107583166664211102599600-3.4731727536571324572309009854627*i
7.6926762171569880425046987508124-1.8988377402395301624310643961314*i
27.081684159350407690505468487979-5.0381247465156983767887546052646*i
6.7576088500695613373496582001525-.65470437943497632710244996169678*i
分析:
a的值取的越小得到的结果越准确。
成绩:
教师签名:
月日
实验二:
实验名称:
各种插值多项式的程序。
实验目的与要求:
熟练掌握各种插值多项式的做法及应用。
实验内容:
课本第二章课后上级习题。
实验环境与器材:
Matlab7.0
实验过程(步骤)或程序代码:
第一题:
牛顿插值多项式
X=[0.20.40.60.81.0];
Y=[0.980.920.810.640.38];
syms('x');
n=length(X);
A=zeros(n,n);
A(:
1)=Y';
forj=2:
n
fori=j:
n
A(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1));
end
end
C=diag(A);
C=C'
P=C
(1)+C
(2)*(x-X
(1))+C(3)*(x-X
(1))*(x-X
(2))+C(4)*(x-X
(1))*(x-X
(2))*(x-X(3))+C(5)*(x-X
(1))*(x-X
(2))*(x-X(3))*(x-X(4))
p=sym2poly(P)
x=[0.2;0.28;1.0;1.08]
y=polyval(p,x);
plot(x,y,'--r.')
三次样条函数
程序:
X=[0.20.40.60.81.0];
Y=[0.980.920.810.640.38];
syms('x');
m=length(X);A=zeros(m,m);n=m-1;H=zeros(1,n);lambda=zeros(1,n);
mu=zeros(1,n);lambda
(1)=1;A(1,1)=2;A(1,2)=lambda
(1);
D=zeros(1,n);H
(1)=X
(2)-X
(1);mu
(1)=1;D
(1)=3*(Y
(2)-Y
(1));
fork=1:
n
hk=X(k+1)-X(k);H(k+1)=hk;
end
H=H(2:
n+1);
fork=1:
n-1
lambdak=H(k)/(H(k)+H(k+1));lambda(k+1)=lambdak;
muk=1-lambda(k+1);mu(k)=muk;
dk=3*((mu(k).*(Y(k+1)-Y(k))./H(k))+(lambda(k+1).*(Y(k+2)-Y(k+1))./H(k+1)));
D(k+1)=dk;
end
D(m)=3*(Y(m)-Y(m-1))/H(m-1);mu(n)=1;n;H;lambda;mu;D;
fori=1:
m-1
A(i,i)=2;A(m,m)=2;A(i,i+1)=lambda(i);A(i+1,i)=mu(i);
end
dY=A\D';
symsx
m=length(X);S=zeros(m-1,1);
fork=2:
m
sk=Y(k-1)*((H(k-1)-2*X(k-1)+2*x)*(x-X(k))^2)/(H(k-1)^3)+Y(k)*((H(k-1)+2*X(k)-2*x)*(x-X(k-1))^2)/(H(k-1)^3)+dY(k-1)*((x-X(k-1))*(x-X(k))^2)/(H(k-1)^2)+dY(k)*((x-X(k))*(x-X(k-1))^2)/(H(k-1)^2)
end
p=sym2poly(sk)
x=[0.2;0.28;1.0;1.08]
y=polyval(p,x);
plot(x,y,'--r.')
第二题:
多项式插值:
subplot(1,2,1);
fplot('1/(1+25*x^2)',[-1,1])
holdon
x=-1:
0.1:
1;
y=1./(1+25.*x.^2);
p=polyfit(x,y,3);
xx=-1:
1/5:
1;
yy=polyval(p,xx);
plot(xx,yy,'--M.')
holdoff
subplot(1,2,2);
fplot('1/(1+25*x^2)',[-1,1])
holdon
xx=-1:
1/10:
1;
yy=polyval(p,xx);
plot(xx,yy,'--M.')
三次样条插值:
subplot(1,2,1);
fplot('1/(1+25*x^2)',[-1,1])
holdon
xx=-1:
1/5:
1;
y=1./(1+25.*x.^2);
yy=spline(x,y,xx);
plot(xx,yy,'--M.')
holdoff
subplot(1,2,2);
fplot('1/(1+25*x^2)',[-1,1])
holdon
xx=-1:
1/10:
1;
y=1./(1+25.*x.^2);
yy=spline(x,y,xx);
plot(xx,yy,'--M.')
实验结果与分析:
第一题:
牛顿插值多项式结果:
C=
0.9800-0.3000-0.6250-0.2083-0.5208
P=
26/25-3/10*x+(-5/8*x+1/8)*(x-2/5)+(-3752999689475373/18014398509481984*x+3752999689475373/90071992547409920)*(x-2/5)*(x-3/5)+(-4691249611844317/9007199254740992*x+4691249611844317/45035996273704960)*(x-2/5)*(x-3/5)*(x-4/5)
p=
-0.52080.8333-1.10420.19170.9800
三次样条函数
结果:
sk=245/2*(-1/5+2*x)*(x-2/5)^2+115*(1-2*x)*(x-1/5)^2+237/56*(x-1/5)*(x-2/5)^2-363/28*(x-2/5)*(x-1/5)^2
sk=
115*(-3/5+2*x)*(x-3/5)^2+405/4*(7/5-2*x)*(x-2/5)^2-363/28*(x-2/5)*(x-3/5)^2-129/8*(x-3/5)*(x-2/5)^2
sk=
405/4*(-1+2*x)*(x-4/5)^2+80*(9/5-2*x)*(x-3/5)^2-129/8*(x-3/5)*(x-4/5)^2-771/28*(x-4/5)*(x-3/5)^2
sk=
80*(-7/5+2*x)*(x-1)^2+95/2*(11/5-2*x)*(x-4/5)^2-771/28*(x-4/5)*(x-1)^2-1959/56*(x-1)*(x-4/5)^2
第二题:
多项式插值:
三次样条插值:
成绩:
教师签名:
月日
实验三:
实验名称:
各种插值多项式的程序。
实验目的与要求:
熟练掌握各种插值多项式的做法及应用。
实验内容:
课本第二章课后上机习题。
实验环境与器材:
Matlab7.0
实验过程(步骤)或程序代码:
第一题:
(1)
fplot('x^(1/2)',[0,64])
holdon
x=0:
64;
y=x.^(1/2);
p=polyfit(x,y,8);
xx=[01491625364964];
yy=polyval(p,xx);
plot(xx,yy,'—M.')
holdoff
(2)holdon
x=0:
64;
y=(x).^(1/2);
xx=[01491625364964];
yy=spline(x,y,xx)
plot(xx,yy,'-.r*')
第45页
例8
fplot('1/(1+x^2)',[-5,5])%原图
holdon
xx=-5:
1:
5;
y=1./(1+x.^2);
yy=spline(x,y,xx);
plot(xx,yy,'--M.')%样条插值
holdoff
holdon
x=-5:
1:
5;
y=1./(1+x.^2);
p=polyfit(x,y,3);
xx=-5:
1:
5;
yy=polyval(p,xx);
plot(xx,yy,'-.r*')%线性插值
holdoff
holdon
x=-5:
5;
y=1./(1+x.^2);
[C]=lagran1(x,y)
x=-5:
1/10:
5;
y=polyval(C,x);
plot(x,y,'k')%拉格朗日插值
holdoff
holdon
x=zeros(1,11);
fork=0:
10
x(k+1)=5*cos((21-2*k)*pi/22);
end
y=1./(1+x.^2);
[C]=lagran1(x,y)
x=-5:
1/10:
5;
y=polyval(C,x);
plot(x,y,'g')%切比雪夫
拉格朗日函数:
function[C]=lagran1(X,Y)
m=length(X);L=ones(m,m);
fork=1:
m
V=1;
fori=1:
m
ifk~=i不等于
V=conv(V,poly(X(i)))/(X(k)-X(i));
end
end
L1(k,:
)=V;l(k,:
)=poly2sym(V)
end
C=Y*L1;L=Y*l
实验结果与分析:
第一题:
在[0,64]上三次样条插值更精确;在[0,1]上多项式插值更加精确.
第45页
例8
成绩:
教师签名:
月日
实验四:
实验名称:
利用中点公式求导数
实验目的与要求:
了解并熟练应用中点公式求导数
实验内容:
书本例题
求f=x^(1/2)在x=2处的导数
实验环境与器材:
Matlab7.0
实验过程(步骤)或程序代码:
X=[10.50.10.050.010.0050.0010.00050.0001];
n=length(X);G=zeros(1,n);
fori=1:
n
G(i)=((2+X(i))^(1/2)-(2-X(i))^(1/2))/(2*X(i));
End
G
x=2;
y=1/2/x^(1/2)
plot(X,G)
实验结果与分析:
结果:
G=
Columns1through4
0.366025403784440.356393958692600.353663997049610.35358101950741
Columns5through8
0.353554495459700.353553666807600.353553401641780.35355339335541
Column9
0.35355339070398
y=
0.35355339059327
图形:
成绩:
教师签名:
月日
实验五:
实验名称:
利用梯形公式,矩形公式,左矩形公式,右矩形公式求解并比较其优劣。
实验目的与要求:
会用梯形公式,矩形公式,左矩形公式,右矩形公式求解
实验内容:
用梯形公式,矩形公式,左矩形公式,右矩形公式求解函数为sin(x)和函数x
实验环境与器材:
Matlab7.0
实验过程(步骤)或程序代码:
函数为sin(x)
function[f1,f2,f3,f4,f5]=g(f,a,b)
symsx;
[A,B]=h(a,b);[C,D]=h((a+b)/2,0);
f1=int(f,x,a,b);%原公式
f2=f1-(b-a)*(1/2)*(A+B);%梯形公式
f3=f1-(b-a)*C;%矩形公式
f4=f1-(b-a)*A;%左矩形公式
f5=f1-(b-a)*B;%右矩形公式
function[A,B]=h(a,b)
symsx;
f=sym('sin(x)');
A=sin(a);
B=sin(b);
函数为x
function[f1,f2,f3,f4,f5]=g(f,a,b)
symsx;
A=0;B=1;C=1/2;
f1=int(f,x,a,b);%原公式
f2=f1-(b-a)*(1/2)*(A+B);%梯形公式
f3=f1-(b-a)*C;%矩形公式
f4=f1-(b-a)*A;%左矩形公式
f5=f1-(b-a)*B;%右矩形公式
实验结果与分析:
函数为sin(x)
结果:
>>[f1,f2,f3,f4,f5]=g('sin(x)',0,1)
f1=
-cos
(1)+1
f2=
-cos
(1)+5217550841117065/9007199254740992
f3=
-cos
(1)+586114737590177/1125899906842624
f4=
-cos
(1)+1
f5=
-cos
(1)+713951213746569/4503599627370496
函数为x
结果:
>>symsx
>>[f1,f2,f3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告