ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:27.90KB ,
资源ID:8348859      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8348859.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数值分析上机实验报告总结归纳.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数值分析上机实验报告总结归纳.docx

1、数值分析上机实验报告总结归纳实验报告一题目:非线性方程求解摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用 两种常见的求解方法二分法和 Newton法及改进的Newton法。前言:(目的和意义)掌握二分法与Newton法的基本原理和应用。数学原理:对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。对于二分法,其数学实质就是说对于给定的待求解的方程 f(x),其在a,b上连续,f(a)f(b)0 , 且f(x)在a,b内仅有一个实根x*,取区间中点c,若,则c恰为其根,否则根据f(a)f(c)5e-6);c=(a+b)/2;if

2、 f12(a)*f12(c)0;a=c;elseb=c;endR=b-a;%求出误差k=k+1;endx=c%给出解Newton法及改进的Newton法源程序:clear% 输入函数f=input(请输入需要求解函数,s)%求解f(x)的导数 df=diff(f);%改进常数或重根数miu=2;%初始值x0xO=in put( in put in itial value xO);k=0;%迭代次数max=100;%最大迭代次数R=eval(subs(f,xO,x);%求解f(xO),以确定初值xO时否就是解 while (abs(R)1e-8)x1=xO-miu*eval(subs(f,xO,

3、x)/eval(subs(df,xO,x);R=x1-x0;x0=x1;k=k+1;if (eval(subs(f,xO,x)max;%如果迭代次数大于给定值,认为迭代不收敛,重新输入初值 ss=in put(maybe result is error,choose a new xO, y/n? ,s);if strcmp(ss,y)xO=in put( in put in itial value x0);k=0;elsebreakendendendk;%给出迭代次数 x=xO ; %给出解 结果分析和讨论:X21.用二分法计算方程sinx 2 0在1,2内的根。(5* 10 6,下同)计算结

4、果为x=;f(x)=;k=18;由f(x)知结果满足要求,但迭代次数比较多,方法收敛速度比较慢。2.用二分法计算方程x3 x 1 0在1,内的根。计算结果为x=;f(x)=;k=17;由f(x)知结果满足要求,但迭代次数还是比较多。3.用Newton法求解下列方程a)xex 1 0 xo=;计算结果为x=;f(x)=; k=4;由f(x)知结果满足要求,而且又迭代次数只有 4次看出收敛速度很快。3b)x x 1 0 xo=1 ;2c)(x 1) (2x 1) 0 xo=, xo=;当灭0=时,计算结果为x=;f(x)=; k=4 ;由f(x)知结果满足要求,而且又迭代次数只有 4次看出收敛速度

5、很快,实际上该方程确实有真 解x=。当灭0=时,计算结果为x=;f(x)=0 ; k=9 ;由f(x)知结果满足要求,实际上该方程确实有真解x=,但迭代次数增多,实际上当取X0时, x 1就变成了方程的另一个解,这说明 Newt on法收敛与初值很有关系,有的时候甚至可能不收敛。4.用改进的Newton法求解,有2重根,取 22(x 1) (2x 1) 0 X0=;并与3.中的c)比较结果。当X0=时,程序死循环,无法计算,也就是说不收敛。改 1.5时,结果收敛为x=;f(x)=; k=16;显然这个结果不是很好,而且也不是收敛至方程的 2重根上。当X0=时,结果收敛为x=;f(x)=; k=

6、4;这次达到了预期的结果,这说明初值的选取很重要,直接关系到方法的收敛性,实际上直接用 Newton法,在给定同样的条件和精度要求下, 可得其迭代次数k=15,这说明改进后的Newton法法速度确实比较快。结论:对于二分法,只要能够保证在给定的区间内有根, 使能够收敛的,当时收敛的速度和给定的区间有关,二且总体上来说速度比较慢。 Newt on法,收敛速度要比二分法快,但是最终其收敛的结果与初值的选取有关, 初值不同,收敛的结果也可能不一样,也就是结果可能不时预期需要得结果。改进的Newton法求解重根问题时,如果初值不当,可能会不收敛,这一点非 常重要,当然初值合适,相同情况下其速度要比 N

7、ewton法快得多。实验报告二题目:Gauss列主元消去法摘要:求解线性方程组的方法很多,主要分为直接法和间接法。本实验运用直接法的 Guass消去法,并采用选主元的方法对方程组进行求解。前言:(目的和意义)1.学习Gauss消去法的原理。2.了解列主元的意义。3.确定什么时候系数阵要选主元数学原理:由于一般线性方程在使用 Gauss消去法求解时,从求解的过程中可以看到,若 akk1)=O,则必须进行行交换,才能使消去过程进行下去。有的时候即使akk 1) 0,但是其绝对值非常小, 由于机器舍入误差的影响,消去过程也会出现不稳定得现象,导致结果不正确。因此有必要进 行列主元技术,以最大可能的消

