数学实验报告

更新时间:2024-01-02 01:23:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数学实验报告

院 系班 级指导教师姓 名

计算机学院 2004级二学位 张 兴 永 田 琳

计算方法实验报告

实 验 目 录

1.计算s(x)?cosxcos2xcos4x?cos64x ............................................................................... 3 2. 求f(t)?5sin2t-3cos2t的fourier、Laplace、ztrans变换 ............................................. 3 3.矩阵高斯消去法 ........................................................................................................................ 3 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 数值积分的方法的使用、比较 .................................................................... 21

实验结果 ................................................................................................................................ 24 13.数据样条插值 ........................................................................................................................ 25 14.统计应用 ................................................................................................................................ 25 15.油罐标尺刻度设计 ................................................................................................................ 27 课程体会 致谢 .............................................................................................................................. 31 参考书 ............................................................................................................................................ 31 图表目录 ........................................................................................................ 错误!未定义书签。

第 2 页 共 31 页

计算方法实验报告

1.计算s(x)?cosxcos2xcos4x?cos64x

程序内容:源程序:\\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.矩阵高斯消去法

?107???对矩阵A?415进行高斯消去法变换 ????2?19??求三次初等变换的总的等价乘子,并用MATLAB求原来A的行列式、秩和迹

第 3 页 共 31 页

计算方法实验报告

源程序 :\\gaosi.m 程序清单:

实验结果:

?1A上三角???0??0det_A = -28 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的行列式、秩和迹

07?1-23??100?0-28?,A?下三角?-410?

??????-611??rank_a =3

tr_A =11

第 4 页 共 31 页

计算方法实验报告

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 页 共 31 页

计算方法实验报告

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 页 共 31 页

计算方法实验报告

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 resualt=zeros(4); N=13;

if a>=N/(N+1)

I2=(2*a+1)/(2*a*(a+1)*(N+1));

第 7 页 共 31 页

计算方法实验报告

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

次数 精确值 迭代值 相对误差 [ 1, .31922183e-1, .319222e-1, .19912866e-8] [ 2, .21167256e-1, .211673e-1, .21971093e-8] [ 3, .15824494e-1, .158245e-1, .19548773e-8]

第 8 页 共 31 页

计算方法实验报告

[ 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('输入迭代精度:');

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);

第 9 页 共 31 页

计算方法实验报告

end if E

disp('牛顿法__计算结果:') x=vpa(xx,8)

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

disp('[-4,-3]计算结果:') x=vpa(xx,8)

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;

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('[3,4]牛顿法__计算结果:') x=vpa(xx,8)

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;

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('[0,0.2]计算结果:') x=vpa(xx,8)

disp('计算误差为:')

error=vpa(abs((xx-r)/r),5)

第 10 页 共 31 页

计算方法实验报告

f_x=vpa(subs(f,xx),8) disp('最终迭代次数:') k break; else

x0=xx;

end end if k==N

disp('经过设置的迭代次数没有收敛,计算失败') end

实验结果

函数

f(x)?x3?sin x?12x?1

的图像为:

20151050-5-10-15-20-4-3-2-101234

图表 4

方案 牛顿法 初值 -3 迭代次数 5 5 4 4 2 2 2 迭代结果 -3.4911788 发散 发散 3.4101251 发散 发散 .76963989e-1 .76963989e-1 .76964248e-1 .77153212e-1 .14285360 误差 0 0 .74718010e-13 0 -.33644973e-5 -.24559693e-2 -.85369616 普通迭代(1) -3 普通迭代(2) -3 牛顿法 3 普通迭代(1) 3 普通迭代(2) 3 牛顿法 牛顿法 [3 4] 图表 5

-1 0 0 普通迭代(1) 0 普通迭代(2) 0 第 11 页 共 31 页

计算方法实验报告

9.雅可比迭代法与高斯塞德尔法的收敛性与收敛速度

实验内容:[1]P71页试验课题(四),雅可比迭代法与高斯——塞德尔迭代法的收敛性与收敛速度。 实验程序 : clear; clc; A=input('输入系数矩阵A:'); b1=input('输入矩阵b1:');

b2=input('输入矩阵b2:'); disp('Matlab计算结果:')

x1=inv(A)*b1; X1=vpa(x1,6) x2=inv(A)*b2; X2=vpa(x2,6) L=tril(A); U0=triu(A); U=L-A; L=U0-A; D=A+L+U; pause; N=input('输入最多迭代次数:');

disp('雅可比迭代计算结果:')

MJ=inv(D)*(L+U); disp('计算b1情况');

X0=zeros(sqrt(numel(A)),1); %与输入矩阵配置相同的初始值

for k=1:N X=MJ*X0+D^-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=MJ*X0+D^-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 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; 第 12 页 共 31 页

计算方法实验报告

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??-3??100??,b??2?,b??-200?

A??14-212??????????-314???4???345??结果:

?-.727273??5?? ,X??0?

X1?? .8080812???????? .808081??-10??雅可比迭代法计算b1迭代24次,计算b2迭代30次。

