数学实验报告
院 系班 级指导教师姓 名
计算机学院 2004级二学位 张 兴 永 田 琳
计算方法实验报告
实 验 目 录
os4xcos64x 1.计算s(x)cosxcos2xc................................................................................ 3
2. 求f(t)5sin2t-3cos2t的fourier、Laplace、ztrans变换 .............................................. 3 3.矩阵高斯消去法 ......................................................................................................................... 4
4.画出心型线、星型线、双纽线和四叶玫瑰线的图形 ............................................................. 5 5.求fibonacci数 ............................................................................................................................ 6 6.数据三次拟合曲线 ..................................................................................................................... 6 7.递推公式的稳定性 ..................................................................................................................... 7
实验程序:.................................................................................................................................. 7 实验结果:.................................................................................................................................. 8 8.迭代法的收敛性与收敛速度的比较 ......................................................................................... 9
实验程序 ................................................................................................................................... 9 实验结果 ................................................................................................. 错误!未定义书签。 9.雅可比迭代法与高斯塞德尔法的收敛性与收敛速度 ........................................................... 11
实验结果 ................................................................................................................................. 13 10.龙格现象的发生、防止和插值效果的比较 ......................................................................... 14
结算结果 ................................................................................................................................. 15 龙格现象分析 ......................................................................................................................... 20 11.[1]P129页拟合应用题 ........................................................................................................... 20
实验结果 ................................................................................................................................. 21 12.[1]课题1 数值积分的方法的使用、比较 ..................................................................... 22
实验结果 ................................................................................................................................. 24 13.数据样条插值 ......................................................................................................................... 25 14.统计应用 ................................................................................................................................. 26 15.油罐标尺刻度设计 ................................................................................................................. 28 课程体会 致谢 ............................................................................................................................... 32 参考书............................................................................................................................................. 32 图表目录 ......................................................................................................... 错误!未定义书签。
第 2 页 共 32 页
计算方法实验报告
1.计算s(x)cosxcos2xcos4xcos64x
程序内容:源程序:\\s.m; 程序清单:
function s(x) s=1;
for(i=1:8);
s=s*cos(2^i*x); end s
实验结果:S(1)= 3.4160e-004;s(2)= 8.1827e-004;s(pi)=1; s(pi/2)=-1;s(pi/3)= 0.0039
2. 求f(t)5sin2t-3cos2t的fourier、Laplace、ztrans变换
程序内容:f(t)5sin2t-3cos2t fourier、Laplace、ztrans变换 源程序:\\bianhuan.m; 程序清单:
syms t;
f=5*sin(2*t)-3*cos(2*t) fourier_f=fourier(f) laplace_f=laplace(f) ztrans_f=ztrans(f)
实验结果:
f =5*sin(2*t)-3*cos(2*t)
fourier_f =pi*(5*i*Dirac(w+2)-3*Dirac(w+2)-5*i*Dirac(w-2)-3*Dirac(w-2)) laplace_f =10/(s^2+4)-3*s/(s^2+4) ztrans_f =
10*z*cos(1)*sin(1)/(-4*z*cos(1)^2+z^2+2*z+1)-3*(z+1-2*cos(1)^2)*z/(-4*z*cos(1)^2+z^2+2*z+1)
第 3 页 共 32 页
计算方法实验报告
3.矩阵高斯消去法
107对矩阵A415进行高斯消去法变换 219求三次初等变换的总的等价乘子,并用MATLAB求原来A的行列式、秩和迹
源程序 :\\gaosi.m 程序清单:
A=[1 0 7;4 1 5;2 -1 9]; A0=A; %输入A,并保留一个备份 A(2,: ) = -4*A(1,: )+A(2,: ) A1=A,
B1=A1/A0 % 消去A(2,1),求B1 A(3,: ) = -2*A(1,: )+A(3,: ) A2=A,
B2=A2/A1 % 消去A(3,1) A(3,: ) = -A(3,2)/A(2,2)*A(2,: )+A(3,: ) A3=A,
B3=A3/A2 % 消去A(3,2) B0 = A3/A0 % 求三次初等变换的总的等价乘子 det_A=det(A0), rank_a=rank(A0), tr_A=trace(A0), %求原来A的行列式、秩和迹
实验结果:
A上三角107100,A-410
01-23下三角00-28-611rank_a =3
tr_A =11
det_A = -28
第 4 页 共 32 页
计算方法实验报告
4.画出心型线、星型线、双纽线和四叶玫瑰线的图形
心形线绘制:
Clear
t=0:0.001:2*pi; subplot(2,2,1); polar(a, 1+cos(t)) subplot(2,2,2);
plot(cos(t).^3,sin(t).^3) subplot(2,2,3);
polar(t,abs(sin(t).*cos(t))) subplot(2,2,4);
polar(t,(cos(2*t)).^0.5)
图像:
120150180210240270300-1-1-0.50双扭线90 10.51心形线90 2 1星形线6030033010.50-0.5四叶玫瑰线90 0.512060150180210240270300 0.2530033015018021012060300330 0.5240270300
图表 1四曲线
第 5 页 共 32 页
计算方法实验报告
5.求fibonacci数
90807060504030201001234567891011
图表 2 fib 曲线
实验结果:100以内的fibonacci 数:f =
1 1 2 3 5 8 13 21 34 55 89 实验结果:1000以内的fibonacci数:f=
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
6.数据三次拟合曲线
数据:12 34 56 78 99 123 165 198 243 277 353 345 303 288 275的三次拟合 程序:\\nihe3.m
第 6 页 共 32 页
计算方法实验报告
400350300250200150100500原始数据3次拟合曲线051015
图表 3 三次拟合曲线
7.递推公式的稳定性
实验内容: [1]P11页试验课题1
实验程序:
clear; clc; syms x;
resualt=zeros(4); N_R=1;
a=input('输入a的值:');
%------------------------------------方案1 I1=log(a+1)-log(a); for n=1:10
I1=-1*a*I1+1/n; f=x^n/(a+x); I0=int(f,'x',0,1); I0=vpa(I0,500); I0=vpa(I0,8);
I=vpa(I1,6);
wucha1=abs((I0-I1)/I0); wucha1=vpa(wucha1,8) ; db=[n I0 I wucha1]; if n==1
resualt=db; else
resualt=[resualt;db]; end end resualt
%------------------------------------方案2
第 7 页 共 32 页
计算方法实验报告
resualt=zeros(4); N=13;
if a>=N/(N+1)
I2=(2*a+1)/(2*a*(a+1)*(N+1)); else
I2=0.5*(1/((a+1)*(N+1))+1/N); end
for n=N:-1:1
f=x^n/(a+x); I0=int(f,'x',0,1); I0=vpa(I0,500); I0=vpa(I0,8); I2=(-1*I2+1/n)/a; I=vpa(I2,6);
wucha2=abs((I0-I2)/I0); wucha2=vpa(wucha2,8); db=[n I0 I wucha2]; if n==N
resualt=db; else
resualt=[resualt;db]; end end resualt
实验结果:
输入a的值:0.05
次数 精确值 迭代值 相对误差 [ 1, .84777388, .847774, .22248517e-8] [ 2, .45761131, .457611, .85349539e-8] [ 3, .31045277, .310453, .63500227e-8] [ 4, .23447736, .234477, .68175840e-8] [ 5, .18827613, .188276, .10198168e-7] [ 6, .15725286, .157253, .44935959e-9] [ 7, .13499450, .134994, .10844168e-8] [ 8, .11825028, .118250, .42221299e-7] [ 9, .10519860, .105199, .25088308e-7] [ 10, .94740070e-1, .947401e-1, .13928927e-8]
次数 精确值 迭代值 相对误差 [ 13, .72971840e-1, .889587e-1, .21908205] [ 12, .79024729e-1, -.112507, 2.4236878] [ 11, .86172087e-1, 4.06831, 46.211490] [ 10, .94740070e-1, -79.3663, 838.72635] [ 9, .10519860, 1589.55, 15108.966] [ 8, .11825028, -31788.4, 268824.43] [ 7, .13499450, 635772., 4709611.4] [ 6, .15725286, -.127154e8, 80859783.] [ 5, .18827613, . 254309e9, .13507216e10] [ 4, .23447736, -.508617e10, .21691531e11] [ 3, .31045277, .101723e12, .32766162e12] [ 2, .45761131, -.203447e13, .44458454e13] [ 1, .84777388, .406894e14, .47995561e14]
输入a的值:15
第 8 页 共 32 页
计算方法实验报告
次数 精确值 迭代值 相对误差 [ 1, .31922183e-1, .319222e-1, .19912866e-8] [ 2, .21167256e-1, .211673e-1, .21971093e-8] [ 3, .15824494e-1, .158245e-1, .19548773e-8] [ 4, .12632590e-1, .126326e-1, .36732305e-7] [ 5, .10511157e-1, .105112e-1, .37710110e-8] [ 6, .89993133e-2, .899931e-2, .11542747e-6] [ 7, .78674434e-2, .786746e-2, .19750588e-5] [ 8, .69883483e-2, .698812e-2, .33252485e-4] [ 9, .62858867e-2, .628937e-2, .55451370e-3] [ 10, .57116994e-2, .565942e-2, .91538526e-2]
次数 精确值 迭代值 相对误差 [ 13, .44830339e-2, .482067e-2, .75313181e-1] [ 12, .48293362e-2, .523418e-2, .83829670e-1] [ 11, .52335998e-2, .571166e-2, .91344598e-1] [ 10, .57116994e-2, .628589e-2, .10052873] [ 9, .62858867e-2, .698835e-2, .11175216] [ 8, .69883483e-2, .786744e-2, .12579441] [ 7, .78674434e-2, .899931e-2, .14386756] [ 6, .89993133e-2, .105112e-1, .16799544] [ 5, .10511157e-1, .126326e-1, .20182674] [ 4, .12632590e-1, .158245e-1, .25267218] [ 3, .15824494e-1, .211673e-1, .33762608] [ 2, .21167256e-1, .319222e-1, .50809264] [ 1, .31922183e-1, .645385e-1, 1.0217452]
明显,对方案2 计算结果都不可靠.
8.迭代法的收敛性与收敛速度的比较
实验内容: [1]P37页试验课题二
实验程序
clear; clc; syms x;
f=x^3-sin(x)-12*x+1;
resualt=solve('x^3-sin(x)-12*x+1','x'); disp('Matlab 求根结果:')
r=vpa(resualt,8) pause;
df=diff(f,'x');
x0=input('输入迭代初值:'); N=input('输入最多迭代次数:'); e=input('输入迭代精度:');
第 9 页 共 32 页
计算方法实验报告
for k=1:N
f0=subs(f,x0); df0=subs(df,x0); if df0==0
disp('导数为0,停止计算') break; else
xx=x0-f0/df0; if abs(xx)<=1
E=abs(xx-x0); else
E=abs((x0-xx)/xx); end if E disp('计算误差为:') error=vpa(abs((xx-r)/r),5) f_x=vpa(subs(f,xx),8) disp('最终迭代次数:') k break; else x0=xx; end end end if k==N disp('经过设置的迭代次数没有收敛,计算失败') end pause; disp('普通迭代法:') disp('迭代式 1:') x0=rand(-4,-3); f1=(12*x+sin(x)-1)^(1/3); for k=1:N xx=subs(f1,x0); if abs(xx)<=1 E=abs(xx-x0); else E=abs((x0-xx)/xx); end if E error=vpa(abs((xx-r)/r),5) f_x=vpa(subs(f,xx),8) disp('最终迭代次数:') k break; else x0=xx; end end if k==N disp('经过设置的迭代次数没有收敛,计算失败') end pause; x0=rand(3,4); f1=(12*x+sin(x)-1)^(1/3); for k=1:N xx=subs(f1,x0); if abs(xx)<=1 E=abs(xx-x0); else E=abs((x0-xx)/xx); end if E disp('计算误差为:') error=vpa(abs((xx-r)/r),5) f_x=vpa(subs(f,xx),8) disp('最终迭代次数:') k break; else x0=xx; end end if k==N disp('经过设置的迭代次数没有收敛,计算失败') end pause; 第 10 页 共 32 页 计算方法实验报告 disp('普通迭代法:') disp('迭代式 2:') x0=rand(0,0.2); f1=(12*x+sin(x)-1)^(1/3); for k=1:N xx=subs(f1,x0); if abs(xx)<=1 E=abs(xx-x0); else E=abs((x0-xx)/xx); end if E disp('计算误差为:') error=vpa(abs((xx-r)/r),5) f_x=vpa(subs(f,xx),8) disp('最终迭代次数:') k break; else x0=xx; end end if k==N disp('经过设置的迭代次数没有收敛,计算失败') end 实验结果 函数 f(x)x3sin x12x1 的图像为: 20151050-5-10-15-20-4-3-2-101234 图表 4 方案 牛顿法 初值 -3 迭代次数 5 5 迭代结果 -3.4911788 发散 发散 3.4101251 发散 误差 0 0 普通迭代(1) -3 普通迭代(2) -3 牛顿法 3 普通迭代(1) 3 第 11 页 共 32 页 计算方法实验报告 普通迭代(2) 3 牛顿法 牛顿法 [3 4] 图表 5 4 4 2 2 2 发散 .76963989e-1 .76963989e-1 .76964248e-1 .77153212e-1 .14285360 .74718010e-13 0 -.33644973e-5 -.24559693e-2 -.85369616 -1 0 0 普通迭代(1) 0 普通迭代(2) 0 9.雅可比迭代法与高斯塞德尔法的收敛性与收敛速度 实验内容:[1]P71页试验课题(四),雅可比迭代法与高斯——塞德尔迭代法的收敛性与收敛速度。 实验程序 : clear; X1=vpa(X,6) clc; disp('迭代次数') k A=input('输入系数矩阵A:'); AX=vpa(A*X,6) b1=input('输入矩阵b1:'); break; b2=input('输入矩阵b2:'); else disp('Matlab计算结果:') x1=inv(A)*b1; X0=X; X1=vpa(x1,6) end x2=inv(A)*b2; end X2=vpa(x2,6) if k==N L=tril(A); disp('迭代没有收敛') U0=triu(A); end U=L-A; pause; L=U0-A; disp('计算b2情况'); D=A+L+U; X0=zeros(sqrt(numel(A)),1); pause; %与输入矩阵配置相同的初始值 for k=1:N N=input('输入最多迭代次数:'); X=MJ*X0+D^-1*b2; disp('雅可比迭代计算结果:') MJ=inv(D)*(L+U); if(norm(X-X0)<1e-6) b2 disp('计算b1情况'); X0=zeros(sqrt(numel(A)),1); disp('计算结果:') X2=vpa(X,6) %与输入矩阵配置相同的初始值 for k=1:N disp('迭代次数') X=MJ*X0+D^-1*b1; k if(norm(X-X0)<1e-6) AX=vpa(A*X,6) b1 break; else disp('计算结果:') 第 12 页 共 32 页 计算方法实验报告 X0=X; end end if k==N disp('迭代没有收敛') end pause disp('高斯--塞德尔迭代计算结果:') MG=(D-L)^-1*U; disp('计算b1情况'); X0=zeros(sqrt(numel(A)),1); %与输入矩阵配置相同的初始值 for k=1:N X=MG*X0+(D-L)^-1*b1; if(norm(X-X0)<1e-6) b1 disp('计算结果:') X1=vpa(X,6) disp('迭代次数') k AX=vpa(A*X,6) break; else X0=X; end end if k==N disp('迭代没有收敛') end pause; disp('计算b2情况'); X0=zeros(sqrt(numel(A)),1); %与输入矩阵配置相同的初始值 for k=1:N X=MG*X0+(D-L)^-1*b2; if(norm(X-X0)<1e-6) b2 disp('计算结果:') X2=vpa(X,6) disp('迭代次数') k AX=vpa(A*X,6) break; else X0=X; end end if k==N disp('迭代没有收敛') end 实验结果 1. 621-3100,b2,b-200 A14-212-3144345结果: -.7272735 ,X0 X1 .8080812 .808081-10雅可比迭代法计算b1迭代24次,计算b2迭代30次。 高斯塞德尔法计算b1迭代15次,计算b2迭代20次。 第 13 页 共 32 页 计算方法实验报告 2. 10.80.83100,b2,b-200 A0.810.8120.80.811345结果: 5.7692332.6923 ,X 7.69231X1 .7692312-42.3077-4.23077雅可比迭代法计算计算不收敛。 高斯塞德尔法计算b1迭代45次,计算b2迭代52次。 3. 134,AX 71-6结果为 1X 1但使用两种方法都不收敛。 10.龙格现象的发生、防止和插值效果的比较 实验内容:[1]P102页实验课题(一)龙格现象的发生、防止和插值效果的比较 实验程序: clear; end; clc; % 拉格朗f='x/(1+x^4)'; 日插值算法 ykl=zeros(1,41); N=input('输入插值次数'); xi=zeros(1,N+1); for i=1:41 h=10/N; ykl(i)=0; for k=1:N+1 for k=1:N+1 xi(k)=-5+(k-1)*h; t=1; end for j=1:N+1 yi=subs(f,xi); if j~=k xk=zeros(1,41); for k=1:41 t=(xk(i)-xi(j))/(xi(k)-xi(j))*t; xk(k)=-5+0.25*(k-1); ykl(i)=ykl(i)+t*yi(k); 第 14 页 共 32 页 计算方法实验报告 end end end end subplot(2,2,1); plot(xk,ykl,'b') title('拉格朗日插值曲线') % 分 ykx(i)=yi(k-1)*(xk(i)-xi(k))/(xi(k-1)-xi(k))+yi(k)*(xk(i)-xi(k-1))/(xi(k)-xi(k-1)); end subplot(2,2,2); plot(xk,ykx,'g') title('分段线性插值曲线') % 段线性插值 ykx=zeros(1,41); for i=1:41 k=1; k=k+1; while k 结算结果 1. 的十次插值图像为: yky=zeros(1,41); yky=interp1(xi,yi,xk,'spline'); subplot(2,2,3); plot(xk,yky,'r') title('三次样条插值曲线') disp('计算结果输出:') z=[xk' ykl' ykx' yky'] yx1x4 第 15 页 共 32 页 计算方法实验报告 拉格朗日插值曲线200.5分段线性插值曲线1000-10-50.50三次样条插值曲线5-0.5-5050-0.5-505 拉格朗日插值曲线800060004000020000-2000-510.50-0.5-1-50三次样条插值曲线5-0.5-5050.5分段线性插值曲线05二十次插值图像: xk50.25k(k0,1,,n) 插值顺序:xk,拉格朗日插值、分段线形插值、I型三次样条插值: 第 16 页 共 32 页 计算方法实验报告 十次插值: -5.0000 -0.0799 -0.0080 -0.0080 -4.7500 2.7400 -0.0099 -0.0007 -4.5000 2.3631 -0.0118 -0.0011 -4.2500 1.0023 -0.0137 -0.0068 -4.0000 -0.2309 -0.0156 -0.0156 -3.7500 -0.9262 -0.0208 -0.0252 -3.5000 -1.0791 -0.0261 -0.0334 4.7500 15.8418 -0.0002 0.0007 5.0000 19.2728 -0.0055 0.0080 -5., -.160, -.799e-2, -.799e-2 -4.75, 30.0, -.947e-2, -.932e-2 -4.50, -.304, -.109e-1, -.109e-1 -4.25, -3.70, -.133e-1, -.130e-1 -4., -.529, -.156e-1, -.156e-1 -3.75, -.194e-1, -.194e-1, -.188e-1 -3.50, -.894, -.232e-1, -.232e-1 -3.2500 -0.8821 -0.0313 -0.0380 -3.25, -3.0000 -0.5846 -0.0366 -0.0366 -3., -2.7500 -0.4067 -0.0569 -0.0300 -2.75, -2.5000 -0.4943 -0.0771 -0.0309 -2.50, -2.2500 -0.9042 -0.0974 -0.0549 -2.25, -2.0000 -1.6096 -0.1176 -0.1176 -2., -1.7500 -2.5185 -0.2132 -0.2259 -1.75, -1.5000 -3.4987 -0.3088 -0.3508 -1.50, -1.2500 -4.4042 -0.4044 -0.4547 -1.25, -1.0000 -5.0994 -0.5000 -0.5000 -1., -0.7500 -5.4794 -0.3750 -0.4593 -.750, -0.5000 -5.4828 -0.2500 -0.3463 -.500, 二十次插值: -.250, 0., -0.2500 -5.0987 -0.1250 -0.1852 .250, 0 -4.3660 0 0 .500, 0.2500 -3.3669 0.1250 0.1852 .750, 0.5000 -2.2148 0.2500 0.3463 1., 0.7500 -1.0388 0.3750 0.4593 1.25, 1.0000 0.0337 0.5000 0.5000 1.50, 1.2500 0.8946 0.4044 0.4547 1.75, 1.5000 1.4702 0.3088 0.3508 2., 1.7500 1.7337 0.2132 0.2259 2.25, 2.0000 1.7117 0.1176 0.1176 2.50, 2.2500 1.4847 0.0974 0.0549 2.75, 2.5000 1.1809 0.0771 0.0309 3., 2.7500 0.9625 0.0569 0.0300 3.25, 3.0000 1.0063 0.0366 0.0366 3.50, 3.2500 1.4796 0.0313 0.0380 3.75, 3.5000 2.5136 0.0261 0.0334 4., 3.7500 4.1787 0.0208 0.0252 4.25, 4.0000 6.4666 0.0156 0.0156 4.50, 4.2500 9.2847 0.0103 0.0068 4.75, 4.5000 12.4715 0.0051 0.0011 5., 第 17 页 共 32 页 -1.38, -.299e-1, -.289e-1 -1.52, -.366e-1, -.366e-1 -1.90, -.495e-1, -.469e-1 -2.67, -.624e-1, -.624e-1 -3.68, -.900e-1, -.856e-1 -4.94, -.118, -.118 -6.81, -.183, -.164 -9.76, -.247, -.247 -14.1, -.374, -.379 -19.6, -.500, -.500 -26.1, -.485, -.543 -33.3, -.471, -.471 -41.8, -.235, -.271 -52.9, 0., 0. -69.0, .235, .271 -93.3, .471, .471 -129., .485, .543 -181., .500, .500 -252., .374, .379 -345., .247, .247 -464., .183, .164 -609., .118, .118 -782., .900e-1, .856e-1 -980., .624e-1, .624e-1 -.119e4, .495e-1, .469e-1 -.141e4, .366e-1, .366e-1 -.159e4, .299e-1, .289e-1 -.170e4, .232e-1, .232e-1 -.164e4, .194e-1, .188e-1 -.130e4, .156e-1, .156e-1 -508., .133e-1, .130e-1 989., .109e-1, .109e-1 .355e4, .864e-2, .932e-2 .764e4, .633e-2, .799e-2 计算方法实验报告 2. yarctgx 十次插值图像: 拉格朗日插值曲线2001501000500-50-5210-1-2-50三次样条插值曲线5-1-2-521分段线性插值曲线0505 二十次插值图像: 3210-1-5210-1-2-5x 10拉格朗日插值曲线4分段线性插值曲线210-1-2-50三次样条插值曲线50505 xk50.25k(k0,1,,n) 插值顺序:xk,拉格朗日插值、分段线形插值、I型三次样条插值: 第 18 页 共 32 页 计算方法实验报告 十次插值: -5. -13.7 -1.37 -1.37 -4.75 -13.1 -1.36 -1.36 -4.50 -13.2 -1.35 -1.35 -4.25 -13.5 -1.34 -1.34 -4. -13.7 -1.33 -1.33 -3.75 -13.8 -1.31 -1.31 -3.50 -13.9 -1.29 -1.29 -3.25 -13.8 -1.27 -1.27 二十次插值: -5., -27.5, -1.37, -1.37 -4.75, -34.3, -1.36, -1.36 -4.50, -28.5, -1.35, -1.35 -4.25, -28.6, -1.34, -1.34 -4., -30.2, -1.33, -1.33 -3.75, -31.5, -1.31, -1.31 -3.50, -33.1, -1.29, -1.29 -3. -13.7 -2.75 -13.7 -2.50 -13.6 -2.25 -13.6 -2. -13.5 -1.75 -13.4 -1.50 -13.2 -1.25 -12.8 -1. -12.3 -.750 -11.5 -.500 -10.4 -.250 -9.14 0. -7.63 .250 -5.91 .500 -4.03 .750 -2.02 1. .118 1.25 2.36 1.50 4.73 1.75 7.28 2. 10.1 2.25 13.3 2.50 17.0 2.75 21.5 3. 27.0 3.25 33.8 3.50 42.2 3.75 52.6 4. 65.5 4.25 81.3 4.50 100. 4.75 124. 5. 152. -1.25 -1.25 -1.21 -1.22 -1.18 -1.19 -1.14 -1.15 -1.11 -1.11 -1.03 -1.06 -.946 -.994 -.866 -.906 -.785 -.785 -.590 -.626 -.392 -.435 -.196 -.223 0. 0. .196 .223 .392 .435 .590 .626 .785 .785 .866 .906 .946 .994 1.03 1.06 1.11 1.11 1.14 1.15 1.18 1.19 1.21 1.22 1.25 1.25 1.27 1.27 1.29 1.29 1.31 1.31 1.33 1.33 1.35 1.34 1.36 1.35 1.38 1.36 1.40 1.37 -3.25, -35.2, -3., -38.0, -2.75, -41.6, -2.50, -46.2, -2.25, -52.3, -2., -60.2, -1.75, -70.4, -1.50, -83.6, -1.25, -101., -1., -123., -.750, -152., -.500, -189., -.250, -238., 0., -300., .250, -381., .500, -486., .750, -620., 1., -791., 1.25, -.101e4, 1.50, -.127e4, 1.75, -.160e4, 2., -.198e4, 2.25, -.243e4, 2.50, -.294e4, 2.75, -.349e4, 3., -.403e4, 3.25, -.448e4, 3.50, -.471e4, 3.75, -.450e4, 4., -.349e4, 4.25, -.113e4, 4.50, .339e4, 4.75, .113e5, 5., .246e5, 第 19 页 共 32 页 -1.27, -1.27 -1.25, -1.25 -1.22, -1.22 -1.19, -1.19 -1.15, -1.15 -1.11, -1.11 -1.04, -1.05 -.983, -.983 -.884, -.896 -.785, -.785 -.625, -.644 -.464, -.464 -.232, -.243 0., 0. .232, .243 .464, .464 .625, .644 .785, .785 .884, .896 .983, .983 1.04, 1.05 1.11, 1.11 1.15, 1.15 1.19, 1.19 1.22, 1.22 1.25, 1.25 1.27, 1.27 1.29, 1.29 1.31, 1.31 1.33, 1.33 1.34, 1.34 1.35, 1.35 1.37, 1.36 1.38, 1.37 计算方法实验报告 龙格现象分析 由图象可以看出:在拉格朗日插值中有比较明显的Runge现象。插值效果并没有随着n的增加而变好。其他两种方法较好。 图表 6 11.[1]P129页拟合应用题 实验内容:试验课题(二) 实验程序: clear; clc; x=[1949 1950 1952 1953 1955 1956 1957 1958 1959 1960 1961 1962 1963 1965 1967 1968 ... 1970 1971 1972 1974 1975 1976 1977 1979 1980 1982 1983 1984]; y=[5.4167 5.5196 5.7428 5.8796 6.1465 6.2828 6.4653 6.5994 6.7209 6.6207 6.5859 ... 6.7297 6.9172 7.2538 7.4542 7.6368 7.8534 8.2929 8.7177 9.0859 9.2420 9.3717 ... 9.4974 9.7542 9.8705 10.1541 10.2495 10.3475]; disp('二次多项式拟合函数为') [p2,s]=polyfit(x,y,2); p=poly2str(p2,'x') xi=1949:2005; yi1=polyval(p2,xi); subplot(1,2,1) plot(x,y,'*',xi,yi1) mins=0; for i=1:28 mins=mins+(polyval(p2,x(i))-y(i))^2; end disp('二次多项式拟合偏差平方和为') mins disp('三次多项式拟合函数为') [p3,s]=polyfit(x,y,3); p=poly2str(p3,'x') xi=1949:2005; yi2=polyval(p3,xi); subplot(1,2,2) plot(x,y,'*',xi,yi2) mins=0; for i=1:28 mins=mins+(polyval(p3,x(i))-y(i))^2; end disp('三次多项式拟合偏差平方和为') mins pause; disp('四氯化碳的温度与应力的关系'); t=[-69.7 -65.3 -59.6 -56.8 -54.8 -50.1 -40 -30 -20 -10 0 10 20 25 ... 30 35 40 45 50 55 60 65 70 76.75 80 90 100]; p=[0.145 0.224 0.384 0.504 0.595 0.925 2.208 4.745 9.708 ... 18.47 32.95 55.97 90.99 114.5 143.0 176.2 215.8 262.5 ... 317.1 379.3 450.8 530.9 622.3 760 843 1122 1463]; [pt,s]=polyfit(t,p,4); disp('四氯化碳的温度与应力拟合多项式'); p_t=poly2str(pt,'x') xi=-70:100; yi=polyval(pt,xi); subplot(1,1,1); plot(xi,yi,'*',t,p) mins=0; for i=1:27 mins=mins+(polyval(pt,t(i))-p(i))^2; end 第 20 页 共 32 页 计算方法实验报告 disp('4次多项式拟合偏差平方和为') mins 数据分析: 实验结果 人口问题二次拟合函数: p 0.0013578 x2 - 5.1921 x 4967.1761三次拟合函数为: p 7.2624e-005 x3 0.4298 x2 - 847.7159 x 557223.9487 四氯化碳温度、应力问题拟合图像: 16001400120010008006004002000-200-80-60-40-20020406080100 拟合函数: 二次为: , p 0.0013578 x2 - 5.1921 x 4967.1761二次多项式拟合偏差平方和为0.8579, 三次拟合函数为: p -7.2624e-005 x3 0.4298 x2 - 847.7159 x 557223.9487, 三次多项式拟合偏差平方和为0.7269, 四次拟合函数为: p 2.838e-006 x4 0.00053434 x3 0.042947 x2 1.8182 x 33.10034次多项式拟合偏差平方和为45.0940 比较可以得出三次拟合函数的效果比较好。 第 21 页 共 32 页 计算方法实验报告 12.[1]课题1 数值积分的方法的使用、比较 实验内容:数值积分法的使用和比较 实验程序: clear; clc; f1=input('计算函数:'); a=input('输入积分下限:'); b=input('输入积分上限:'); Nmax=input('输入最多迭代次数:'); disp('Malab直接计算结果:') I1=int(f1,a,b); I=vpa(I1,8) N=2+1; Tn=[0]; while 1 if N>Nmax break; end h=(b-a)/N; xi=zeros(1,N+1); for k=1:N+1 xi(k)=a+(k+1)*h; end T=h/2*(subs(f1,a)+subs(f1,b)); for k=1:N-1 T=T+subs(f1,xi(k))*h; end if N~=3 Tn=[Tn T]; if abs(T0-T)<1e-6 break; end else Tn(1)=T; T0=T; end T0=T; N=N*2-1; end disp('复化梯形法结果:') Tn=vpa(Tn,8) T err=vpa((T-I1)/I1,8) N pause; %**************************** N=2+1; Sn=[0]; while 1 if N>Nmax break; end h=(b-a)/N; x1=a; x2=a+h/2; S=subs(f1,a)+subs(f1,b); s1=0; s2=subs(x2); for k=1:N-1 x1=x1+h; x2=x2+h; s1=s1+subs(x1); s2=s2+subs(x2); end S=h*(S+2*s1+4*s2)/6; if N==3 Sn=[S]; else Sn=[Sn,S]; end N=2*N-1; end disp('复化辛普生法结果:') Sn=vpa(Sn,8) 第 22 页 共 32 页 计算方法实验报告 S err=vpa((S-I1)/I1,8) N pause; %*************************** h=b-a; T1=(subs(f1,a)+subs(f1,b))/2; n=1; N=1; Rn=[0]; while 1 if N>Nmax disp('超过迭代次数,计算失败'); break; end u=0; x=a+h/2; for k=1:n u=u+subs(f1,x); x=x+h; end T2=(T1+h*u)/2; S2=T2+(T2-T1)/3; if k~=1 C2=S2+(S2-S1)/15; if k~=2 R2=C2+(C2-C1)/63; R1=R2; Rn(1)=R2; if k~=3 if abs(R2-R1)<1e-6 disp('龙贝格法:') Rn=vpa(Rn,8) L=vpa(R2,8) disp('误差:') err=vpa((R2-I1)/I1,8) disp('计算次数:') N break; end %abs end %k~=3 Rn=[Rn R2]; end C1=C2; end h=h/2; T1=T2; S1=S2; n=n*2; N=N+1; end pause; %******************************** N=3; Gn=[0]; while 1 if N>Nmax disp('超过迭代次数失败'); break; end h=(b-a)/N; s=0; c=1/(2*sqrt(3)); for k=0:N-1 s=s+subs(f1,a+(k+0.5-c)*h)+subs(f1,a+(k+0.5+c)*h); end s=h*s/2; if N==3 s1=s; Gn(1)=s; else if abs(s-s1)<1e-6 disp('复化两点高斯--勒让德求积法:') Gn=vpa(Gn,8) s=vpa(s,8) disp('误差:') err=vpa((s-I1)/I1,8) disp('次数:') N break; end s1=s; Gn=[Gn,s]; end N=N+1; end 第 23 页 共 32 页 实验结果 1. xIxedx 012准确计算结果0.7182818 节点个数n+1 2+1 4+1 8+1 16+1 32+1 64+1 128+1 256+1 512+1 1024+1 2. 复化梯形法 1.6476941 1.2792847 1.0271637 0.88031585 0.80124932 0.76025869 0.73939415, 0.72886903, 0.72358320 复化辛普生法 0.74815137 0 .73015786 0 .72215692 0 .71940042 0.71858322 0.71836011 0 .71830178 0.71828687 0 .71828309 龙贝格法 .71828185 1复化两点高斯--勒让德求积法 0.71819863 0 .71825542 0. .71828079 Ix1x2dx 0准确积分结果:.60947574 节点个数n+1 2+1 4+1 8+1 16+1 32+1 64+1 128+1 256+1 512+1 1024+1 复化梯形法 0.97418465 0.85526953 0.7553430 0.65149774 0.68952193, 0.63101824 0.62038412 0.61496476 0 .61222902 复化辛普生法 0.60895397 0 .60940782 0 .60946923 0.60947520 0.60947567 0.60947571 0.60947571 0.60947571 0 .60947571 龙贝格法 0.60947570 复化两点高斯--勒让德求积法 0. .60948296 0.60947798 0.60947615 MATLAB 实验报告 3. 15/2Ixdx 0准确计算结果0.28571429 节点个数n+1 2+1 4+1 8+1 16+1 32+1 64+1 128+1 256+1 512+1 1024+1 复化梯形法 0.62096246 0 .49049622 0.39894366 0 .3452097 0.30114776 0.29347870 0.28960849 0.28766439 0.31620382 复化辛普生法 0.32020005 0.29862046 0 .28977488 0.28686179 0.28601980 0.28579313 0 .28573431 0 .28571933 0 .28571555 龙贝格法 0.28571054 复化两点高斯--勒让德求积法 0 .28573397 0.28571616 0.28571539 13.数据样条插值 样条插值数据:0,1.8,2.1,0.9,0.2,-0.5,-0.2,-1.7,-0.9,-0.3 程序源码:yangtiao.m 清单: x=0:9; x1=0:0.01:9; y=[0,1.8,2.1,0.9,0.2,-0.5,-0.2,-1.7,-0.9,-0.3]; y1=interp1(x,y,x1,'nearest'); y2=interp1(x,y,x1,'linear'); y3=interp1(x,y,x1,'spline'); y4=interp1(x,y,x1,'cubic'); plot(x,y,'ok',x1,y1,'-r',x1,y2,'-.b',x1,y3,':c',x1,y4,'--k'); legend('原始数据','最近点插值','线性插值','样条插值','立方插值') 第 25 页 共 32 页 MATLAB 实验报告 2.521.510.50-0.5-1-1.5-2原始数据最近点插值线性插值样条插值立方插值0123456789 图表 7样条插值 14.统计应用 学生身高以及三门课的成绩数据: 154,49,83,67;...158,99,81,75;...155,100,68,86;...145,63,75,96;...145,63,75,96;... 141,55,65,75;...155,56,64,85;...147,89,87,77;...147,96,54,100;...145,60,76,67 求每一列最大、最小值、标准差、中间元素 程序\ongji.m 程序清单: format,echo off,disp(' ') disp('十个学生的身高及三门课程分数列表如下:'),pause data=[154,49,83,67;...158,99,81,75;...155,100,68,86;... 145,63,75,96;...145,63,75,96;...141,55,65,75;...155,56,64,85;... 147,89,87,77;...147,96,54,100;...145,60,76,67] pause, disp('max(data)求各列最大值'),pause, max(data),pause, disp('min(data)求各列最小值'),pause, min(data),pause, 第 26 页 共 32 页 MATLAB 实验报告 disp('mean(data)求各列平均值'),pause, mean(data),pause, disp('std(data)求各列标准差'),pause, std(data),pause, disp('median(data)求各列中间元素'),pause, median(data),pause,disp(' ')disp('sort(data)各列元素排序'),pause, sort(data),pause,disp(' ')pause, cumtrapz(data),pause, disp(' '),disp('x=rand(1,1000);hist(x)'),pause, x=rand(1,1000);subplot(1,2,1),hist(x),pause, disp(' '),disp('y=randn(1,1000);hist(y,50)'),pause, y=randn(1,1000);subplot(1,2,2),hist(y,50),pause, disp(' '),echo on, R=corrcoef(x,y),pause, cov(x,y),pause,t=0:.001:3; u=sin(300*t)+2*cos(200*t) ; U=fft(u);subplot(1,2,1),plot(abs(U),'linewidth',2) set(gcf,'color','w'),pause, v=axis,pause,disp(' '),pause, subplot(1,2,2),plot(abs(U),'linewidth',2)pause, axis([0,300,0,3000]) 程序结果: max(data)求各列最大值ans = 158 100 87 100 min(data)求各列最小值ans = 141 49 54 67 mean(data)求各列平均值ans = 149.2000 73.0000 72.8000 82.4000 std(data)求各列标准差ans = 5.7504 20.4070 10.0421 12.0757 median(data)求各列中间元素ans = 147 63 75 81 1207010060508040603040202010000.510-4-2024 图表 5 第 27 页 共 32 页 MATLAB 实验报告 2500706020005015004010003020500100010002000300040000-4-2024图表 6 15.油罐标尺刻度设计 实际问题:在石油的生产地和加工厂,为了储存原油,经常使用大量的储油罐。油罐的外形为一个圆柱体和两个圆锥体的组合,上端有一个注油孔,由于经常注油和取油,很难知道油罐中剩余的油量,显然将油取出测量是不现实的,因此希望设计一个精细的标尺,工人只需要将该尺插入至油罐底部就可以根据标尺的油痕位置的刻度获知剩余的油量。 图表 7油罐实体 数学模型:设油罐的地面半径为R,长度为L,而圆锥的地面半径也是R, 高为A。若标尺被有浸湿的高度为H,而此时罐内的油量为V,我们的问题归结为求出函数 第 28 页 共 32 页 MATLAB 实验报告 HH(V),0VVmax 其中: 2VmaxR2LR2A 3换言之,要求油量的函数 VV(H),0H2R 的反函数。由于对称性,只需要研究0HR的情形就可以。 刻度函数的求法说明: 1.现行插值法 将区间[0,R]作如下等分,H00,HiH(i1,2,n),那么由式 HHH2V(H)LRarccos(1)(1)1(1)RRR2222RHH2AR2RHH22RAarcsin2A(RH)2RHH(RH)ln3RRRH 可以求得V在各分点的值 : 0V 0V1Vn以R=1,A=1,L=5(单位:m)为例进行实际计算。 Vmax 2求油量函数的值,取H00,H0.1,HiiH(i1,2,10),可得计算结果。 第 29 页 共 32 页 MATLAB 实验报告 程序:oiltank.m 源程序: h=0:0.1:1.0; r=1; a=1; l=5; v=l*r^2*(acos(1-h./r)-(1-h./r).*sqrt(1-(1-h./r).^2))+2/3*(r^2*a*asin(sqrt(2*h.*r-h.^2)./r)-2*a*(r-h).*sqrt(2*h.*r-h.^2)+a/r*(r-h).^3*log((r+sqrt(2*h.*r-h.^2))/(r-h))); subplot(1,2,1); plot(h,v,h,v,'+') title('罐高-油罐体积曲线') xlabel('罐高') ylabel('油罐体积') vmax=pi*r^2*l+2/3*pi*r^2*a; vmax=0.5*vmax; v1=0:0.5:vmax; h_inter=interp1(v,h,v1,'linear') subplot(1,2,2); plot(v1,h_inter,'*') title('油罐体积-罐高曲线') xlabel('油罐体积') ylabel('罐高') 实验结果: h=0:0.1:1 v = Columns 1 through 8 0.5461 0.4693 0.8861 1.5285 2.3326 3.2600 Columns 9 through 11 6.5234 7.7040 8.9012 h_inter1 = Columns 1 through 9 NaN 0.0600 0.2177 0.2956 0.3586 0.4180 0.4720 Columns 10 through 18 0.6199 0.6656 0.7107 0.7543 0.7980 0.8404 0.8827 第 30 页 共 32 页 4.2824 0.5235 0.9247 5.3768 0.5724 0.9665 MATLAB 实验报告 h_inter2 = Columns 1 through 9 0.0489 0.2798 0.3026 0.3362 0.4264 0.4787 0.5216 0.5715 0.6211 Columns 10 through 17 0.6668 0.7108 0.7546 0.7980 0.8407 0.8829 0.9247 0.9665 油平面和油量函数、标尺函数: 油高-油量曲线987610.90.80.70.6油量-油高曲线10.90.80.70.60.50.40.30.20.10.5 000.5油高1005油量100-101油高标尺立方米 8.5 8.0 7.5 7.0 6.5 6.0 5.5 5.0 4.5 4.0 3.5 3.0 2.5 2.0 1.5 1.0 油罐体积5油高0.50.443210.30.20.1 图表 8 油罐油高——油量函数图 第 31 页 共 32 页 MATLAB 实验报告 课程体会 致谢 通过MATLB的学习,熟悉了matlab6.5 的操作环境,掌握了相关的操作命令函数,了解了相关实际问题的处理、解决方法。同时通过本课程的学习,复习了包括数学分析、高等代数、计算方法、常微分方程等相关学科的知识内容。这门课对培养数学思维、解决实际问题的能力有特别的作用和意义,学生在这门课的学习中受益不浅。 但通过阅读相关资料、学术期刊,可以看出:matlab的在信号处理、影像处理、神经网络分析、系统仿真、模糊系统设计等领域应用十分广泛,仅仅靠短时间的学习还不能完全掌握其要领,还需要进一步学习。扎实学习数学知识,培养数学思维能力,才能起到事半功倍的效果。 十分感谢张老师,这一学期跟张老师连续上了数学建模、matlab两门课。因为时间原因,没有能投入尽可能多的时间来学习这两门课。但从张老师的课堂中,我学到了在以往数学课中没有学到的许多东西,这些东西让我在数学学习,还有处理实际问题能力的培养,都有深刻的体会。 最后,再一次衷心感谢张老师的教诲!祝张老师身体健康、永葆学术青春! 参考书 [1] 曹德欣,曹璎珞.计算方法.徐州:中国矿业大学,2001 [2] 张铮.Matlab 程序设计和实例.北京:中国铁道出版社,2003 [3] 李继成.数学实验.西安:西安交通大学出版社,2001 [4] 乐经良.数学实验.北京.高等教育出版社,2001 第 32 页 共 32 页 因篇幅问题不能全部显示,请点此查看更多更全内容