8、除这种现象。这一技术要寻找行 r,使得并将第r行和第k行的元素进行交换,以使得当前的akk 1)的数值比0要大的多。这种列主元的 消去法的主要步骤如下:1.消元过程对k=1,2,n-1,进行如下步骤。1)选主元,记若|ark |很小,这说明方程的系数矩阵严重病态,给出警告,提示结果可能不对。2)交换增广阵A的r,k两行的元素。arj akj (j=k,,n +1)3)计算消元aj a0 aikaq/akk (i=k+1,n;j=k+1, ,n+1)2.回代过程对k= n, n-1,1,进行如下计算至此,完成了整个方程组的求解。 程序设计:本实验采用Matlab的M文件编写。Gauss消去法源程

9、序:cleara=i nput(输入系数阵:n)b=input(输入列阵 b: n)n=len gth(b);A=a bx=zeros( n,1);%函数主体for k=1: n-1;%是否进行主兀选取if abs(A(k,k)vyipusilong; %事先给定的认为有必要选主元的小数 yzhuyuan=1;else yzhuyua n=0;endif yzhuyua n;%选主元t=A (k, k); for r=k+1: n;if abs(A(r,k)abs(t)p=r;else p=k;endend%交换元素if p=k;for q=k:n+1;s=A(k,q);A(k, q)=A(p

10、,q); A(p,q)=s;endendend%判断系数矩阵是否奇异或病态非常严重if abs(A(k,k) yipusil ongdisp(矩阵奇异,解可能不正确)end%计算消元,得三角阵for r=k+1: n;m=A(r,k)/A (k,k);for q=k:n+1;A(r,q)=A(r,q)-A(k,q)*m;endendend%求解xx( n)=A (n,n+1)/A( n,n);for k=n-1:-1:1;s=0;for r=k+1: n; s=s+A(k,r)*x(r);endt=(A (k,n+1)-s)x(k)=(A(k,n+1) -s)/A(k,k)end结果分析和讨论

11、:2 6 x例:求解方程5 7 5 y3 2 1 z2234。其中为一小数,当105 10 14 2010 ,10 ,10 ,10 时,分别采用列主元和不列主元的 Gauss消去法求解,并比较结果。 记Emax为求出的解代入方程后的最大误差,按要求,计算结果如下:当 10 5时,不选主元和选主元的计算结果如下,其中前一列为不选主元结果,后一列 为选主元结果,下同。Emax=, 0此时,由于 不是很小,机器误差就不是很大,由 Emax可以看出不选主元的计算结果精度 还可以,因此此时可以考虑不选主元以减少计算量。当 10 10时,不选主元和选主元的计算结果如下Emax=, 0此时由Emax可以看出

12、不选主元的计算精度就不好了,误差开始增大。当 10 14时,不选主元和选主元的计算结果如下0000000Emax=, 0此时由Emax可以看出,不选主元的结果应该可以说是不正确了, 这是由机器误差引起的。当 10 20时,不选主元和选主元的计算结果如下NaN 1NaN 2NaN 3Emax= NaN, 0不选主元时,程序报错:Warning: Divide by zero.。这是因为机器计算的最小精度为 10-15, 所以此时的 10 20就认为是0,故出现了错误现象。而选主元时则没有这种现象,而且由Emax可以看出选主元时的结果应该是精确解。结论:采用Gauss消去法时,如果在消元时对角线上

13、的元素始终较大(假如大于 10-5),那么本方法不需要进行列主元计算,计算结果一般就可以达到要求,否则必须进行列主元这一步, 以 减少机器误差带来的影响,使方法得出的结果正确。实验报告三题目:Rung现象产生和克服摘要:由于高次多项式插值不收敛,会产生Runge现象,本实验在给出具体的实例后,采用分 段线性插值和三次样条插值的方法有效的克服了这一现象,而且还取的很好的插值效果。前言:(目的和意义)1.深刻认识多项式插值的缺点。2.明确插值的不收敛性怎样克服。3.明确精度与节点和插值方法的关系。数学原理:在给定n+1个节点和相应的函数值以后构造 n次的Lagrange插值多项式,实验结果表明(见

14、后面的图)这种多项式并不是随着次数的升高对函数的逼近越来越好, 这种现象就是Rung现象。解决Rung现象的方法通常有分段线性插值、三次样条插值等方法。分段线性插值:设在区间a, b上,给定n+1个插值节点a=xoxi Xn=b和相应的函数值yo,yi, -,yn,,求作一个插值函数(x),具有如下性质:1)区)Yj,j=0,1,n。2)(x)在每个区间xi,刈上是线性连续函数。则插值函数 (x)称为区间a, b上对应n个数据点的分段线性插值函数。三次样条插值:给定区间a, b一个分划/: a=X0X1 XN=b若函数S(x)满足下列条件:1)S(x)在每个区间Xi, xj上是不高于3次的多项