高斯塞德尔法计算b1迭代15次,计算b2迭代20次。 2.

?10.80.8??3??100??,b??2?,b??-200?

A??0.810.812??????????0.80.81???1???345??结果:

?5.76923??32.6923?? ? ,X?? 7.69231X1?? .7692312?????????-42.3077??-4.23077?雅可比迭代法计算计算不收敛。

高斯塞德尔法计算b1迭代45次,计算b2迭代52次。

第 13 页 共 31 页

计算方法实验报告

3.

?13??4?A???,X??-6?

?71????结果为

?1?X???

?1?但使用两种方法都不收敛。

10.龙格现象的发生、防止和插值效果的比较

实验内容:[1]P102页实验课题(一)龙格现象的发生、防止和插值效果的比较 实验程序: clear; end clc; subplot(2,2,1); f='x/(1+x^4)'; plot(xk,ykl,'b') N=input('输入插值次数'); title('拉格朗日插值曲线') xi=zeros(1,N+1); % 分段线性h=10/N; 插值 for k=1:N+1 ykx=zeros(1,41); xi(k)=-5+(k-1)*h; for i=1:41 end k=1; yi=subs(f,xi); k=k+1; xk=zeros(1,41); while k=xi(k) for k=1:41 k=k+1; xk(k)=-5+0.25*(k-1); end end;

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)); 算法

ykl=zeros(1,41); end for i=1:41 subplot(2,2,2); ykl(i)=0; plot(xk,ykx,'g') for k=1:N+1 title('分段线性插值曲线') t=1; % for j=1:N+1 yky=zeros(1,41); if j~=k yky=interp1(xi,yi,xk,'spline'); t=(xk(i)-xi(j))/(xi(k)-xi(j))*t; subplot(2,2,3); ykl(i)=ykl(i)+t*yi(k); plot(xk,yky,'r') end title('三次样条插值曲线') end disp('计算结果输出:') end z=[xk' ykl' ykx' yky']

第 14 页 共 31 页

计算方法实验报告

结算结果

1.

y?的十次插值图像为:

x 41?x

第 15 页 共 31 页

计算方法实验报告

拉格朗日插值曲线分段线性插值曲线200.51000-10-505-0.5-505三次样条插值曲线0.50-0.5-505拉格朗日插值曲线分段线性插值曲线80000.560004000020000-2000-505-0.5-505三次样条插值曲线10.50-0.5-1-505图像:

xk??5?0.25k(k?0,1,?,n)

插值顺序:xk,拉格朗日插值、分段线形插值、I型三次样条插值:

第 16 页 共 31 页

二十次插值

计算方法实验报告

十次插值:

-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 -3.2500 -0.8821 -0.0313 -0.0380 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.25, -1.38, -.299e-1, -.289e-1 -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 页 共 31 页

-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.

y?arctgx

十次插值图像:

拉格朗日插值曲线2001501000500-50-5210-1-2-50三次样条插值曲线5-1-2-521分段线性插值曲线0505

二十次插值图像:

3210-1-5210-1-2-5x 10拉格朗日插值曲线4分段线性插值曲线210-1-2-50三次样条插值曲线50505

xk??5?0.25k(k?0,1,?,n)

插值顺序:xk,拉格朗日插值、分段线形插值、I型三次样条插值:

第 18 页 共 31 页

计算方法实验报告

十次插值:

-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 -3. -13.7 -1.25 -1.25

二十次插值:

-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.25, -35.2, -1.27, -1.27 -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.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., -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 页 共 31 页

-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

disp('4次多项式拟合偏差平方和为') mins

数据分析:

第 20 页 共 31 页

计算方法实验报告

实验结果

人口问题二次拟合函数:

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

比较可以得出三次拟合函数的效果比较好。

12.[1]课题1 数值积分的方法的使用、比较

实验内容:数值积分法的使用和比较 实验程序:

第 21 页 共 31 页

计算方法实验报告

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) 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;

第 22 页 共 31 页

计算方法实验报告

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 ?s 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 页 共 31 页

实验结果

1.

xI??xedx

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 复化两点高斯--勒让德求积法 0.71819863 0 .71825542 0. .71828079 I??x1?x2dx

01准确积分结果:.60947574 节点个数n+1 2+1 4+1 8+1 16+1 32+1 64+1 128+1 256+1 512+1 1024+1

3.

15/2复化梯形法 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 I??xdx

0准确计算结果0.28571429

节点个数n+1 2+1 4+1 8+1 16+1 32+1 64+1

复化梯形法 0.62096246 0 .49049622 0.39894366 0 .3452097 0.30114776 0.29347870 复化辛普生法 0.32020005 0.29862046 0 .28977488 0.28686179 0.28601980 0.28579313 龙贝格法 0.28571054 复化两点高斯--勒让德求积法 0 .28573397 0.28571616 0.28571539 128+1 256+1 512+1 1024+1 0.28960849 0.28766439 0.31620382 0 .28573431 0 .28571933 0 .28571555 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('原始数据','最近点插值','线性插值','样条插值','立方插值')

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 求每一列最大、最小值、标准差、中间元素

