数值分析上机实习报告

合集下载

昆明理工大学数值分析上机报告3

昆明理工大学数值分析上机报告3

数值分析实验报告(数值积分)姓名:学号:2006231011专业:材料学学院:云南省新材料制备与加工重点实验室授课教师:昆明理工大学06工科硕士 《数值分析》上机实验报告专业: 材料物化 姓名: 学号: 2006231011 任课教师: 作业完成实验室:实验内容:1.题目/要求:1、 利用Lagrange 插值公式()k n ki i ik in k n y x x x x x L ⎪⎪⎪⎭⎫ ⎝⎛--∑=∏≠==00 编写出插值多项式程序; 2、 给出插值多项式或分段三次插值多项式的表达式;3、 根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何; 对此插值问题用Newton 插值多项式其结果如何2.作业环境(包括选用的程序语言、运行环境) Visual C++ 6.03.数学(理论背景)描述1. Lagrange 插值多项式定义:若n 次多项式上满足条件个节点在,1),1,0)((10n j x x x n n j x l ⋅⋅⋅<+⋅⋅⋅=: 当0)(1)(=≠==k j k j x l j k x l j k 时;当时, 其中n k j ⋅⋅⋅=1,0, ,就称这1+n个次多项式)(),(),(10x l x l x l n ⋅⋅⋅为节点n x x x ⋅⋅⋅10,上的n 次插值基函数。

插值多项式可 表示为:)()(0x ly x L knk k n ∑==,称为Lagrange 插值多项式。

2.分段线形插值就是通过插值点用折线段连接起来逼近).(x f 设已知节点b x x x a n =<⋅⋅⋅<=10上的函数值n f f f ⋅⋅⋅,,21,记k kk k k h h x x h ma x ,1=-=+求一折线函数)(x I h 满足:[][]为分段线形插值函数上是线形函数,则称在每个区间记)(,)(3),,2,1,0()(2,,)(11000x I x x x I k f x I b a C x I h k k h k h h +==∈4.数值计算公式Lagrange 插值多项式()k nki i ik in k n y x x x x x L ⎪⎪⎪⎭⎫ ⎝⎛--∑=∏≠==00; 分段线形插函数,在每个小区间[]1,+k k x x 上可表示为:1111)(++++--+--=k kk kk k k k h f x x x x f x x x x h I (1+≤≤k k x x x )在整个区间[]b a ,上为:)()(0x lf x I jnj j h ∑==其中基函数),1,0,()(n k j x l jk k j ⋅⋅⋅==δ,其形式是:[][],.,,,,0);(,);0(,)(11111111⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧∉∈=≤≤--=≤≤--=+-+++---j j j j j j j j j j j j j x x x b a x n j x x x x x x x j x x x x x x x x l5.算法程序流程图Lagrange插值算法程序流程图分段低次插值算法程序流程图6.程序结构(程序中的函数调用关系图6.实验数据和实验结果(打印或用屏幕图形拷屏表示,可加为附页)(1)Lagrange 插值算法,62573238.0)596.0(=f 05422977.0)99.0(=f 分段低次插值算法,63270600.0)596.0(=f 10152800.1)99.0(=f (2Lagrange 插值算法16476189.0)8.1(=f 00126583.0)15.6(=f分段低次插值算法18160000.0)8.1(=f 00185000.0)15.6(=f7.讨论(包括题目要求的讨论和方法的适用性讨论)对于插值多项式L n (x),当∞→n 时,L n (x)不一定收敛到f(x),此时需用分段线性插值比L n (x)逼近f(x)好得多,题(2)就是一例。

(完整版)哈工大-数值分析上机实验报告

(完整版)哈工大-数值分析上机实验报告

实验报告一题目:非线性方程求解摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。

本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。

前言:(目的和意义)掌握二分法与Newton法的基本原理和应用。

数学原理:对于一个非线性方程的数值解法很多。

在此介绍两种最常见的方法:二分法和Newton法。

对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b)<0,且f(x)在[a,b]内仅有一个实根x*,取区间中点c,若,则c恰为其根,否则根据f(a)f(c)<0是否成立判断根在区间[a,c]和[c,b]中的哪一个,从而得出新区间,仍称为[a,b]。

重复运行计算,直至满足精度为止。

这就是二分法的计算思想。

Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式产生逼近解x*的迭代数列{x k},这就是Newton法的思想。

当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。

另外,若将该迭代公式改进为其中r为要求的方程的根的重数,这就是改进的Newton法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。

程序设计:本实验采用Matlab的M文件编写。

其中待求解的方程写成function的方式,如下function y=f(x);y=-x*x-sin(x);写成如上形式即可,下面给出主程序。

二分法源程序:clear%%%给定求解区间b=1.5;a=0;%%%误差R=1;k=0;%迭代次数初值while (R>5e-6) ;c=(a+b)/2;if 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;%%%初始值x0x0=input('input initial value x0>>');k=0;%迭代次数max=100;%最大迭代次数R=eval(subs(f,'x0','x'));%求解f(x0),以确定初值x0时否就是解while (abs(R)>1e-8)x1=x0-miu*eval(subs(f,'x0','x'))/eval(subs(df,'x0','x'));R=x1-x0;x0=x1;k=k+1;if (eval(subs(f,'x0','x'))<1e-10);breakendif k>max;%如果迭代次数大于给定值,认为迭代不收敛,重新输入初值ss=input('maybe result is error,choose a new x0,y/n?>>','s');if strcmp(ss,'y')x0=input('input initial value x0>>');k=0;elsebreakendendendk;%给出迭代次数x=x0;%给出解结果分析和讨论:1.用二分法计算方程在[1,2]内的根。

数值分析上机实验报告

数值分析上机实验报告

数值分析上机实验理学院11级统计01班41108030125鲁庆实验报告一一.实验名称误差与误差估计二.实验目的掌握数值运算的误差估计方法三.数学原理 1.绝对误差(*)e x设某一量的准确值为x ,近似值为x*,则x*与x 之差叫做近似值x*的绝对误差(简称误差),记为*(*)*e e x x x ==- 2.绝对误差限适当小的正数,使|(*)||*|*e x x x ε=-≤则称*ε为近似值 x * 的绝对误差限。

(有时用*x x ε*=±表示近似值x *的精度或准确值的所在范围。

3.相对误差(*)r e x绝对误差与准确值之比*(*)*(*),0r r e x x xe e x x x x-===≠称为x *的相对 误差。

4.相对误差限(*)r x ε若指定一个适当小的正数 (*)r x ε,使|(*)||(*)|(*)||r r e x e x x x ε=≤则称(*)r x ε为近似值 x *的相对误差限。

5.有效数字若近似值x*的绝对误差限是某一位的半个单位,该位到x*的第一位非零数字一共有n 位,则称近似值x*有n 位有效数字,或说x*精确到该位。

6.绝对误差的运算:)()()(2121x x x x εεε+=± )()()(122121x x x x x x εεε+≈22122121+=x x x x x x x )()()(εεε (f(x))()(x)f x εε'≈四.实验内容1. 计算I n=e 1-⎰10nxe x 2dx (n=0,1,...)并估计误差。

解: >> I0 = exp(-1)*quad('(x.^0).*exp(x.^2)',0,1,10^(-10));>> vpa(I0,10) ans =.5380795069>> I1= exp(-1)*quad('(x.^1).*exp(x.^2)',0,1,10^(-10)); >> vpa(I1,10) ans =.3160602794>> I2 = exp(-1)*quad('(x.^2).*exp(x.^2)',0,1,10^(-10)); >> vpa(I2,10) ans =.2309602465>> I3 = exp(-1)*quad('(x.^3).*exp(x.^2)',0,1,10^(-10)); >> vpa(I3,10) ans =.1839397206>> I4 = exp(-1)*quad('(x.^4).*exp(x.^2)',0,1,10^(-10)); >> vpa(I4,10) ans =.1535596302>> I5 = exp(-1)*quad('(x.^5).*exp(x.^2)',0,1,10^(-10)); >> vpa(I5,10) ans =.1321205588>> I6 = exp(-1)*quad('(x.^6).*exp(x.^2)',0,1,10^(-10)); >> vpa(I6,10) ans =.1161009245>> I7 = exp(-1)*quad('(x.^7).*exp(x.^2)',0,1,10^(-10)); >> vpa(I7,10) ans =.1036383235>> I8 = exp(-1)*quad('(x.^8).*exp(x.^2)',0,1,10^(-10)); >> vpa(I8,10) ans =.9364676413e-1>> I9 = exp(-1)*quad('(x.^9).*exp(x.^2)',0,1,10^(-10)); >> vpa(I9,10) ans =.8544670595e-1 2.计算x255的值。

数值分析上机实验报告(插值)

数值分析上机实验报告(插值)

数值分析第一次上机练习实验报告——Lagrange 插值与三次样条插值一、 问题的描述设()2119f x x =+, []1,1x ∈-,取15iix =-+,0,1,2,...,10i =.试求出10次Lagrange 插值多项式()10L x 和三次样条插值函数()S x (采用自然边界条件),并用图画出()f x ,()10L x ,()S x .二、 方法描述——Lagrange 插值与三次样条插值我们取15i ix =-+,0,1,2,...,10i =,通过在i x 点的函数值()2119i i f x x =+来对原函数进行插值,我们记插值函数为()g x ,要求它满足如下条件:()()21,0,1,2,...,1019i i i g x f x i x ===+ (1)我们在此处要分别通过Lagrange 插值(即多项式插值)与三次样条插值的方法对原函数()2119f x x=+进行插值,看两种方法的插值结果,并进行结果的比较。

10次的Lagrange 插值多项式为:()()10100i i i L x y l x ==∑ (2)其中:()21,0,1,2,...,1019i i iy f x i x ===+ 以及()()()()()()()()()011011......,0,1,2,...,10......i i n i i i i i i i n x x x x x x x x l x i x x x x x x x x -+-+----==----我们根据(2)进行程序的编写,我们可以通过几个循环很容易实现函数的Lagrange 插值。

理论上我们根据区间[]1,1-上给出的节点做出的插值多项式()n L x 近似于()f x ,而多项式()n L x 的次数n 越高逼近()f x 的精度就越好。

但实际上并非如此,而是对任意的插值节点,当n →+∞的时候()n L x 不一定收敛到()f x ;而是有时会在插值区间的两端点附近会出现严重的()n L x 偏离()f x 的现象,即所谓的Runge 现象。

东南大学数值分析上机报告完整版

东南大学数值分析上机报告完整版

数值分析上机实验报告目录1.chapter1舍入误差及有效数 (1)2.chapter2Newton迭代法 (3)3.chapter3线性代数方程组数值解法-列主元Gauss消去法 (7)4.chapter3线性代数方程组数值解法-逐次超松弛迭代法 (8)5.chapter4多项式插值与函数最佳逼近 (10)1.chapter1舍入误差及有效数1.1题目设S N =∑1j 2−1N j=2,其精确值为)11123(21+--N N 。

(1)编制按从大到小的顺序11131121222-+⋯⋯+-+-=N S N ,计算S N 的通用程序。

(2)编制按从小到大的顺序1211)1(111222-+⋯⋯+--+-=N N S N ,计算S N 的通用程序。

(3)按两种顺序分别计算64210,10,10S S S ,并指出有效位数。

(编制程序时用单精度)(4)通过本次上机题,你明白了什么? 1.2编写相应的matlab 程序 clear;N=input('please input N:'); AValue=((3/2-1/N-1/(N+1))/2); sn1=single(0); sn2=single(0); for i=2:Nsn1=sn1+1/(i*i-1); %从大到小相加的通用程序% endep1=abs(sn1-AValue); for j=N:-1:2sn2=sn2+1/(j*j-1); %从小到大相加的通用程序% endep2=abs(sn2-AValue);fprintf('精确值为:%f\n',AValue);fprintf('从大到小的顺序累加得sn=%f\n',sn1); fprintf('从大到小相加的误差ep1=%f\n',ep1); fprintf('从小到大的顺序累加得sn=%f\n',sn2); fprintf('从小到大相加的误差ep2=%f\n',ep2); disp('================================='); 1.3matlab 运行程序结果 >> chaper1please input N:100 精确值为:0.740050从大到小的顺序累加得sn=0.740049 从大到小相加的误差ep1=0.000001 从小到大的顺序累加得sn=0.740050 从小到大相加的误差ep2=0.000000 >> chaper1please input N:10000 精确值为:0.749900从大到小的顺序累加得sn=0.749852 从大到小相加的误差ep1=0.000048 从小到大的顺序累加得sn=0.749900 从小到大相加的误差ep2=0.000000please input N:1000000精确值为:0.749999从大到小的顺序累加得sn=0.749852 从大到小相加的误差ep1=0.000147 从小到大的顺序累加得sn=0.749999 从小到大相加的误差ep2=0.0000001.4结果分析以及感悟按照从大到小顺序相加的有效位数为:5,4,3。

数值分析上机实验

数值分析上机实验

目录1 绪论 (1)2 实验题目(一) (2)2.1 题目要求 (2)2.2 NEWTON插值多项式 (3)2.3 数据分析 (4)2.3.1 NEWTON插值多项式数据分析 (4)2.3.2 NEWTON插值多项式数据分析 (6)2.4 问答题 (6)2.5 总结 (7)3 实验题目(二) (8)3.1 题目要求 (8)3.2 高斯-塞德尔迭代法 (8)3.3 高斯-塞德尔改进法—松弛法 (9)3.4 松弛法的程序设计与分析 (9)3.4.1 算法实现 (9)3.4.2 运算结果 (9)3.4.3 数据分析 (11)4 实验题目(三) (13)4.1 题目要求 (13)4.2 RUNGE-KUTTA 4阶算法 (13)4.3 RUNGE-KUTTA 4阶算法运算结果及数值分析 (14)总结 (16)附录A (17)1绪论数值分析是计算数学的一个主要部分,它主要研究各类数学问题的数值解法,以及分析所用数值解法在理论上的合理性。

实际工程中的数学问题非常复杂,所以往往需要借助计算机进行计算。

运用数值分析解决问题的过程:分析实际问题,构建数学模型,运用数值计算方法,进行程序设计,最后上机计算求出结果。

数值分析这门学科具有面向计算机、可靠的理论分析、好的计算复杂性、数值实验、对算法进行误差分析等特点。

本学期开设了数值分析课程,该课程讲授了数值分析绪论、非线性方程的求解、线性方程组的直接接法、线性方程组的迭代法、插值法、函数逼近与曲线拟合、数值积分和数值微分、常微分方程初值问题的数值解法等内容。

其为我们解决实际数学问题提供了理论基础,同时我们也发现课程中很多问题的求解必须借助计算机运算,人工计算量太大甚至无法操作。

所以学好数值分析的关键是要加强上机操作,即利用计算机程序语言实现数值分析的算法。

本报告就是基于此目的完成的。

本上机实验是通过用计算机来解答数值分析问题的过程,所用的计算工具是比较成熟的数学软件MATLAB。

数值分析上机实践报告

数值分析上机实践报告

数值分析上机实践报告一、实验目的本次实验主要目的是通过上机操作,加深对数值分析算法的理解,并熟悉使用Matlab进行数值计算的基本方法。

在具体实验中,我们将实现三种常见的数值分析算法:二分法、牛顿法和追赶法,分别应用于解决非线性方程、方程组和线性方程组的求解问题。

二、实验原理与方法1.二分法二分法是一种常见的求解非线性方程的数值方法。

根据函数在给定区间端点处的函数值的符号,不断缩小区间的长度,直到满足精度要求。

2.牛顿法牛顿法是求解方程的一种迭代方法,通过构造方程的泰勒展开式进行近似求解。

根据泰勒展式可以得到迭代公式,利用迭代公式不断逼近方程的解。

3.追赶法追赶法是用于求解三对角线性方程组的一种直接求解方法。

通过构造追赶矩阵,采用较为简便的向前追赶和向后追赶的方法进行计算。

本次实验中,我们选择了一组非线性方程、方程组和线性方程组进行求解。

具体的实验步骤如下:1.调用二分法函数,通过输入给定区间的上下界、截止误差和最大迭代次数,得到非线性方程的数值解。

2.调用牛顿法函数,通过输入初始迭代点、截止误差和最大迭代次数,得到方程组的数值解。

3.调用追赶法函数,通过输入追赶矩阵的三个向量与结果向量,得到线性方程组的数值解。

三、实验结果与分析在进行实验过程中,我们分别给定了不同的参数,通过调用相应的函数得到了实验结果。

下面是实验结果的汇总及分析。

1.非线性方程的数值解我们通过使用二分法对非线性方程进行求解,给定了区间的上下界、截止误差和最大迭代次数。

实验结果显示,根据给定的输入,我们得到了方程的数值解。

通过与解析解进行比较,可以发现二分法得到的数值解与解析解的误差在可接受范围内,说明二分法是有效的。

2.方程组的数值解我们通过使用牛顿法对方程组进行求解,给定了初始迭代点、截止误差和最大迭代次数。

实验结果显示,根据给定的输入,我们得到了方程组的数值解。

与解析解进行比较,同样可以发现牛顿法得到的数值解与解析解的误差在可接受范围内,说明牛顿法是有效的。

数值分析上机实习报告

数值分析上机实习报告

数值分析上机实习报告随着现代科学技术的迅猛发展,计算机科学的应用日益广泛,数值分析作为计算机科学中重要的分支之一,其在工程、物理、生物学等领域的应用也越来越受到重视。

本学期,我们在数值分析课程的学习中,进行了多次上机实习,通过实习,我们对数值分析的基本方法和算法有了更深入的理解和掌握。

在实习过程中,我们使用了MATLAB软件作为主要的工具,MATLAB是一种功能强大的数学软件,它提供了丰富的数值计算函数和图形显示功能,使我们能够更加方便地进行数值计算和分析。

第一次实习是线性插值和函数逼近。

我们学习了利用已知数据点构造插值函数的方法,并通过MATLAB软件实现了线性插值和拉格朗日插值。

通过实习,我们了解了插值的基本原理,掌握了插值的计算方法,并能够利用MATLAB软件进行插值计算。

第二次实习是解线性方程组。

我们学习了高斯消元法、列主元高斯消元法和克莱姆法则等解线性方程组的方法,并通过MATLAB软件实现了这些算法。

在实习过程中,我们通过实际例子了解了这些算法的应用,掌握了它们的计算步骤,并能够利用MATLAB软件准确地求解线性方程组。

第三次实习是求解非线性方程和方程组。

我们学习了二分法、牛顿法、弦截法和迭代法等求解非线性方程的方法,以及雅可比法和高斯-赛德尔法等求解非线性方程组的方法。

通过实习,我们了解了非线性方程和方程组的求解方法,掌握了它们的计算步骤,并能够利用MATLAB软件求解实际问题。

通过这次上机实习,我们不仅深入学习了数值分析的基本方法和算法,而且锻炼了利用MATLAB软件进行数值计算和分析的能力。

同时,我们也认识到了数值分析在实际问题中的应用价值,增强了解决实际问题的能力。

总之,这次上机实习使我们受益匪浅,对我们学习数值分析课程起到了很好的辅助作用。

数值分析上机实习报告(西南交通大学)

数值分析上机实习报告(西南交通大学)

数值分析上机实习报告姓名:学号:专业:大地测量学与测量工程电话:序言1.所用程序语言:本次数值分析上机实习采用Visual c#作为程序设计语言,利用Visual c#可视化的编程实现方法,采用对话框形式进行设计计算程序界面,并将结果用表格或文档的格式给出。

2.程序概述:(1)第一题是采用牛顿法和steffensen法分别对两个题进行分析,编好程序后分别带入不同的初值,观察与真实值的差别,分析出初值对结果的影响,分析两种方法的收敛速度。

(2)第二题使用Visual c#程序设计语言完成了“松弛因子对SOR法收敛速度的影响”,通过在可视化界面下输入不同的n和w值,点击按钮直接可看到迭代次数及计算结果,观察了不同的松弛因子w对收敛速度的影响。

目录一.用牛顿法,及牛顿-Steffensen法............ 错误!未定义书签。

1. 计算结果.................................... 错误!未定义书签。

2. 结果分析 (5)3. 程序清单 (5)二.松弛因子对SOR法收敛速度的影响 (8)1. 迭代次数计算结果 (8)2. 计算X()结果 (10)3. 对比分析 (12)4. 程序清单: (12)三.实习总结 (14)实验课题(一)用牛顿法,及牛顿-Steffensen法题目:分别用牛顿法,及牛顿-Steffensen法(1)求ln(x+sin x)=0的根。

初值x0分别取0.1, 1,1.5, 2, 4进行计算。

(2)求sin x=0的根。

初值x0分别取1,1.4,1.6, 1.8,3进行计算。

分析其中遇到的现象与问题。

1、计算结果由于比较多每种方法中只选取了其中两个的图片例在下面:2、结果分析通过对以上的牛顿法和steffensen法的练习,我发现在初值的选取很重要,好的初值选出后可以很快的达到预定的精度,要是选的不好就很慢,而且在有的时候得出的还是非数字,所以初始值的选取很重要。

《数值分析》上机实验报告

《数值分析》上机实验报告

数值分析上机实验报告《数值分析》上机实验报告1.用Newton 法求方程 X 7-X 4+14=0在(0.1,1.9)中的近似根(初始近似值取为区间端点,迭代6次或误差小于0.00001)。

1.1 理论依据:设函数在有限区间[a ,b]上二阶导数存在,且满足条件{}αϕ上的惟一解在区间平方收敛于方程所生的迭代序列迭代过程由则对任意初始近似值达到的一个中使是其中上不变号在区间],[0)(3,2,1,0,)(')()(],,[x |))(),((|,|,)(||)(|.4;0)(.3],[)(.20)()(.110......b a x f x k x f x f x x x Newton b a b f a f mir b a c x f ab c f x f b a x f b f x f k k k k k k ==-==∈≤-≠>+令)9.1()9.1(0)8(4233642)(0)16(71127)(0)9.1(,0)1.0(,1428)(3225333647>⋅''<-=-=''<-=-='<>+-=f f x x x x x f x x x x x f f f x x x f故以1.9为起点⎪⎩⎪⎨⎧='-=+9.1)()(01x x f x f x x k k k k 如此一次一次的迭代,逼近x 的真实根。

当前后两个的差<=ε时,就认为求出了近似的根。

本程序用Newton 法求代数方程(最高次数不大于10)在(a,b )区间的根。

1.2 C语言程序原代码:#include<stdio.h>#include<math.h>main(){double x2,f,f1;double x1=1.9; //取初值为1.9do{x2=x1;f=pow(x2,7)-28*pow(x2,4)+14;f1=7*pow(x2,6)-4*28*pow(x2,3);x1=x2-f/f1;}while(fabs(x1-x2)>=0.00001||x1<0.1); //限制循环次数printf("计算结果:x=%f\n",x1);}1.3 运行结果:1.4 MATLAB上机程序function y=Newton(f,df,x0,eps,M)d=0;for k=1:Mif feval(df,x0)==0d=2;breakelsex1=x0-feval(f,x0)/feval(df,x0);ende=abs(x1-x0);x0=x1;if e<=eps&&abs(feval(f,x1))<=epsd=1;breakendendif d==1y=x1;elseif d==0y='迭代M次失败';elsey= '奇异'endfunction y=df(x)y=7*x^6-28*4*x^3;Endfunction y=f(x)y=x^7-28*x^4+14;End>> x0=1.9;>> eps=0.00001;>> M=100;>> x=Newton('f','df',x0,eps,M);>> vpa(x,7)1.5 问题讨论:1.使用此方法求方解,用误差来控制循环迭代次数,可以在误差允许的范围内得到比较理想的计算结果。

数值分析第一次实验报告

数值分析第一次实验报告

数值分析上机实验报告题目:插值法学生姓名学院名称计算机学院专业计算机科学与技术时间一. 实验目的1、掌握三种插值方法:牛顿多项式插值,三次样条插值,拉格朗日插值2、学会matlab提供的插值函数的使用方法二.实验内容1、已知函数在下列各点的值为试用4次牛顿插值多项式P4(x)及三次样条函数S(x)(自然边界条件)对数据进行插值。

用图给出{(x i,y i),x i=0.2+0.08i,i=0,1,11,10},P4(x)及S(x)。

2、在区间[-1,1]上分别取n=10,20用两组等距节点对龙格函数f(x)=1/(1+25x2)作多项式插值及三次样条插值,对每个n值,分别画出插值函数及f(x)的图形。

3、下列数据点的插值可以得到平方根函数的近似,在区间[0,64]上作图。

(1)用这9个点作8次多项式插值L8(x)(2)用三次样条(第一边界条件)程序求S(x)从得到结果看在[0,64]上,哪个插值更精确,在区间[0,1]上。

两种插值哪个更精确?三.实现方法1. 进入matlab开发环境2. 依据算法编写代码3. 调试程序4. 运行程序5. (1)牛顿插值多项式:P n=f(x0)+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+…+f[x0,x1,…,x n] (x-x0)(x-x n-1)三次样条插值:用三次样条插值函数由题目分析知,要求各点的M值:6.实验代码如下:(1)牛顿插值多项式程序:function varargout=newton(varargin)clear,clcx=[0.2 0.4 0.6 0.8 1.0]; fx=[0.98 0.92 0.81 0.64 0.38]; newtonchzh(x,fx);function newtonchzh(x,fx)n=length(x);FF=ones(n,n); FF(:,1)=fx';for i=2:nfor j=i:nFF(j,i)=(FF(j,i-1)-FF(j-1,i-1))/(x(j)-x(j-i+1));endendfor i=1:nfprintf('%4.2f',x(i)); for j=1:ifprintf('%10.5f',FF(i,j)); endfprintf('\n');end三次样条插值程序:function sanciyangtiao(n,s,t)x=[0.2 0.4 0.6 0.8 1.0];y=[0.98 0.92 0.81 0.64 0.38];n=5for j=1:1:n-1h(j)=x(j+1)-x(j);endfor j=2:1:n-1r(j)=h(j)/(h(j)+h(j-1));endfor j=1:1:n-1u(j)=1-r(j);endfor j=1:1:n-1f(j)=(y(j+1)-y(j))/h(j);endfor j=2:1:n-1d(j)=6*(f(j)-f(j-1))/(h(j-1)+h(j));endd(1)=0d(n)=0a=zeros(n,n);for j=1:1:na(j,j)=2;endr(1)=0;u(n)=0;for j=1:1:n-1a(j+1,j)=u(j+1);a(j,j+1)=r(j);endb=inv(a)m=b*d'p=zeros(n-1,4);for j=1:1:n-1p(j,1)=m(j)/(6*h(j));p(j,2)=m(j+1)/(6*h(j));p(j,3)=(y(j)-m(j)*(h(j)^2/6))/h(j);p(j,4)=(y(j+1)-m(j+1)*(h(j)^2/6))/h(j);endend图程序:x=[0.2 0.4 0.6 0.8 1.0];y=[0.98 0.92 0.81 0.64 0.38];plot(x,y)hold onfor i=1:1:5y(i)=0.98-0.3*(x(i)-0.2)-0.62500*(x(i)-0.2)*(x(i)-0.4)-0.20833*(x(i)-0.2)*(x(i)-0.4)*(x(i)-0.6)-0.52083*(x(i)-0.2)*(x(i)-0.4)*(x(i)-0.6)*(x(i)-0.8)endk=[0 1 10 11]x0=0.2+0.08*kfor i=1:1:4y0(i)=0.98-0.3*(x(i)-0.2)-0.62500*(x(i)-0.2)*(x(i)-0.4)-0.20833*(x(i)-0.2)*(x(i)-0.4)*(x(i)-0.6)-0.52083*(x(i)-0.2)*(x(i)-0.4)*(x(i)-0.6)*(x(i)-0.8)endplot( x0,y0,'o',x0,y0 )hold ony1=spline(x,y,x0)plot(x0,y1,'o')hold ons=csape(x,y,'variational')fnplt(s,'r')hold ongtext('Èý´ÎÑùÌõ×ÔÈ»±ß½ç')gtext('Ô-ͼÏñ')gtext('4´ÎÅ£¶Ù²åÖµ')(2)多项式插值程序:function [C,D]=longge(X,Y)n=length(X);D=zeros(n,n)D(:,1)=Y'for j=2:nfor k=j:nD(k,j)=(D(k,j-1)- D(k-1,j-1))/(X(k)-X(k-j+1));endendC=D(n,n);for k=(n-1):-1:1C=conv(C,poly(X(k)))m=length(C);C(m)= C(m)+D(k,k);endend三次样条插值程序:function S=longgesanci(X,Y,dx0,dxn)N=length(X)-1;H=diff(X);D=diff(Y)./H;A=H(2:N-1);B=2*(H(1:N-1)+H(2:N));C=H(2:N);U=6*diff(D);B(1)=B(1)-H(1)/2;U(1)=U(1)-3*(D(1));B(N-1)=B(N-1)-H(N)/2;U(N-1)=U(N-1)-3*(-D(N));for k=2:N-1temp=A(k-1)/B(k-1);B(k)=B(k)-temp*C(k-1);U(k)=U(k)-temp*U(k-1);endM(N)=U(N-1)/B(N-1);for k=N-2:-1:1M(k+1)=(U(k)-C(k)*M(k+2))/B(k);endM(1)=3*(D(1)-dx0)/H(1)-M(2)/2;M(N+1)=3*(dxn-D(N))/H(N)-M(N)/2;for k=0:N-1S(k+1,1)=(M(k+2)-M(k+1))/(6*H(k+1));S(k+1,2)=M(k+1)/2;S(k+1,3)=D(k+1)-H(k+1)*(2*M(k+1)+M(k+2))/6; S(k+1,4)=Y(k+1);endend(3)三次样条函数程序代码:function sanci3(n,s,t)y=[0 1 2 3 4 5 6 7 8];x=[0 1 4 9 16 25 36 49 64];n=9for j=1:1:n-1h(j)=x(j+1)-x(j);endfor j=2:1:n-1r(j)=h(j)/(h(j)+h(j-1));endfor j=1:1:n-1u(j)=1-r(j);endfor j=1:1:n-1f(j)=(y(j+1)-y(j))/h(j);endfor j=2:1:n-1d(j)=6*(f(j)-f(j-1))/(h(j-1)+h(j));endd(1)=0d(n)=0a=zeros(n,n);for j=1:1:na(j,j)=2;endr(1)=0;u(n)=0;for j=1:1:n-1a(j+1,j)=u(j+1);a(j,j+1)=r(j);endb=inv(a) m=b*d' t=ap=zeros(n-1,4);p(j,1)=m(j)/(6*h(j));p(j,2)=m(j+1)/(6*h(j));p(j,3)=(y(j)-m(j)*(h(j)^2/6))/h(j);p(j,4)=(y(j+1)-m(j+1)*(h(j)^2/6))/h(j); end拉格朗日插值程序:function y=lagrange(x0,y0,x)n=length(x0);m=length(x);for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;endend四.实验结果1.牛顿插值多项式结果:所以有四次插值牛顿多项式为: P4(x)=0.98-0.3(x-0.2)-0.62500(x-0.2)(x-0.4)-0.20833(x-0.2)(x-0.4)(x-0.6)-0.52083(x-0.2)(x-0.4)(x-0.6)(x-0.8)三次样条插值结果:得到m=(0 -1.6071 -1.0714 -3.1071 0),则可得:图形为:2.多项式插值,n=10时:n=20时:三次样条插值,n=10时:n=20时:3.三次样条插值程序结果:解得:M0=0;M1=-0.5209;M2=0.0558;M3=-0.0261;M4=0.0006;M5=-0.0029;M6=-0.0008;M7=--0.0009;M8=0;则三次样条函数:图形:[0,64]:在区间[0,64]上从图3-2中可以看出蓝色虚线条和绿色线条是几乎重合的,而红色线条在[30,70]之间有很大的起伏,所在在区间[0,64]三次样条插值更精确。

东北大学数值分析上机实验报告

东北大学数值分析上机实验报告

《数值分析》上机实验报告课题三解线性方程组的迭代法学生姓名:学生系别:学生班级:日期:上机实践报告【运行环境】软件:Windows、Microsoft Visual C++ 6.0PC一台【问题提出】对课题二所列目的和意义的线性方程组,试分别选用Jacobi 迭代法,Gauss-Seidol迭代法和SOR方法计算其解。

【实践要求】1、体会迭代法求解线性方程组,并能与消去法做比较;2、分别对不同精度要求,如ε=10-3,10-4,10-5 由迭代次数体会该迭代法的收敛快慢;3、对方程组2,3使用SOR方法时,选取松弛因子 =0.8,0.9,1,1.1,1.2等,试看对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者;4、给出各种算法的设计程序和计算结果。

【目的意义】1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较;2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序;3、体会上机计算时,终止步骤 < 或k >(予给的迭代次数),对迭代法敛散性的意义;4、体会初始解 x ,松弛因子的选取,对计算结果的影响。

【程序代码】//Jacobi.cpp#include<iostream>#include<cmath>using namespace std;#define N 15//最大迭代次数#define P 10//矩阵的阶数//#define P 8static double a[10][10]={4,2,-3,-1,2,1,0,0,0,0,8,6,-5,-3,6,5,0,1,0,0,4,2,-2,-1,3,2,-1,0,3,1,0,-2,1,5,-1,3,-1,1,9,4,-4,2,6,-1,6,7,-3,3,2,3,8,6,-8,5,7,17,2,6,-3,5,0,2,-1,3,-4,2,5,3,0,1,16,10,-11,-9,17,34,2,-1,2,2,4,6,2,-7,13,9,2,0,12,4,0,0,-1,8,-3,-24,-8,6,3,-1};static double b[10]={5,12,3,2,3,46,13,38,19,-21};static double x_jing[10]={1,-1,0,1,2,0,3,1,-1,2};//精确解static double x0[10]={0,0,0,0,0,0,0,0,0,0};static double x1[10];static int k,i,j;//static double a[8][8]={4,2,-4,0,2,4,0,0,// 2,2,-1,-2,1,3,2,0,// -4,-1,14,1,-8,-3,5,6,// 矩阵B 0,-2,1,6,-1,-4,-3,3,// 2,1,-8,-1,22,4,-10,-3,// 4,3,-3,-4,4,11,1,-4,// 0,2,5,-3,-10,1,14,2,// 0,0,6,3,-3,-4,2,19};//static double b[8]={0,-6,6,23,11,-22,-15,45};//static double x_jing[8]={1,-1,0,2,1,-1,0,2};//static double x0[8]={0,0,0,0,0,0,0,0};//static double x1[8];//static double a[10][10]={4,-1,0,0,0,0,0,0,0,0,// -1,4,-1,0,0,0,0,0,0,0,// 0,-1,4,-1,0,0,0,0,0,0,// 0,0,-1,4,-1,0,0,0,0,0,// 矩阵C 0,0,0,-1,4,-1,0,0,0,0,// 0,0,0,0,-1,4,-1,0,0,0,// 0,0,0,0,0,-1,4,-1,0,0,// 0,0,0,0,0,0,-1,4,-1,0,// 0,0,0,0,0,0,0,-1,4,-1,// 0,0,0,0,0,0,0,0,-1,4};//static double b[10]={7,5,-13,2,6,-12,14,-4,5,-5}; //static double x_jing[10]={2,1,-3,0,1,-2,3,0,1,-1}; //static double x0[10]={0,0,0,0,0,0,0,0,0,0};double Max(int y)//求算该次迭代的误差{double sum,max;for (i=0;i<P;i++){sum=0;for (j=0;j<P;j++)sum+=a[i][j]*x0[j];x1[i]=x0[i]+(b[i]-sum)/a[i][i];}max=fabs(x_jing[0]-x1[0]);for (i=1;i<P;i++){if (fabs(x_jing[i]-x1[i])>max)max=fabs(x_jing[i]-x1[i]);}cout<<"第"<<y<<"次迭代的误差为"<<max<<endl;return max;}void main(){double e[3]={10e-3,10e-4,10e-5};double max;int t;cout<<"请选择精确度:0、10e-3 1、10e-4 2、103-5 ";cin>>t;for (k=0;k<N;k++){max=Max(k);if (max<e[t])//判断精度是否符合要求,若符合则跳出程序,否则继续迭代{ k=k;break;}else{for (i=0;i<P;i++)x0[i]=x1[i];}}if (k<N)//输出结果{cout<<"迭代次数为"<<k<<endl;cout<<"方程组的解为"<<endl;for (i=0;i<P;i++)cout<<" "<<x1[i]<<endl;}else{cout<<"迭代次数超过"<<N<<"迭代终止!"<<endl;cout<<"方程组的解为"<<endl;for (i=0;i<P;i++)cout<<" "<<x1[i]<<endl;}}//Gauss-Seidol.cpp#include<iostream>#include<cmath>using namespace std;#define N 15//最大迭代次数//#define P 10//矩阵的阶数#define P 8//static double a[10][10]={4,2,-3,-1,2,1,0,0,0,0,// 8,6,-5,-3,6,5,0,1,0,0,// 4,2,-2,-1,3,2,-1,0,3,1,// 0,-2,1,5,-1,3,-1,1,9,4,// -4,2,6,-1,6,7,-3,3,2,3,// 8,6,-8,5,7,17,2,6,-3,5,// 0,2,-1,3,-4,2,5,3,0,1,// 16,10,-11,-9,17,34,2,-1,2,2,// 4,6,2,-7,13,9,2,0,12,4,// 0,0,-1,8,-3,-24,-8,6,3,-1};//static double b[10]={5,12,3,2,3,46,13,38,19,-21};//static double x_jing[10]={1,-1,0,1,2,0,3,1,-1,2};//精确解//static double x0[10]={0,0,0,0,0,0,0,0,0,0};//static double x1[10];static int k,i,j;static double a[8][8]={4,2,-4,0,2,4,0,0,2,2,-1,-2,1,3,2,0,-4,-1,14,1,-8,-3,5,6,0,-2,1,6,-1,-4,-3,3,2,1,-8,-1,22,4,-10,-3,4,3,-3,-4,4,11,1,-4,0,2,5,-3,-10,1,14,2,0,0,6,3,-3,-4,2,19};static double b[8]={0,-6,6,23,11,-22,-15,45};static double x_jing[8]={1,-1,0,2,1,-1,0,2};static double x0[8]={0,0,0,0,0,0,0,0};static double x1[8];//static double a[10][10]={4,-1,0,0,0,0,0,0,0,0,// -1,4,-1,0,0,0,0,0,0,0,// 0,-1,4,-1,0,0,0,0,0,0,// 0,0,-1,4,-1,0,0,0,0,0,// 矩阵C 0,0,0,-1,4,-1,0,0,0,0,// 0,0,0,0,-1,4,-1,0,0,0,// 0,0,0,0,0,-1,4,-1,0,0,// 0,0,0,0,0,0,-1,4,-1,0,// 0,0,0,0,0,0,0,-1,4,-1// 0,0,0,0,0,0,0,0,-1,4};//static double b[10]={7,5,-13,2,6,-12,14,-4,5,-5};//static double x_jing[10]={2,1,-3,0,1,-2,3,0,1,-1};//精确解//static double x0[10]={0,0,0,0,0,0,0,0,0,0};double Max(int y)//求算该次迭代的误差{double sum1,sum2,max;for (i=0;i<P;i++){sum1=0;sum2=0;for (j=0;j<=i-1;j++)sum1+=a[i][j]*x1[j];for (j=i+1;j<P;j++)sum2+=a[i][j]*x0[j];x1[i]=(b[i]-sum1-sum2)/a[i][i];}max=fabs(x_jing[0]-x1[0]);for (i=1;i<P;i++){if (fabs(x_jing[i]-x1[i])>max)max=fabs(x_jing[i]-x1[i]);}cout<<"第"<<y<<"次迭代的误差为"<<max<<endl;return max;}void main(){double e[3]={10e-3,10e-4,10e-5};double max;int t;cout<<"请选择精确度:0、10e-3 1、10e-4 2、103-5 ";cin>>t;for (k=0;k<N;k++){max=Max(k);if (max<e[t])//判断精度是否符合要求,若符合则跳出程序,否则继续迭代{ k=k;break;}else{for (i=0;i<P;i++)x0[i]=x1[i];}}if (k<N)//输出结果{cout<<"迭代次数为"<<k<<endl;cout<<"方程组的解为"<<endl;for (i=0;i<P;i++)cout<<" "<<x1[i]<<endl;}else{cout<<"迭代次数超过"<<N<<"迭代终止!"<<endl;cout<<"方程组的解为"<<endl;for (i=0;i<P;i++)cout<<" "<<x1[i]<<endl;}}//SOR.cpp#include<iostream>#include<cmath>using namespace std;#define N 15//最大迭代次数#define P 10//矩阵的阶数//#define P 8//static double a[10][10]={4,2,-3,-1,2,1,0,0,0,0,// 8,6,-5,-3,6,5,0,1,0,0,// 4,2,-2,-1,3,2,-1,0,3,1,// 矩阵A 0,-2,1,5,-1,3,-1,1,9,4,// -4,2,6,-1,6,7,-3,3,2,3,// 8,6,-8,5,7,17,2,6,-3,5,// 0,2,-1,3,-4,2,5,3,0,1,// 16,10,-11,-9,17,34,2,-1,2,2,// 4,6,2,-7,13,9,2,0,12,4,// 0,0,-1,8,-3,-24,-8,6,3,-1};//static double b[10]={5,12,3,2,3,46,13,38,19,-21};//static double x_jing[10]={1,-1,0,1,2,0,3,1,-1,2};//精确解//static double x0[10]={0,0,0,0,0,0,0,0,0,0};static double x1[P];static double sumx[P];static int k,i,j;//static double a[8][8]={4,2,-4,0,2,4,0,0,// 2,2,-1,-2,1,3,2,0,// -4,-1,14,1,-8,-3,5,6,// 矩阵B 0,-2,1,6,-1,-4,-3,3,// 2,1,-8,-1,22,4,-10,-3,// 4,3,-3,-4,4,11,1,-4,// 0,2,5,-3,-10,1,14,2,// 0,0,6,3,-3,-4,2,19};//static double b[8]={0,-6,6,23,11,-22,-15,45};//static double x_jing[8]={1,-1,0,2,1,-1,0,2};//static double x0[8]={0,0,0,0,0,0,0,0};//static double x1[8];static double a[10][10]={4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4};static double b[10]={7,5,-13,2,6,-12,14,-4,5,-5};static double x_jing[10]={2,1,-3,0,1,-2,3,0,1,-1};//精确解static double x0[10]={0,0,0,0,0,0,0,0,0,0};double Max(double w,double y){double sum1,sum2,max;for (i=0;i<P;i++){sum1=0;sum2=0;for (j=0;j<=i-1;j++)sum1+=a[i][j]*x1[j];for (j=i;j<P;j++)sum2+=a[i][j]*x0[j];sumx[i]=w*(b[i]-sum1-sum2)/a[i][i];x1[i]=x0[i]+sumx[i];}max=fabs(x_jing[0]-x1[0]);for (i=1;i<P;i++){if (fabs(x_jing[i]-x1[i])>max)max=fabs(x_jing[i]-x1[i]);}cout<<"第"<<y<<"次迭代的误差为"<<max<<endl;return max;}void main(){double e[3]={10e-3,10e-4,10e-5};double w[5]={0.8,0.9,1,1.1,1.2};double max;int t,l;cout<<"请选择精确度:0、10e-3 1、10e-4 2、103-5 ";cin>>t;cout<<"请选择松弛因子:0、0.8 1、0.9 2、1 3、1.1 4、1.2 ";cin>>l;for (k=0;k<N;k++){max=Max(w[l],k);if (max<e[t])//判断精度是否符合要求,若符合则跳出程序,否则继续迭代{ k=k;break;}else{for (i=0;i<P;i++)x0[i]=x1[i];}}if (k<N)//输出结果{cout<<"迭代次数为"<<k<<endl;cout<<"方程组的解为"<<endl;for (i=0;i<P;i++)cout<<" "<<x1[i]<<endl;}else{cout<<"迭代次数超过"<<N<<"迭代终止!"<<endl;cout<<"方程组的解为"<<endl;for (i=0;i<P;i++)cout<<" "<<x1[i]<<endl;}}【运行结果】方程A :⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡1-421534100368-24-3-81-012029137-2621-234179-11-1003524-31-23-6217758-6233-761-62911-31-512-301-231-2-2010563-5-6000121-3-2416084-0484⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡10987654321x x x x x x x x x x =⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡-2119381346323125Jacobi 迭代Gauss-Seidol迭代SOR迭代方程B Jacobi迭代Gauss-Seidol迭代SOR迭代方程C ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡----=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡554141262135741-000000001-000000041-0000001-41-0000001-41-0000001-41-0000001-41-0000001-41-0000001-41-0000001-400000001-000000001-410987654321x x x x x x x x x xJacobi 迭代Gauss-Seidol迭代(选取了不同的精度)SOR迭代(选取了不同的松弛因子)【结果分析】1、通过实验结果看出(方程C的Gauss-Seidol迭代),取的精度不同,迭代的次数也不同。

数值分析上机报告资料

数值分析上机报告资料

数值分析上机报告姓名:学号:专业:联系电话:本次数值分析上机实习采用Matlab数学软件。

Matlab是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。

在数值分析应用中可以直接调用Matlab软件中已有的函数,同时用户也可以将自己编写的实用导入到Matlab函数库中方便自己调用。

基于Matlab数学软件的各种实用性功能与优点,本次数值分析实习决定采用其作为分析计算工具。

1.语言简洁,编程效率高因为MATLAB定义了专门用于矩阵运算的运算符,使得矩阵运算就像列出算式执行标量运算一样简单,而且这些运算符本身就能执行向量和标量的多种运算。

利用这些运算符可使一般高级语言中的循环结构变成一个简单的MATLAB语句,再结合MATLAB丰富的库函数可使变得相当简短,几条语句即可代替数十行C语言或Fortran语言语句的功能。

2. 交互性好,使用方便在MATLAB的命令窗口中,输入一条命令,立即就能看到该命令的执行结果,体现了良好的交互性。

交互方式减少了编程和调试的工作量,给使用者带来了极大的方便。

因为不用像使用C语言和Fortran语言那样,首先编写源,然后对其进行编译、连接,待形成可执行文件后,方可运行得出结果。

3. 强大的绘图能力,便于数据可视化MATLAB不仅能绘制多种不同坐标系中的二维曲线,还能绘制三维曲面,体现了强大的绘图能力。

正是这种能力为数据的图形化表示(即数据可视化)提供了有力工具,使数据的展示更加形象生动,有利于揭示数据间的内在关系在新版本中也加入了对C、FORTRAN、c++、JA V A的支持,使用时可以直接调用,也可将编写的实用程序导入到matlab函数库中方便以后使用时调用。

本次编程所用的软件为MATLAB,通过这次作业,对它有了初步的认识,以及对数值分析的体会更为深刻,希望为以后的学习和工作奠定一定的基。

目录1 必做题一插值法 (4)1.1题目 (4)1.2 分析过程 (4)1.3 计算结果 (5)1.4 结果分析 (6)2 必做题二雅格比法迭代与高斯-赛德尔迭代 (6)2.1题目 (6)2.2分析过程 (6)2.3计算结果 (7)2.4 结果分析 (8)3 选做题一 (8)3.1题目三次样条插值 (8)3.2分析过程 (8)3.3计算结果 (9)3.4 结果分析 (9)附录 (10)附录一:必做题一插值法代码 (11)附录二:必做题二雅格比法迭代与高斯-赛德尔迭代代码 (12)附录三:选做题一三次样条插值代码 (14)1 必做题一 插值法1.1题目某过程涉及两变量x 和y, 拟分别用插值多项式和多项式拟合给出其对应规律的近似多项式,已知xi 与yi 之间的对应数据如下,xi=1,2,…,10yi = 34.6588 40.3719 14.6448 -14.2721 -13.3570 24.8234 75.2795 103.5743 97.4847 78.2392(1)请用次数分别为3,4,5,6的多项式拟合并给出最好近似结果f(x)。

《数值分析》上机实验报告

《数值分析》上机实验报告

数值分析上机实验报告x k x k - f(X k) f (X k)《数值分析》上机实验报告1. 用Newt on法求方程X7-X4+14=0在(0.1,1.9)中的近似根(初始近似值取为区间端点,迭代6次或误差小于0.00001 )。

1.1理论依据:设函数在有限区间[a,b]上二阶导数存在,且满足条件1. f(x)f(b) 02. f(x)在区间[a, b]上不变号3f(x) = 0;4」f (c)〔f .(x) |,其中c是a,b中使mir(| f .(a), f .(b) |)达到的一个b -a则对任意初始近似值x0• [a,b],由Newton迭代过程込f(x k )X“ M(Xk) = Xk — T^,k = 0,1,2,3…f'(X k)所生的迭代序列 % [平方收敛于方程f(x)=0在区间[a,b]上的惟一解: 令7 4f(x)=x -28x 14, f (0.1) 0, f(1.9) ::0f (x) =7x6-112x3=7x3(x3-16) ::: 0f (x) =42x5-336x2=42x2(x3-8) :: 0f (1.9) f (1.9) 0故以1.9为起点x0 =1.9如此一次一次的迭代,逼近X的真实根。

当前后两个的差<=出寸,就认为求出了近似的根。

本程序用Newton法求代数方程(最高次数不大于10)在(a,b )区间的根//限制循环次数1.2 C 语言程序原代码:#i nclude<stdio.h> #in clude<math.h> mai n() {double x2,f,f1; double x1=1.9; // 取初值为 1.9do {x2=x1;f=pow(x2,7)-28*pow(x2,4)+14; f1=7*pow(x2,6)-4*28*pow(x2,3); x 仁 x2-f/f1;}while(fabs(x1-x2)>=0.00001||x1<0.1); printf("计算结果:x=%f\n",x1);}1.3运行结果:* D:\VC + +\EXERCIS E\Debu g\l1.4 MATLAB上机程序fun cti on y=Newt on( f,df,x0,eps,M)d=0;for k=1:Mif feval(df,x0)==0d=2; breakelsex1=x0-feval(f,x0)/feval(df,x0);ende=abs(x1-x0);x0=x1;if e<=eps&&abs(feval(f,x1))v=epsd=1; breakendendif d==1y=x1;elseif d==0y='迭代M次失败';elsey=奇异’endfun cti on y=df(x)y=7*x A6-28*4*x A3;Endfunction y=f(x) y=x A7-28*x A4+14;End>> x0=1.9;>> eps=0.00001;>> M=100;>> x=Newto n('f,'df,x0,eps,M);>> vpa(x,7)1.5问题讨论:1•使用此方法求方解,用误差来控制循环迭代次数,可以在误差允许的范围内得到比较理想的计算结果。

昆明理工大学数值分析上机报告6

昆明理工大学数值分析上机报告6

昆 明 理 工 大 学 理06工科硕士 《数值分析》上机实验报告专业: 材料学 姓名: 学号: 2006202044 任课教师: 作业完成实验室: 个人PC实验内容:1.题目/要求:三次样条插值法一、问题提出二、要求1、满足自然边界条件()()00.12.0=''=''S S ;2、满足第一类边界条件'(0.2)0.20271S =,'(1.0) 1.55741S =。

3、打印输出用追赶法解出的弯矩向量014(,,...,)M M M 和(0.20.1)(0,1,...,8)S i i +=的值。

﹡并画出()y S x =的图形﹡。

2.作业环境(包括选用的程序语言、运行环境)程序语言 Turbo.C 2.0 运行环境 WINDOWS XP 3.数学(理论背景)描述某些实际问题,如船体放样与机翼设计,要求插值曲线不仅连续而且处处平滑。

甚至要求尽可能采用流线型,使气流沿机翼的表面能形成平滑的流线,以减少空气的阻力。

换句话说,所谓光滑插值就是既要分段低次又要保证接头光滑。

为适应这类需求,借助曲线板来作图,以保证曲线在接头处的光滑。

在工程技术如船体放样中,作图员常用“样条”在指定节点间做光滑曲线。

光滑插值就是这类作图方法的数学模拟。

因此,这类插值称作样条(Spline )插值。

样条插值实际上是一种改进的分段插值,它要求插值函数在各分段的衔接处能保持一定程度的光滑性。

既要保持插值函数的导数的连续性。

在实际应用中,最常用的是三次样条插值,其定义如下:若函数()[]b a C x S ,2∈,且在每个小区间[]1,+j j x x 上是三次多项式,其中b x x x a n =<<<= 10是给定节点,则称()x S 是节点n x x x ,,,10 上的三次样条函数。

若在节点j x 上给定函数值()()n j x f y j j ,,1,0 ==,并成立()()n j y x S j j ,,1,0 ==,则称()x S 为三次样条插值函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

指导教师:姓名:学号:专业:联系电话:上海交通大学目录序言 (3)实验课题(一) 雅可比迭代法和高斯-塞得尔迭代法的收敛性和收敛速度 (4)数值分析 (6)实验课题(二) 松弛因子对SOR法收敛速度的影响 (6)数值分析 (12)总结 (13)附录(程序清单) (14)1.雅可比迭代法和高斯-塞得尔迭代法的收敛性和收敛速度 (14)雅可比迭代法: (14)高斯-塞得尔迭代法: (16)2.松弛因子对SOR法收敛速度的影响 (18)松弛法(SOR) (18)序言随着科学技术的发展,提出了大量复杂的数值计算问题,在实际解决这些计算问题的长期过程中,形成了计算方法这门学科,专门研究各种数学问题的数值解法(近似解法),包括方法的构造和求解过程的误差分析,是一门内容丰富,有自身理论体系的实用性很强的学科。

解决工程问题,往往需要处理很多数学模型,这就要花费大量的人力和时间,但是还有不少数学模型无法用解析法得到解。

使用数值方法并利用计算机,就可以克服这些困难。

事实上,科学计算已经与理论分析、科学实验成为平行的研究和解决科技问题的科学手段,经常被科技工作者所采用。

作为科学计算的核心内容——数值分析(数值计算方法),已逐渐成为广大科技工作者必备的基本知识并越来越被人重视。

由于数值方法是解数值问题的系列计算公式,所以数值方法是否有效,不但与方法本身的好坏有关,而且与数值问题本身的好坏也有关,因此,研究数值方法时,不但需要研究数值方法的好坏,即数值稳定性问题,而且还需要研究数值问题本身的好坏,即数值问题的性态,以及它们的判别问题。

数值计算的绝大部分方法都具有近似性,而其理论又具有严密的科学性,方法的近似值正是建立在理论的严密性基础上,根据计算方法的这一特点。

因此不仅要求掌握和使用算法,还要重视必要的误差分析,以保证计算结果的可靠性。

数值计算还具有应用性强的特点,计算方法的绝大部分方法如求微分方程近似解,求积分近似值,求解超越方程,解线性方程组等都具有较强的实用性,而插值法,最小二乘法,样条函数等也都是工程技术领域中常用的,有实际应用价值的方法。

应用数值计算方法解决科学研究和工程中的实际问题,首先要建立描述具体问题的适当数学模型;其次,要选择一定的计算方法并制定相应的计算方案;并编制、设计合理的计算机程序;最后由计算机计算出数值结果。

其中,计算方案的设计和计算方法的选择是上述求解过程中极为重要的环节,是程序设计和分析数值计算结果准确性的基础。

本实验所使用的是Visual C++ 6.0程序设计语言。

C++是在C语言的基础上拓展而来的。

C++引入了面向对象的机制,同时又充分保留了C语言的简洁性和高效性,并且与C语言完全兼容,具有C语言高效灵活、功能强大、可移植性好等诸多优点,是面向对象程序设计的最佳语言之一。

实验课题(一) 雅可比迭代法和高斯-塞得尔迭代法的收敛性和收敛速度用雅格比法与高斯-赛德尔迭代法解下列方程组Ax=b,研究其收敛性,上机验证理论分析是否正确,比较它们的收敛速度,观察右端项对迭代收敛有无影响。

(1)A行分别为A1=[6,2,-1],A2=[1,4,-2],A3=[-3,1,4];b1=[-3,2,4]T,b2=[100,-200,345]T,(2) A行分别为A1=[1,0.8,0.8],A2=[0.8,1,0.8],A3=[0.8,0.8,1];b1=[3,2,1]T,b2=[5,0,-10]T,(3)A行分别为A1=[1,3],A2=[-7,1];b=[4,6]T,解:计算结果b时:(1)1雅可比迭代法:方程组的解为:x1=-0.727271x2=0.808083x3=0.252524迭代次数为20次此迭代收敛高斯-塞得尔迭代法:方程组的解为:x1=-0.727275x2=0.808082x3=0.252523迭代次数为12次此迭代收敛b时:2雅可比迭代法:方程组的解为:x1=36.3636x2=-2.0707x3=114.04迭代次数为26次此迭代收敛高斯-塞得尔迭代法:方程组的解为:x1=36.3636x2=-2.07071x3=114.04迭代次数为17次此迭代收敛b时:(2)1雅可比迭代法:方程组的解为:x1=-5.12924e+040x2=-5.12924e+040x3=-5.12924e+040迭代次数为200次此迭代不收敛高斯-塞得尔迭代法:方程组的解为:x1=5.76922x2=0.76922x3=-4.23075迭代次数为37次此迭代收敛b时:2雅可比迭代法:方程组的解为:x1=4.27437e+040x2=4.27437e+040x3=4.27437e+040迭代次数为200次此迭代不收敛高斯-塞得尔迭代法:方程组的解为:x1=32.6923x2=7.69229x3=-42.3077迭代次数为44次此迭代收敛(3)雅可比迭代法:方程组的解为:x1=1.0608e+132x2=-2.57624e+132迭代次数为200次此迭代不收敛高斯-塞得尔迭代法:方程组的解为:x1=-6.13504e+263x2=-4.29453e+264 迭代次数为200次 此迭代不收敛数值分析:程序运行的结果表明,和雅可比迭代法相比,高斯-赛德尔迭代法收敛速度更快,收敛性更好。

这时因为雅可比迭代法是用第K 次迭代得出的结果来运算第1+K 次迭代;而高斯-赛德尔迭代法是用已有的结果来运行下一次迭代,显然要比雅可比迭代法收敛速度更快。

还可以看出右端项对迭代收敛有影响,右端项元素的绝对值越大,收敛速度越慢,但是雅可比迭代法的收敛性不能保证高斯-塞得尔迭代法的收敛性。

实验课题(二) 松弛因子对SOR 法收敛速度的影响用SOR 法求解方程组Ax =b ,其中⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----3-2-.2-2-3-B 4114114114,...... 要求程序中不存系数矩阵A ,分别对不同的阶数取w=1.1, 1.2, ...,1.9进行迭代,记录近似解x (k)达到||x (k)-x (k-1)||<10-6时所用的迭代次数k ,观察松弛因子对收敛速度的影响,并观察当w ≤0或w ≥2会有什么影响? 解:计算结果当加速因子为:1.1 阶数10方程组的解为:x1=1.000000054 x2=1.000000314 x3=0.9999998714 x4=1.000000007 x5=0.9999999898 x6=0.9999999957 x7=0.9999999995 x8=0.9999999996 x9=0.9999999998 x10=1 迭代次数为72次 当加速因子为:1.1 阶数100方程组的解为:x1=1.000000021 x2=1.00000031 x3=1.000000044 x4=0.9999999973 x5=1.000000001 x6=1.000000002 x7=1.000000001 x8=1 x9=1 x10=1x11=1 x12=1 x13=1 x14=1 x15=1 x16=1 x17=1 x18=1 x19=1 x20=1 x21=1 x22=1 x23=1 x24=1 x25=1 x26=1 x27=1 x28=1 x29=1 x30=1 x31=1 x32=1 x33=1 x34=1 x35=1 x36=1 x37=1 x38=1 x39=1 x40=1 x41=1 x42=1 x43=1 x44=1 x45=1 x46=1 x47=1 x48=1 x49=1 x50=1 x51=1 x52=1 x53=1 x54=1 x55=1 x56=1 x57=1 x58=1 x59=1 x60=1 x61=1 x62=1 x63=1 x64=1 x65=1 x66=1 x67=1 x68=1 x69=1 x70=1 x71=1 x72=1 x73=1 x74=1 x75=1 x76=1 x77=1 x78=1 x79=1 x80=1 x81=1 x82=1 x83=1 x84=1 x85=1 x86=1 x87=1 x88=1 x89=1 x90=1 x91=1 x92=1 x93=1 x94=1 x95=1 x96=1 x97=1 x98=1 x99=1 x100=1 迭代次数为117次 当加速因子为:1.2阶数10方程组的解为:x1=1.000000253 x2=1.000000856 x3=1.000000067 x4=1 x5=1.000000057 x6=1.000000025 x7=1.000000003 x8=1.000000003 x9=0.9999999986 x10=1.000000001迭代次数为101次当加速因子为:1.2阶数100方程组的解为:x1=1 x2=1 x3=1 x4=1x5=1 x6=1.96309e+012 x7=-6.67265e+013 x8=1.10211e+015 x9=-1.17797e+016 x10=9.15377e+016 x11=-5.50821e+017 x12=2.66922e+018 x13=-1.06945e+019 x14=3.60907e+019 x15=-1.0397e+020 x16=2.58173e+020 x17=-5.56428e+020 x18=1.04565e+021 x19=-1.71763e+021 x20=2.46738e+021 x21=-3.09406e+021 x22=3.37159e+021 x23=-3.16617e+021 x24=2.52585e+021 x25=-1.66928e+021 x26=8.70018e+020 x27=-3.16282e+020 x28=4.28076e+019 x29=3.35041e+019 x30=-2.47667e+019 x31=4.92451e+018 x32=2.61277e+018 x33=-1.8035e+018 x34=5.53864e+016 x35=3.18307e+017 x36=-7.84707e+016 x37=-4.48812e+016 x38=2.08621e+016 x39=6.02677e+015 x40=-4.32756e+015 x41=-9.05275e+014 x42=8.20085e+014 x43=1.71915e+014 x44=-1.4677e+014 x45=-3.96858e+013 x46= 2.4197e+013 x47=9.69684e+012 x48=-3.3509e+012 x49=-2.25323e+012 x50=2.73109e+011 x51=4.64463e+011 x52=3.6976e+010x53=-7.84681e+010 x54=-2.40931e+010 x55= 8.8772e+009 x56=6.66353e+009 x57=1.03353e+008 x58=-1.20336e+009 x59=-3.64718e+008 x60=1.13069e+008 x61=1.02405e+008 x62=1.20907e+007 x63=-1.48447e+007 x64=-7.30784e+006 x65=154636 x66=1.39775e+006 x67=489937 x68=-70020.5x69=-116771 x70=-33474.4 x71=7763.35 x72=9286.62x73=2480.13 x74=-626.075 x75=-718.354 x76=-201.634x77=40.1718 x78=54.9869 x79=18.6465 x80=-0.460157x81=-2.81 x82=-0.539144 x83=0.936298 x84=1.23816x85=1.1263 x86=1.02052 x87=0.988477 x88=0.99085x89=0.997404 x90=1.00023 x91=1.00053 x92=1.00023x93=1.00003 x94=0.99998 x95=0.999986 x96=0.999996x97=1 x98=1 x99=1 x100=1迭代次数为95次当加速因子为:1.3阶数10方程组的解为:x1=0.9999997193 x2=0.9999995126 x3=1.000000074 x4=0.9999995126x5=0.999999827 x6=1.000000036 x7=0.9999999761 x8=0.9999999584x9=1.000000014 x10=0.9999999892迭代次数为133次当加速因子为:1.3阶数100方程组的解为:x1= 1.00000006 x2= 1.00000059 x3= 1.00000012 x4=0.999999931x5=0.999999989 x6= 1.00000001 x7=0.999999984 x8=0.999999983x9=0.999999996 x10=1 x11=0.999999999 x12=0.999999999x13=1 x14=1 x15=1 x16=1 x17=1 x18=1 x19=1 x20=1x21=1 x22=1 x23=1 x24=1 x25=1 x26=1 x27=1 x28=1 x29=1 x30=1 x31=1 x32=1 x33=1 x34=1 x35=1 x36=1 x37=1 x38=1 x39=1 x40=1 x41=1 x42=1 x43=1 x44=1 x45=1 x46=1 x47=1 x48=1 x49=1 x50=1 x51=1 x52=1 x53=1 x54=1 x55=1 x56=1 x57=1 x58=1 x59=1 x60=1 x61=1 x62=1 x63=1 x64=1 x65=1 x66=1 x67=1 x68=1 x69=1 x70=1 x71=1 x72=1 x73=1 x74=1 x75=1 x76=1 x77=1 x78=1 x79=1 x80=1 x81=1 x82=1 x83=1 x84=1 x85=1 x86=1 x87=1 x88=1 x89=1 x90=1 x91=1 x92=1 x93=1 x94=1 x95=1 x96=1 x97=1 x98=1 x99=1 x100=1 迭代次数为178次当加速因子为:1.4阶数10方程组的解为:x1= 1.00000323 x2= 1.00001382 x3= 1.00001102 x4=0.999997945 x5= 1.00001324 x6=0.999996457 x7= 1.00000436 x8= 1.00000219 x9= 1.00000032 x10=0.999999973迭代次数为170次当加速因子为:1.4阶数100方程组的解为:x1=0.999999836 x2=0.999999524 x3=0.999999643 x4=0.999999991x5= 1.00000009 x6= 1.00000002 x7=1 x8= 1.00000002x9= 1.00000002 x10=1 x11=0.999999994 x12=0.999999996x13=0.999999999 x14=0.999999999 x15=0.999999999 x16=1x17=1 x18=1 x19=1 x20=1x21=1 x22=1 x23=1 x24=1 x25=1 x26=1 x27=1 x28=1 x29=1 x30=1 x31=1 x32=1 x33=1 x34=1 x35=1 x36=1 x37=1 x38=1 x39=1 x40=1 x41=1 x42=1 x43=1 x44=1 x45=1 x46=1 x47=1 x48=1 x49=1 x50=1 x51=1 x52=1 x53=1 x54=1 x55=1 x56=1 x57=1 x58=1 x59=1 x60=1 x61=1 x62=1 x63=1 x64=1 x65=1 x66=1 x67=1 x68=1 x69=1 x70=1 x71=1 x72=1 x73=1 x74=1 x75=1 x76=1 x77=1 x78=1 x79=1 x80=1 x81=1 x82=1 x83=1 x84=1 x85=1 x86=1 x87=1 x88=1 x89=1 x90=1 x91=1 x92=1 x93=1 x94=1 x95=1 x96=1 x97=1 x98=1 x99=1 x100=1 迭代次数为218次当加速因子为:1.5阶数10方程组的解为:x1=0.999999985 x2=0.999999695 x3= 0.99999989 x4=0.999999847 x5=0.999999951 x6=0.999999945 x7=0.999999967 x8=0.999999974 x9=1 x10=0.999999996迭代次数为231次当加速因子为:1.5阶数100方程组的解为:x1=0.999999566 x2=0.999998608 x3=0.999998914 x4= 1.00000013 x5= 1.00000064 x6= 1.00000034 x7= 1.00000002 x8=0.999999988 x9= 1.00000003 x10=0.999999987 x11=0.999999931 x12=0.999999944 x13=0.999999994 x14= 1.00000002 x15= 1.00000001 x16=1x17=1 x18=1 x19=1 x20=0.999999998 x21=0.999999997 x22=0.999999999 x23=1 x24=1x25=1 x26=1 x27=1 x28=1 x29=1 x30=1 x31=1 x32=1 x33=1 x34=1 x35=1 x36=1 x37=1 x38=1 x39=1 x40=1 x41=1 x42=1 x43=1 x44=1 x45=1 x46=1 x47=1 x48=1 x49=1 x50=1 x51=1 x52=1 x53=1 x54=1 x55=1 x56=1 x57=1 x58=1 x59=1 x60=1 x61=1 x62=1 x63=1 x64=1 x65=1 x66=1 x67=1 x68=1 x69=1 x70=1 x71=1 x72=1 x73=1 x74=1 x75=1 x76=1 x77=1 x78=1 x79=1 x80=1 x81=1 x82=1 x83=1 x84=1 x85=1 x86=1 x87=1 x88=1 x89=1 x90=1 x91=1 x92=1 x93=1 x94=1 x95=1 x96=1 x97=1 x98=1 x99=1 x100=1迭代次数为270次当加速因子为:1.6阶数10方程组的解为:x1=1.00000013 x2=0.9999996 x3=0.999999814 x4=0.999999956 x5=0.999999764 x6=1.00000001 x7=0.999999887 x8=0.999999973 x9=0.999999933 x10= 1.00000001迭代次数为311次当加速因子为:1.6阶数100方程组的解为:x1= 1.00000015 x2=0.999999473 x3=0.999999923 x4=0.999999452x5=0.999999889 x6= 0.99999968 x7=0.999999828 x8=0.999999922x9=0.999999849 x10=0.999999962 x11=0.999999924 x12=0.999999949 x13= 0.99999998 x14=0.999999958 x15=0.999999984 x16=0.999999986 x17=0.999999985 x18=0.999999998 x19=0.999999993 x20=0.999999995 x21=0.999999999 x22=0.999999996 x23=0.999999999 x24=0.999999999 x25=0.999999999 x26=1 x27=1 x28=1 x29=1 x30=1 x31=1 x32=1 x33=1 x34=1 x35=1 x36=1 x37=1 x38=1 x39=1 x40=1 x41=1 x42=1 x43=1 x44=1 x45=1 x46=1 x47=1 x48=1 x49=1 x50=1 x51=1 x52=1 x53=1 x54=1 x55=1 x56=1 x57=1 x58=1 x59=1 x60=1 x61=1 x62=1 x63=1 x64=1 x65=1 x66=1 x67=1 x68=1 x69=1 x70=1 x71=1 x72=1 x73=1 x74=1 x75=1 x76=1 x77=1 x78=1 x79=1 x80=1 x81=1 x82=1 x83=1 x84=1 x85=1 x86=1 x87=1 x88=1 x89=1 x90=1 x91=1 x92=1 x93=1 x94=1 x95=1 x96=1 x97=1 x98=1 x99=1 x100=1迭代次数为354次当加速因子为:1.7阶数10方程组的解为:x1=1 x2= 1.00000139 x3=0.999999586 x4= 1.00000099x5=1.00000022 x6= 1.00000056 x7= 1.00000002 x8= 1.00000031x9= 1.00000006 x10= 1.0000001迭代次数为441次当加速因子为:1.7阶数100方程组的解为:x1= 1.00000006 x2= 1.00000077 x3= 1.00000014 x4=0.999999879 x5= 1.00000007 x6=0.999999843 x7=0.999999628 x8=0.999999883 x9= 1.00000005 x10=0.999999941 x11=0.999999951 x12=1.00000007 x13= 1.00000005 x14= 1.00000001 x15= 1.00000005 x16=1.00000005 x17=1 x18=0.999999986 x19=1 x20=0.999999991 x21= 0.99999997 x22=0.999999983 x23=1 x24=0.999999998 x25=0.999999999 x26= 1.00000001 x27= 1.00000001 x28=1x29=1 x30=1 x31=1 x32=0.999999999 x33=0.999999999 x34=1 x35=0.999999999 x36=0.999999998 x37=0.999999999 x38=1 x39=1 x40=1x41=1 x42=1 x43=1 x44=0.999999999 x45=1 x46=0.999999999 x47=1 x48=0.999999999 x49=1 x50=0.999999999 x51=1 x52=1x53=1 x54=1 x55=1 x56=1 x57=1 x58=1 x59=1 x60=1x61=1 x62=1 x63=1 x64=1 x65=1 x66=1 x67=1 x68=1 x69=1 x70=1x71=1 x72=1 x73=1 x74=1 x75=1 x76=1 x77=1 x78=1 x79=1 x80=1x81=1 x82=1 x83=1 x84=1 x85=1 x86=1 x87=1 x88=1 x89=1 x90=1x91=1 x92=1 x93=1 x94=1 x95=1 x96=1 x97=1 x98=1 x99=1 x100=1迭代次数为482次当加速因子为:1.8阶数10方程组的解为:x1=4.35735725e+013 x2=3.2400734e+013 x3=4.0132189e+013 x4=1.09454667e+013 x5=4.94478e+013 x6=2.63808027e+013 x7=4.17763996e+013 x8=2.00831054e+013 x9=3.05324259e+013 x10=2.20962274e+013迭代次数为500次当加速因子为:1.8阶数100方程组的解为:x1=5.96013446e+016 x2=-8.35017153e+016 x3=-1.26868909e+017 x4=-4.93877921e+015 x5=1.8045084e+015 x6=-6.89903944e+016 x7=-2.23492518e+016 x8=4.59908708e+016x9=2.62247449e+016 x10=1.96133857e+016 x11=5.30890667e+016 x12=3.17846147e+016 x13=-1.9430906e+016 x14=-1.7620796e+016 x15=6.4211826e+013 x16=-1.78901526e+016 x17=-2.83175036e+016 x18=-6.13087939e+015 x19=6.21043604e+015x20=-2.4022951e+015 x21=3.70088308e+014 x22=1.09572238e+016x23=8.39301526e+015 x24=5.75864622e+014 x25=6.21908636e+015x26=6.93985006e+015 x27=7.41331427e+014 x28=-9.19644718e+015x29=-1.45210279e+015 x30=-6.09056721e+015 x31=2.05950415e+014x32=-9.06634008e+015 x33=8.53822647e+015 x34=-6.37955468e+015x35=1.06669907e+016 x36=-9.55649478e+015 x37=1.45647075e+016x38=-1.1096871e+016 x39=1.17813996e+016 x40=-1.14971412e+016x41=1.08729542e+016 x42=-8.85234927e+015 x43=4.88222785e+015x44=-4.9119435e+015 x45=1.24633892e+015 x46=-5.0110037e+014x47=-1.82447346e+015 x48=2.42928398e+015 x49=-1.34733888e+015x50=2.00071929e+015 x51=-5.56685957e+014 x52=4.10258958e+014x53=8.84107088e+014 x54=-9.78606461e+014 x55=6.10242549e+014x56=-6.16582962e+014 x57=6.23030267e+013 x58=5.20096325e+013x59=-6.25736541e+014 x60=3.1825828e+014 x61=-2.62454351e+014x62=-5.27188787e+013 x63=1.77330757e+014 x64=-1.1270538e+014x65=3.22367283e+014 x66=3.59070824e+013 x67=-3.14144029e+013x68=1.72491149e+014 x69=-9.06578362e+013 x70=-1.79417497e+012x71=-1.98622765e+013 x72=-1.11437257e+014 x73=4.37247149e+013x74=-4.29880445e+013 x75=-5.58309694e+013 x76=3.9420982e+013x77=-2.65531756e+013 x78=3.67221103e+012 x79=2.70735247e+013x80=-1.17291315e+013 x81=3.80040401e+013 x82=2.63742845e+013x83=-1.07944903e+013 x84=1.70721216e+013 x85=3.88570916e+011x86=-1.53534784e+013 x87=-1.43291747e+011 x88=-1.41652426e+013x89=-1.0175359e+013 x90=4.99970689e+012 x91=-7.30740135e+012x92=-3.95541793e+012 x93=6.2256858e+012 x94=-1.14575502e+012x95=9.38156674e+011 x96=4.82712064e+012 x97=5.65878449e+010x98=3.38495883e+012 x99=4.78738773e+012 x100=-1.04086008e+012迭代次数为500次当加速因子为:1.9阶数10方程组的解为:x1=2.70017718e+039 x2=7.19476503e+038 x3=1.52596563e+039 x4=1.22447873e+039 x5=1.40095031e+039 x6=1.9709555e+038 x7=8.73571764e+038 x8=-5.92365593e+037 x9=4.66598312e+038 x10=-3.62620507e+038迭代次数为500次当加速因子为:1.9阶数100方程组的解为:x1=-1.04549429e+040 x2=-8.56043958e+039 x3=7.96505176e+039x4=5.82091058e+039 x5=-2.99287477e+039 x6=6.60916236e+039x7=1.36423837e+040 x8=3.30740687e+039 x9=-2.30612452e+039x10=7.84811961e+038 x11=-4.54814141e+039 x12=-1.0723743e+040x13=-4.39616983e+039 x14=1.26739322e+039 x15=-2.47020842e+039x16=-2.00386712e+039 x17=5.10487339e+039 x18=5.5042226e+039x19=6.79500237e+038 x20=1.48377189e+039 x21=4.0453535e+039x22=8.20986563e+038 x23=-2.07463418e+039 x24=-8.17592493e+038 x25=-1.02832106e+039 x26=-5.05095908e+039 x27=-3.76143397e+039 x28=-5.78161658e+038 x29=2.28059054e+039 x30=-1.30112057e+039 x31=3.60758082e+039 x32=4.83734107e+038 x33=5.80651509e+039 x34=-5.14698399e+039 x35=7.21987617e+039 x36=-7.7589538e+039 x37=9.21648774e+039 x38=-1.39468098e+040 x39=1.34099843e+040 x40=-1.597652e+040 x41=1.47913682e+040 x42=-1.81928495e+040 x43=1.64491682e+040 x44=-1.37798822e+040 x45=1.31420471e+040 x46=-8.55388939e+039 x47=7.90715314e+039 x48=-2.34584742e+039 x49=4.8329525e+038 x50=7.61429626e+038 x51=-1.88398901e+039 x52=1.00270662e+039 x53=-1.5655268e+039 x54=-1.35057328e+039 x55=1.79350175e+039 x56=-2.66495479e+039 x57=1.92986676e+039 x58=-1.65434758e+039 x59=1.02712315e+039 x60=9.53954036e+038 x61=-6.67820232e+038 x62=1.60800593e+039 x63=4.03591242e+037 x64=-2.80270905e+037 x65=4.69477046e+038 x66=-1.29619801e+039 x67=4.76435516e+038 x68=-5.21679755e+038 x69=-8.11958776e+038 x70=3.96884803e+038 x71=-4.67071486e+038 x72=1.55120537e+038 x73=2.65829277e+038 x74=-4.00630412e+038 x75=6.15250087e+038 x76=2.01575053e+038 x77=-1.04173933e+038 x78=5.47541164e+038 x79=-1.9681141e+037 x80=4.05988189e+037 x81=1.19962121e+038 x82=-4.71159154e+038 x83=-8.36605653e+037 x84=-3.33749477e+037 x85=-3.98843082e+038 x86=1.10733515e+037 x87=2.64832073e+037 x88=-9.11466682e+037 x89=2.02308775e+038 x90=1.25412456e+037 x91=-2.0525618e+037 x92=2.56179234e+038 x93=3.83628455e+037 x94=-1.00488412e+037 x95=1.67790412e+038 x96=-3.34897047e+036 x97=-3.40698312e+037 x98=1.7692398e+037 x99=-1.5696003e+038 x100=-1.07994104e+038迭代次数为500次数值分析:本题,n=10时,当w=1.066时,迭代次数取最少,迭代次数为62次;n=100时,当w=1.18时,迭代次数取最少,迭代次数为89次;当w≤0或w≥2.0时,不收敛。

相关文档
最新文档