15、式。2)S(x)及其2阶导数在a, b上连续。则称S(x)使关于分划/的三次样条函数。 程序设计:本实验采用Matlab的M文件编写。其中待插值的方程写成 function的方式,如下fun cti on y=f(x);y=1/ (1+25*x*x );写成如上形式即可,下面给出主程序Lagrange插值源程序:n=i nput(将区间分为的等份数输入:n);s=-1+2/n*0:n; %给定的定点,Rf为给定的函数 x=-1:1;f=0;for q=1: n+1;l=1;%求插值基函数for k=1: n+1;if k=q;l=l.*(x -s(k)./(s(q)-s(k);else1=1;

16、endend f=f+Rf(s(q)*l; %求插值函数 endplot(x,f,r) %作出插值函数曲线 grid onhold on分段线性插值源程序clearn=i nput(将区间分为的等份数输入:n); s=-1+2/n*0:n; %给定的定点,Rf为给定的函数 m=0;hh=;for x=-1:hh:1;ff=0;for k=1:n+1; %求插值基函数switch kcase 1if xs( n);l=(x -s( n)./(s( n+1)-s( n);elsel=0;endotherwiseif x=s(k-1) &x=s(k )& x=s(k+1);l=(x-s(k+1)./

17、(s(k)-s(k+1);elsel=0;endendendff=ff+Rf(s(k)*l; %求插值函数值endm=m+1; f(m)=ff;end%作出曲线x=-1:hh:1;plot(x,f,r);grid onhold on三次样条插值源程序:(采用第一边界条件)clearn=i nput(将区间分为的等份数输入:n);%插值区间a=-1;b=1;hh=;%画图的步长s=a+(b -a)/n*0:n; %给定的定点,Rf为给定的函数 %第一边界条件 Rf(-1),Rf(1) v=5000*1/(1+25*a*a)A3 -50/(1+25*a*a)A4;for k=1: n;%取出节点间

18、距h(k)=s(k+1)-s(k);endfor k=1:n-1;%求出系数向量 lamuda,miu la(k)=h(k+1)/(h(k+1)+h(k);miu(k)=1 -la(k);end%赋值系数矩阵Afor k=1: n-1;for p=1: n-1;switch pcase kA(k,p)=2;case k1A(k,p)=miu(p+1);case k+1A(k,p)=la(p-1);otherwiseA(k,p)=0;endendend%求出d阵for k=1: n-1;switch kcase 1d(k)=6*f2c(s(k) s(k+1) s(k+2) -miu(k)*v;c

19、ase n1d(k)=6*f2c(s(k) s(k+1) s(k+2) -la(k)*v; otherwised(k)=6*f2c(s(k) s(k+1) s(k+2);endend%求解M阵M=Ad;M=v;M;v;%m=0;f=0;for x=a:hh:b;if x=a;p=1;elsep=ceil(x-s(1)/(b-a)/n);endff仁0;ff2=0;ff3=0;ff4=0;m=m+1;ff1=1/h(p)*(s(p+1) -x)A3*M(p)/6;ff2=1/h(p)*(x -s(p)A3*M(p+1)/6; ff3=(Rf(s(p+1) -Rf(s(p)/h(p)-h(p)*(

20、M(p+1) -M(p)/6)*(x -s(p); ff4=Rf(s(p)-M(p)*h(p)*h(p)/6;f(m)=ff1+ff2+ff3+ff4 ;end%作出插值图形x=a:hh:b;plot(x,f,k)hold ongrid on结果分析和讨论:本实验采用函数f (x) 1一2进行数值插值,插值区间为卜1, 1,给定节点为1 25xXj=-1+jh,h= , j=0,,n。下面分别给出Lagrange插值,三次样条插值,线性插值的函数曲线 和数据表。图中只标出Lagrange插值的十次多项式的曲线,其它曲线没有标出,从数据表中 可以看出具体的误差。表中,Li0(x)为Lagrang

21、e插值的10次多项式,Sw(x), S40(x)分别代表n=10, 40的三次样条插 值函数,X10(x),X40(x)分别代表n =10, 40的线性分段插值函数。x f(x) L10(x) Sl0(x) S40(x) X10(x) X40(x)0从以上结果可以看到,用三次样条插值和线性分段插值,不会出现多项式插值是出现的 Runge现象,插值效果明显提高。进一步说,为了提高插值精度,用三次样条插值和线性分段 插值是可以增加插值节点的办法来满足要求, 而用多项式插值函数时,节点数的增加必然会使多项式的次数增加,这样会引起数值不稳定,所以说这两种插值要比多项式插值好的多。 而且在给定节点数的条

22、件下,三次样条插值的精度要优于线性分段插值,曲线的光滑性也要好一些。实验报告四题目:多项式最小二乘法摘要:对于具体实验时,通常不是先给出函数的解析式,再进行实验,而是通过实验的观察和 测量给出离散的一些点,再来求出具体的函数解析式。又因为测量误差的存在, 实际真实的解析式曲线并不一定通过测量给出的所有点。 最小二乘法是求解这一问题的很好的方法, 本实验运用这一方法实现对给定数据的拟合。前言:(目的和意义)1.学习使用最小二成法的原理2.了解法方程的特性 数学原理:对于给定的测量数据(xi,fi)(i=1,2,,n),设函数分布为特别的,取j(x)为多项式j (x) xj (j=0,1,,m)则

23、根据最小二乘法原理,可以构造泛函 令H0 (k=0, 1,,m)ak则可以得到法方程求该解方程组,则可以得到解ao,a!, ,am,因此可得到数据的最小二乘解程序设计:本实验采用Matlab的M文件编写。其中多项式函数 j xj写成function的方式,如下fun cti on y=fai(x,j)y=1;for i=1:jy=x.*y;end写成如上形式即可,下面给出主程序。多项式最小二乘法源程序clear%给定测量数据点(s,f) s=3 4 5 6 7 8 9;f= ;%计算给定的数据点的数目n=len gth(f);%给定需要拟合的数据的最高次多项式的次数m=10;%程序主体for

24、k=0:m;g=zeros(1,m+1);for j=0:m;t=0;for i=1:n; %计算内积(fai(si),fai(si) t=t+fai(s(i),j)*fai(s(i),k);end g(j+1)=t;endA(k+1,:)=g; %法方程的系数矩阵t=0;for i=1:n; %计算内积(f(si),fai(si)t=t+f(i)*fai(s(i),k);endb(k+1,1)=t;enda=Ab%求出多项式系数x=s(1):s( n);y=0;for i=0:m;y=y+a(i+1)*fai(x,i);endplot(x,y)%作出拟合成的多项式的曲线grid on hol

25、d onplot(s,f,rx) %在上图中标记给定的点结果分析和讨论:例 用最小二乘法处理下面的实验数据.Xi3456789fi并作出f (x)的近似分布图。分别采用一次,二次和五次多项式来拟合数据得到相应的拟合多项式为:y1=+ ;y2=+ ;y5=+ ;分别作出它们的曲线图,图中点划线为 y1曲线,实线为y2曲线,虚线为y5曲线。x为给定 的数据点。从图中可以看出并不是多项式次数越高越好,次数高了,曲线越能给定点处和实际 吻合,但别的地方就很差了。因此,本例选用一次和两次的多项式拟合应该就可以了。实验报告五题目: Romberg积分法摘要:对于实际的工程积分问题,很难应用NewtoeLe

26、ibnitz公式去求解。因此应用数值方法进 行求解积分问题已经有着很广泛的应用,本文基于 Romberg积分法来解决一类积分问题。前言:(目的和意义)1.理解和掌握Romberg积分法的原理;2.学会使用Romberg积分法;3.明确Romberg积分法的收敛速度及应用时容易出现的问题。 数学原理:b考虑积分1(f) f(x)dx,欲求其近似值,通常有复化的梯形公式、Simpsion公式和Cotesa公式。但是给定一个精度,这些公式达到要求的速度很缓慢。如何提高收敛速度,自然是人们 极为关心的课题。为此,记 T1,k为将区间a,b进行2k等分的复化的梯形公式计算结果,记 T2,k为将区间a,b

27、进行2k等分的复化的Simpsion公式计算结果,记T3,k为将区间a,b进行2k等分 的复化的Cotes公式计算结果。根据 Richards on外推加速方法,可以得到收敛速度较快的Romberg积分法。其具体的计算公式为:1.准备初值,计算2.按梯形公式的递推关系,计算3.按Romberg积分公式计算加速值m 1T m,km=2,,k4 Tm 1,k 1 m Tm 1,k m4.精度控制。对给定的精度R,若则终止计算,并取Tm,1为所求结果;否则返回2重复计算,直至满足要求的精度为止 程序设计:本实验采用Matlab的M文件编写。其中待积分的函数写成 function的方式,例如如下fun cti on yy=f(x,y);yy=x.A3;写成如上形式即可,下面给出主程序Romberg积分法源程序 % Romberg 积分法 clear%积分区间b=3;a=1;%精度要求R=1e-5;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1