程序\\tongji.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,

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

2500706020005015004010003020500100010002000300040000-4-2024图表 6

15.油罐标尺刻度设计

实际问题:在石油的生产地和加工厂,为了储存原油,经常使用大量的储油罐。油罐的外形为一个圆柱体和两个圆锥体的组合,上端有一个注油孔,由于经常注油和取油,很难知道油罐中剩余的油量,显然将油取出测量是不现实的,因此希望设计一个精细的标尺,工人只需要将该尺插入至油罐底部就可以根据标尺的油痕位置的刻度获知剩余的油量。

图表 7油罐实体

数学模型:设油罐的地面半径为R,长度为L,而圆锥的地面半径也是R, 高为A。若标尺被有浸湿的高度为H,而此时罐内的油量为V,我们的问题归结为求出函数

H?H(V),0?V?Vmax

其中:

2Vmax??R2L??R2A

3换言之,要求油量的函数

V?V(H),0?H?2R

的反函数。由于对称性,只需要研究0?H?R的情形就可以。

刻度函数的求法说明: 1.现行插值法

将区间[0,R]作如下等分,H0?0,Hi??H(i?1,2,?n),那么由式

?HHH?V(H)?LR2?arccos(1?)?(1?)1?(1?)2?RRR??2?22RH?H2AR?2RH?H22??RAarcsin?2A(R?H)2RH?H?(R?H)ln3?RRR?H?可以求得V在各分点的值 :

????

0?V 0?V1???Vn?以R=1,A=1,L=5(单位:m)为例进行实际计算。

Vmax 2求油量函数的值,取H0?0,?H?0.1,Hi?i?H(i?1,2,?10),可得计算结果。

程序: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 4.2824 5.3768

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 0.5235 0.5724 Columns 10 through 18

0.6199 0.6656 0.7107 0.7543 0.7980 0.8404 0.8827 0.9247 0.9665

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 油罐油高——油量函数图

课程体会 致谢

通过MATLB的学习,熟悉了matlab6.5 的操作环境,掌握了相关的操作命令函数,了解了相关实际问题的处理、解决方法。同时通过本课程的学习,复习了包括数学分析、高等代数、计算方法、常微分方程等相关学科的知识内容。这门课对培养数学思维、解决实际问题的能力有特别的作用和意义,学生在这门课的学习中受益不浅。

但通过阅读相关资料、学术期刊,可以看出:matlab的在信号处理、影像处理、神经网络分析、系统仿真、模糊系统设计等领域应用十分广泛,仅仅靠短时间的学习还不能完全掌握其要领,还需要进一步学习。扎实学习数学知识,培养数学思维能力,才能起到事半功倍的效果。

十分感谢张老师,这一学期跟张老师连续上了数学建模、matlab两门课。因为时间原因,没有能投入尽可能多的时间来学习这两门课。但从张老师的课堂中,我学到了在以往数学课中没有学到的许多东西,这些东西让我在数学学习,还有处理实际问题能力的培养,都有深刻的体会。

最后,再一次衷心感谢张老师的教诲!祝张老师身体健康、永葆学术青春!

参考书

[1] 曹德欣,曹璎珞.计算方法.徐州:中国矿业大学,2001

[2] 张铮.Matlab 程序设计和实例.北京:中国铁道出版社,2003 [3] 李继成.数学实验.西安:西安交通大学出版社,2001 [4] 乐经良.数学实验.北京.高等教育出版社,2001

课程体会 致谢

通过MATLB的学习,熟悉了matlab6.5 的操作环境,掌握了相关的操作命令函数,了解了相关实际问题的处理、解决方法。同时通过本课程的学习,复习了包括数学分析、高等代数、计算方法、常微分方程等相关学科的知识内容。这门课对培养数学思维、解决实际问题的能力有特别的作用和意义,学生在这门课的学习中受益不浅。

但通过阅读相关资料、学术期刊,可以看出:matlab的在信号处理、影像处理、神经网络分析、系统仿真、模糊系统设计等领域应用十分广泛,仅仅靠短时间的学习还不能完全掌握其要领,还需要进一步学习。扎实学习数学知识,培养数学思维能力,才能起到事半功倍的效果。

十分感谢张老师,这一学期跟张老师连续上了数学建模、matlab两门课。因为时间原因,没有能投入尽可能多的时间来学习这两门课。但从张老师的课堂中,我学到了在以往数学课中没有学到的许多东西,这些东西让我在数学学习,还有处理实际问题能力的培养,都有深刻的体会。

最后,再一次衷心感谢张老师的教诲!祝张老师身体健康、永葆学术青春!

参考书

[1] 曹德欣,曹璎珞.计算方法.徐州:中国矿业大学,2001

[2] 张铮.Matlab 程序设计和实例.北京:中国铁道出版社,2003 [3] 李继成.数学实验.西安:西安交通大学出版社,2001 [4] 乐经良.数学实验.北京.高等教育出版社,2001

本文来源:https://www.bwwdw.com/article/epdx.html

Top