当前位置:文档之家› 西南交通大学 数值分析 报告

西南交通大学 数值分析 报告

西南交通大学 数值分析  报告
西南交通大学 数值分析  报告

数值分析课程上机作业计算报告

班级:

学号:

姓名:

专业:大地测量学及测绘工程

指导老师:

联系电话:

数值分析上机实验报告

序言

通过数值分析的理论知识的学习,此次实验将我们学过的理论知识运用于实践之中。本次实验,我选用的计算机语言为MATLAB,其主要有一下几个特点。

1.编程效率高

MATLAB是一种面向科学与工程计算的高级语言,允许使用数学形式的语言编写程序,且比BASIC、FORTRAN和C等语言更加接近我们书写计算公式的思维方式,用MATLAB编写程序犹如在演算纸上排列出公式与求解问题。因此,MATLAB语言也可通俗地称为演算纸式科学算法语言。由于它编写简单,所以编程效率高,易学易懂

2. 用户使用方便

MATLAB语言与其他语言相比,较好的解决了上述问题,把编辑、编译、链接和执行融为一体。它能在同一画面上进行灵活操作,快速排除输入程序中的书写错误、语法错误以至语义错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比VB还要简单的语言。

3. 方便的绘图功能

MATLAB的绘图是十分方便的,它有一系列绘图函数(命令),例如线性坐标、对数坐标、半对数坐标及极坐标,均只需调用不同的绘图函数(命令),在图上标出图题、XY轴标注,格(栅)绘制也只需调用相应的命令,简单易行。另外,在调用绘图函数时调整自变量可绘出不变颜色的点、线、复线或多重线。这种为科学研究着想的设计是通用的编程语言所不能及的。

数值分析上机实验报告

目录

1.实验一 (1)

1.1题目 (1)

1.2计算思路 (1)

1.3计算结果 (1)

1.4总结 (6)

2.第二题 (7)

2.1题目 (7)

2.2 松弛思想分析 (7)

2.3问题的求解 (7)

2.4总结 (10)

3.第三题 (11)

3.1题目 (11)

3.2 Runge-Kutta法的基本思想 (11)

3.3 问题的求解 (11)

3.4问题的总结 (14)

总结 (15)

附件 (16)

实验一程序设计 (16)

实验二程序设计 (16)

实验三程序设计 (17)

数值分析上机实验报告

实验一:插值问题

1.1题目

已知:a=-5,b=5, 以下是某函数f(x)的一些点(x k,y k), 其中x k=a+0.1(k-1) ,k=1,..,101;(数据略)。

请用插值类方法给出函数f(x)的一个解决方案和具体结果。并通过实验考虑下列问题:

(1)Ln(x)的次数n越高,逼近f(x)的程度越好?

(2)高次插值收敛性如何?

(3)如何选择等距插值多项式次数?

(4)若要精度增高,你有什么想法?比如一定用插值吗?

(5)逼近某个函数不用插值方式,有何变通之举?

(6)函数之间的误差如何度量,逼近的标准又是什么?

(7) 如何比较好的使用插值多项式呢?

1.2计算思路

本题我选用拉格朗日插值函数,拉格朗日插值函数的构建算法是从101组数据中等距选取n组数据来构造n阶的拉格朗日插值函数,然后在[-5,5]区间选取m个插值点带入插值多项式计算出m组(x,y),本题中,我分别取了n=6,8,10,20四种不同的阶数,然后利用matlab绘图命令查看插值函数图像与原函数图像的逼近效果。

1

数值分析上机实验报告

1.3 计算结果

当阶数为5阶时,插值图像与原函数图象如下所示(红色曲线为插值函数曲线,蓝色为原函数曲线)

表1(迭代数据)

由图象可以看出,除了在插值点附近的拟合效果还可以,其他的点都差距比较大,总的来说效果不是很好。

2

数值分析上机实验报告

当阶数为7阶时图象如下:

表2(迭代数据)

由此图象可以看出,利用7阶插值来进行计算,在0值附近的拟合不是很好,但总得来说比5阶函数较好。

3

数值分析上机实验报告

当阶数为10阶时,图象如下:

表3(迭代数据)

利用10阶函数进行插值计算时,在函数的两端会出现相比于原函数偏离比较大的点,这就是runge(龙格)现象,但不是很明显。

4

数值分析上机实验报告

当阶数为20阶时,图象如下:

表4(迭代数据)

由此图像可以看出,runge(龙格)现象已经非常明显了,由于在两端的龙格现象太明显,所以此图是在去除了两端偏离比较大的点。

5

数值分析上机实验报告

1.4 总结

利用拉格朗日插值函数构造插值多项式是比较常用的插值计算的方法之一,其解决了不需要求解方程组的问题,它也有一定的缺点:

(1)从实验中可以看出,并不是拉格朗日的插值阶数越高,其插值效果越好,虽然在一些局部拟合的效果较好,但是当阶数超过7阶时就容易出现runge现象,由上图中的阶数n=20时就可以看出;

(2)但是当插值阶数太少时,插值的效果又不是很好,由上图中阶数n=5时可以看出,插值效果非常不好;

(3)由上面的图象可以分析,利用拉格朗日进行插值计算时,所选取的插值点并不是在区间里平均选取最好,根据不同的函数曲线,应当用不同的方法选点。

6

数值分析上机实验报告

7

实验二

2.1 题目

松弛因子对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会有什么影响?

2.2 松弛思想分析

SOR 法(松弛法),是由高斯-塞德尔迭代方法演变来的。高斯-塞德尔迭代方法的迭代格式为(

)

()1k k

i i x x x +=+?,而松弛法的迭代格式为(

)

()1k k

i i x x w x +=+?,通

过大量的实验发现,ω的取值很关键,如果取了好的ω,迭代方程的收敛速度会加快,根据理论基础可以知道,当0<ω<2时松弛法才能够收敛。

2.3问题的求解

分别取不同阶数系数矩阵和不同松弛因子进行计算,结果如下图所示:

当取阶数为5时,ω=1. 1时:

数值分析上机实验报告

迭代次数:

迭代过程:

x = 0.8250 0.7769 0.7636 0.7600 1.0340 x = 0.9561 0.9453 0.9426 1.0176 1.0014 x = 0.9893 0.9868 1.0069 1.0005 1.0000 x = 0.9974 1.0025 1.0001 1.0000 1.0000 x = 1.0010 1.0001 1.0000 1.0000 1.0000 x = 0.9999 1.0000 1.0000 1.0000 1.0000 x = 1.0000 1.0000 1.0000 1.0000 1.0000 x = 1.0000 1.0000 1.0000 1.0000 1.0000 当阶数n=6,ω=1. 3时:

迭代次数:

8

数值分析上机实验报告

9

迭代过程:

x = 0.9750 0.9669 0.9642 0.9634 0.9631 1.2880 x = 0.9967 0.9973 0.9979 0.9983 1.1041 0.9474 x = 1.0001 1.0002 1.0001 1.0344 0.9629 1.0037 x = 1.0000 1.0000 1.0111 0.9812 1.0062 1.0009 x = 1.0000 1.0036 0.9917 1.0050 1.0000 0.9997 x = 1.0012 0.9966 1.0030 0.9995 0.9997 1.0000 x = 0.9985 1.0015 0.9994 0.9999 1.0000 1.0000 x = 1.0009 0.9997 1.0000 1.0001 1.0000 1.0000 x = 0.9996 1.0000 1.0000 1.0000 1.0000 1.0000 x = 1.0001 1.0000 1.0000 1.0000 1.0000 1.0000 x = 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 x = 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 x = 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 x = 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

当阶数n=5时,ω=-1时: 请输入阶数n :5 请输入w 的值:-1

num= 1, error=2.53e+000 num= 2, error=3.93e+000 num= 3, error=7.35e+000 num= 4, error=1.80e+001 num= 5, error=4.84e+001 num= 6, error=1.32e+002 num= 7, error=3.63e+002 num= 10; error=1.00e+003 num= 11, error=2.77e+003 num= 12, error=7.68e+003 num= 13, error=2.12e+004 num= 14, error=5.87e+004 num= 15, error=1.62e+005 num= 16, error=4.47e+005 num= 17, error=1.23e+006 num= 20, error=3.38e+006 num= 21, error=9.27e+006 num= 22, error=2.54e+007 num= 23, error=6.96e+007 num= 24, error=1.90e+008 num= 25, error=5.20e+008 num= 26, error=1.42e+009 num= 27, error=3.87e+009 num= 30, error=1.06e+010 num= 31, error=2.88e+010 num= 32, error=7.84e+010 num= 33, error=2.13e+011 num= 34, error=5.81e+011 num= 35, error=1.58e+012 num= 36, error=4.29e+012 x =

1.0e+012 *

-0.3019 0.8370 -1.5384 2.1285 -1.9856 由数据中可以分析得出,当ω=-1时,迭代是不收敛的。

数值分析上机实验报告

10

当阶数n=5时,ω=2.5时 请输入阶数n :5 请输入w 的值:2.5

num= 1, error=1.38e+001 num= 2, error=2.11e+001 num= 3, error=2.58e+001 num= 4, error=2.80e+001 num= 5, error=4.63e+001 num= 6, error=6.61e+001 num= 7, error=8.74e+001 num= 10, error=1.38e+002 num= 11, error=1.72e+002 num= 12, error=2.63e+002 num= 13, error=4.26e+002 num= 14, error=8.10e+002 num= 15, error=1.51e+003 num= 16, error=2.52e+003 num= 17, error=3.58e+003 num= 20, error=4.46e+003 num= 21, error=6.34e+003 num= 22, error=9.29e+003 num= 23, error=1.25e+004 num= 24, error=1.83e+004 num= 25, error=2.82e+004 num= 26, error=3.74e+004 num= 27, error=6.20e+004 num= 30, error=1.18e+005 num= 31, error=1.96e+005 num= 32, error=2.94e+005 num= 33, error=4.09e+005 num= 34, error=5.63e+005 num= 35, error=7.87e+005 num= 36, error=1.24e+006 x =

1.0e+005 *

0.4613 1.5993 -1.4788 1.3274 -2.6027 由数据中可以分析得出,当ω=2.5时,迭代也是不收敛的。

2.4 总结

(1)在本题中,迭代次数和矩阵的未知数有以及ω的取值有一定的联系,不一定是未知数多迭代次数就多,也有可能在取相同ω时,未知数多迭代次数反而较少,这和SOR 法的迭代原理有关。

(2)当ω≤0或ω≥2.0,SOR 法不收敛,这是必要条件。

数值分析上机实验报告

实验三

3.1 题目

用Ru n ge-Kutt a4阶算法对初值问题y/=-20*y,y(0)=1按不同步长求解,用于观察稳定区间的作用,推荐两种步长h=0.1,0.2。

注:此方程的精确解为:y=e-20x

3.2 Runge-Kutta法的基本思想

Ru n ge-Kutt a法的基本思想是通过f (x, y)某些点函数值的适当线性组合替换Euler 法中的f(x k,y k),可能使得方法的精确度更高。由于有了这种思想,因此标准的四阶Runge-Kutta的算法如下(h为求解步长):

K1=hf(x k,y k)

如果y k某种方法第k步的近似值,y(x k)是其准确值,其绝对误差为δk,即有δk=y(x k)-y k。假定第k步之后的计算不再有舍入误差,只是由δk引起的扰动δm,都有︳δm︳<︳δk︳,则称此方法是绝对稳定的。数值解法的稳定性一般与步长h 以及f(x,y)有关。

3.3 问题的求解

给定初值x为0,我选定迭代终点为1,,分别选取h=0.1、h=0.2进行计算,并对迭代过程和迭代图像进行分析。计算结果如下:

11

数值分析上机实验报告

当h=0.1时

请输入a的值:0

请输入b的值:1

请输入步长h:0.1

x[ 1]=0.000000 y[ 1]=1.000000 yi[ 1]= 1.000000 error[ 1]= 0.000000 x[ 2]=0.100000 y[ 2]=0.333333 yi[ 2]= 0.135335 error[ 2]= 0.197998 x[ 3]=0.200000 y[ 3]=0.111111 yi[ 3]= 0.018316 error[ 3]= 0.092795 x[ 4]=0.300000 y[ 4]=0.037037 yi[ 4]= 0.002479 error[ 4]= 0.034558 x[ 5]=0.400000 y[ 5]=0.012346 yi[ 5]= 0.000335 error[ 5]= 0.012010 x[ 6]=0.500000 y[ 6]=0.004115 yi[ 6]= 0.000045 error[ 6]= 0.004070 x[ 7]=0.600000 y[ 7]=0.001372 yi[ 7]= 0.000006 error[ 7]= 0.001366 x[ 8]=0.700000 y[ 8]=0.000457 yi[ 8]= 0.000001 error[ 8]= 0.000456 x[ 9]=0.800000 y[ 9]=0.000152 yi[ 9]= 0.000000 error[ 9]= 0.000152

12

数值分析上机实验报告

13

当h=0.2时

数值分析上机实验报告

由图象和数据中可以看出,当步长为0.2时,迭代是不收敛的。

3.4问题的总结

(1)用标准的四阶Runge-Kutta 算法计算常微分方程时,不同的步长算法的稳定性有影响。不够稳定的步长下面的计算,误差会越来越大,结果失真严重。

(2)一般情况下,步长越小,标准的四阶Runge-Kutta 算法的稳定性越高,精度也越高。

14

数值分析上机实验报告

总结

通过此次数值分析上机实习,认识到了计算机编程在数值分析课程中的重要性。也让我意识到了学习编程语言的重要性。要想要将数学应用于实际工程中,特别是对于工科的学生来讲,这是一门非常重要的实践课程。

在此次报告中,首次接触了Matlab这门软件,之所以选这门,是因为很多工程中对数据的处理需要使用,这对我本身的专业是非常重要的。

本学期学习的数值分析方法,让我在对数学的理解上又有了新的认识。在一连串看似杂乱无章的数据中,用数值分析进行处理,有了很多的收获。在学习的过程中,意识到了这门课对我专业的重要性,让我对自己的专业有了更好的发挥。对我写论文以及解决实际工程问题有很大的帮助。

最后,感谢老师给我这样的机会去接触这门语言,虽然只了解了皮毛,可是仍然收获颇多。由于初次接触这门软件,在报告中仍难免会有不完善甚至错误的地方,望谅解!

15

数值分析上机实验报告

附录

实验一程序

function yy=L(xi)

f=fopen('xk.txt','r');

x=fscanf(f,'%f');

g=fopen('yk.txt','r');

y=fscanf(g,'%f');

n=input('请输入插值函数阶数:');

s=0;

xi=[-3.5:0.1:3.5];

for i=1:fix(101/(n-1)):101

t=ones(1,length(xi));

for j=1:fix(101/(n-1)):101

if j~=i

t=t.*(xi-x(j))/(x(i)-x(j));

end

end

s=s+t*y(i);

end

yy=s;

plot(x,y,'b',xi,yy,'r')

16

数值分析上机实验报告

实验二程序

n=input('请输入阶数n:');

w=input('请输入w的值:');

for i=1:n

for j=1:n

if i==j

a(i,j)=-4;

elseif (i==j+1|i==j-1)

a(i,j)=1;

else

a(i,j)=0;

end

end

end

for i=1:n

if (i==1|i==n)

b(i)=-3;

else

b(i)=-2;

end

end

x=zeros(1,n);

for num=1:30

error=0;

for i=1:n

s=0;

xb=x(i);

for j=1:n

if i~=j,s=s+a(i,j)*x(j);end

end

x(i)=w*(b(i)-s)/a(i,i)+(1-w)*x(i);

error=error+abs(x(i)-xb);

end

fprintf('num=%3.o, error=%7.2e\n',num,error)

if error/3<0.000001,break;end

end

x

17

西南交大 数值分析题库

考试目标及考试大纲 本题库的编纂目的旨在给出多套试题,每套试题的考查范围及难度配置均基于“水平测试”原则,按照教学大纲和教学内容的要求,通过对每套试题的解答,可以客观公正的评定出学生对本课程理论体系和应用方法等主要内容的掌握水平。通过它可以有效鉴别和分离不同层次的学习水平,从而可以对学生的学习成绩给出客观的综合评定结果。 本题库力求作到能够较为全面的覆盖教学内容,同时突显对重点概念、重点内容和重要方法的考查。考试内容包括以下部分: 绪论与误差:绝对误差与相对误差、有效数字、误差传播分析的全微分法、相对误差估计的条件数方法、数值运算的若干原则、数值稳定的算法、常用数值稳定技术。 非线性方程求解:方程的近似解之二分法、迭代法全局收敛性和局部收敛定理、迭代法误差的事前估计法和事后估计法、迭代过程的收敛速度、r 阶收敛定理、Aitken加速法、Ne w to n法与弦截法、牛顿局部收敛性、Ne w to n收敛的充分条件、单双点割线法(弦截法)、重根加速收敛法。 解线性方程组的直接法:高斯消元法极其充分条件、全主元消去法、列主元消去法、高斯-若当消元法、求逆阵、各种消元运算的数量级估计与比较、矩阵三角分解法、Doolittle 和Crout三角分解的充分条件、分解法的手工操作、平方根法、Cholesky分解、改进的平方根法(免去开方)、可追赶的充分条件及适用范围、计算复杂性比较、严格对角占优阵。 解线性方程组迭代法:向量和矩阵的范数、常用向量范数的计算、范数的等价性、矩阵的相容范数、诱导范数、常用范数的计算;方程组的性态和条件数、基于条件数误差估计与迭代精度改善方法;雅可比(Jacobi)迭代法、Gauss-Seidel迭代法、迭代收敛与谱半径的关系、谱判别法、基于范数的迭代判敛法和误差估计、迭代法误差的事前估计法和事后估计法;严格对角占优阵迭代收敛的有关结论;松弛法及其迭代判敛法。 插值法:插值问题和插值法概念、插值多项式的存在性和唯一性、插值余项定理;Lagrange插值多项式;差商的概念和性质、差商与导数之间的关系、差商表的计算、牛顿(Newton)插值多项式;差分、差分表、等距节点插值公式;Hermite插值及其插值基函数、误差估计、插值龙格(Runge)现象;分段线性插值、分段抛物插值、分段插值的余项及收敛性和稳定性;样条曲线与样条函数、三次样条插值函数的三转角法和三弯矩法。 曲线拟合和函数逼近:最小二乘法原理和多项式拟合、函数线性无关概念、法方程有唯一解的条件、一般最小二乘法问题、最小二乘拟合函数定理、可化为线性拟合问题的常见函数类;正交多项式曲线拟合、离散正交多项式的三项递推法。最佳一致逼近问题、最佳一致逼近多项式、切比雪夫多项式、切比雪夫最小偏差定理、切比雪夫多项式的应用(插值余项近似极小化、多项式降幂)。本段加黑斜体内容理论推导可以淡化,但概念需要理解。 数值积分与微分:求积公式代数精度、代数精度的简单判法、插值型求积公式、插值型求积公式的代数精度;牛顿一柯特斯(Newton-Cotes)公式、辛卜生(Simpson)公式、几种低价牛顿一柯特斯求积公式的余项;牛顿一柯特斯公式的和收敛性、复化梯形公式及其截断误差、复化Simpson公式及其截断误差、龙贝格(Romberg)求积法、外推加速法、高斯型求积公式、插值型求积公式的最高代数精度、高斯点的充分必要条件。正交多项式的构造方法、高斯公式权系数的建立、Gauss-Legendre公式的节点和系数。本段加黑斜体内容理论推导可以淡化,但概念需要理解。 常微分方程数值解:常微分方程初值问题数值解法之欧拉及其改进法、龙格—库塔法、阿当姆斯方法。

西南交大数值分析题库填空

一. 填空 2.Gauss型求积公式不是插值型求积公式。(限填“是”或“不是”) 3. 设l k(x)是关于互异节点x0, x1,…, x n, 的Lagrange 插值基函数,则 0 m=1,2,…,n 5.用个不同节点作不超过次的多项式插值,分别采用Lagrange插值方法与Newton插值方法所得多项式相等(相等, 不相等)。 。 7. n个不同节点的插值型求积公式的代数精度一定会超过n-1次 8.f(x)=ax7+x4+3x+1,f[20, 21,…,27]= a,f [20, 21,…,28]= 0 10设 (i=0,1,…,n),则= _x_ , 这里(x i x j,ij, n2)11.设称为柯特斯系数 则=______1____ 12采用正交多项式拟合可避免最小二乘或最佳平方逼近中常见的_法方程组病态___问题。 13辛卜生(Simpson)公式具有___3____次代数精度。 14 牛顿插商与导数之间的关系式为: 15试确定[0,1]区间上2x3的不超过二次的最佳一致逼近多项式p(x), 该多项式唯一否?答:p(x)=(3/2)x, ; 唯一。 17.给定方程组记此方程组的Jacobi迭代矩阵为B J=(a ij)33,则a23= -1; ,且相应的Jacobi迭代序列是__发散_____的。 18.欧拉预报--校正公式求解初值问题的迭代格式(步长为h) ,此方法是阶方法。 ,此方法是 2阶方法。 19. 2n阶Newton-Cotes公式至少具有2n+1次代数精度。 20.设,则关于的 ||f|| =1 21矩阵的LU分解中L是一个 _为单位下三角阵,而U是一个上三角阵____。 22.设y=f (x1,x2) 若x1,x2,的近似值分别为x1*, x2*,令y*=f(x1*,x2*)作为y的近似值,其绝对误差限的估计式为: ||f(x1*,x2*)|x1-x*1|+ |f(x1*,x2*)|x2- x*2| 23设迭代函数(x)在x*邻近有r(1)阶连续导数,且x* = (x*),并且有(k) (x*)=0 (k=1,…,r-1),但(r) (x*)0,则x n+1=(x n)产生的序列{ x n }的收敛阶数为___r___ 24设公式为插值型求积公式,则, 且=b-a 25称微分方程的某种数值解法为p阶方法指的是其局部截断误差 为O(h p+1)。 26.设x0, x1,x2是区间[a, b]上的互异节点,f(x)在[a, b]上具有各阶导数,过

西南交大数值分析题库积分微分方程

用复化梯形公式计算积分 1 ()f x dx ?,要把区间[0,1]一般要等分 41 份才能保 证满足误差小于0.00005的要求(这里(2) () 1f x ∞ ≤) ;如果知道(2) ()0f x >,则 用复化梯形公式计算积分1 ()f x dx ? 此实际值 大 (大,小)。 在以1 0((),())()(),(),()[0,1]g x f x xf x g x dx f x g x C = ∈?为内积的空间C[0,1] 中,与非零常数正交的最高项系数为1的一次多项式是 2 3 x - 3. (15分)导出用Euler 法求解 (0)1y y y λ'=??=? 的公式, 并证明它收敛于初值问题的精确解 解 Euler 公式 11,1,,,k k k x y y h y k n h n λ--=+== L -----------(5分) ()()1011k k k y h y h y λλ-=+==+L ------------------- (10分) 若用复化梯形求积公式计算积分1 x I e dx = ? 区间[0,1]应分 2129 等分,即要 计算个 2130 点的函数值才能使截断误差不超过 71 102 -?;若改用复化Simpson 公式,要达到同样精度区间[0,1]应分12 等分,即要计算个 25 点的函数值 1.用Romberg 法计算积分 2 3 2 x e dx -? 解 []02()()2b a T f a f b -= += 9.6410430E-003 10221()222 b a a b T T f -+=+= 5.1319070E-003 10 022243 T T S -= = 4.6288616E-003 22T = 4.4998E-003 21 122243 T T S -= = 4.E-003 10 02221615 S S C -= = 4.6588636E-003 32T = 4.7817699E-003 32 222243 T T S -= = 4.1067038E-003

数值分析上机报告

数值分析上机报告 班级:20级学隧2班 姓名:000000000 学号:00000000000

目录 1 序言 (6) 2 题目 (7) 2.1 题2 (7) 2.1.1 题目内容 (7) 2.1.2 MATLAB程序 (8) 2.1.3 计算结果 (8) 2.1.4 图形 (9) 2.1.5 分析 (14) 2.2 题3 (14) 2.2.1 题目内容 (14) 2.2.2 程序 (14) 2.2.3 计算结果 (14) 2.2.4 图形 (15) 2.2.5 分析 (16) 2.3 选做题5 (16) 2.3.1方法介绍 (17) 2.3.2计算结果及分析 (17) 3总结 (18) 4.附录 (19) 4.1 题1程序代码 (19) 4.2 题2程序代码 (22) 4.3 题3程序代码 (26)

数值分析2015上机实习报告要求 1.应提交一份完整的实习报告。具体要求如下: (1)报告要排版,美观漂亮(若是纸质要有封面,封面上)要标明姓名、学号、专业和联系电话; (2)要有序言,说明所用语言及简要优、特点,说明选用的考量; (3)要有目录,指明题目、程序、计算结果,图标和分析等内容所在位置,作到信息简明而完全; (4)要有总结,全方位总结机编程计算的心得体会; (5)尽量使报告清晰明了,一般可将计算结果、图表及对比分析放在前面,程序清单作为附录放在后面,程序中关键部分要有中文说明或标注, 指明该部分的功能和作用。 2.程序需完好保存到期末考试后的一个星期,以便老师索取用于验证、询问或质疑部分内容。 3.认真完成实验内容,可以达到既学习计算方法又提高计算能力的目的,还可以切身体会书本内容之精妙所在,期间可以得到很多乐趣。 4.拷贝或抄袭他人结果是不良行为,将视为不合格。 5.请按任课老师要求的时间和载体(电子或纸质)提交给任课老师。

西南交通大学2018-2019数值分析Matlab上机实习题

数值分析2018-2019第1学期上机实习题 f x,隔根第1题.给出牛顿法求函数零点的程序。调用条件:输入函数表达式() a b,输出结果:零点的值x和精度e,试取函数 区间[,] ,用牛顿法计算附近的根,判断相应的收敛速度,并给出数学解释。 1.1程序代码: f=input('输入函数表达式:y=','s'); a=input('输入迭代初始值:a='); delta=input('输入截止误差:delta='); f=sym(f); f_=diff(f); %求导 f=inline(f); f_=inline(f_); c0=a; c=c0-f(c0)/f_(c0); n=1; while abs(c-c0)>delta c0=c; c=c0-f(c0)/f_(c0); n=n+1; end err=abs(c-c0); yc=f(c); disp(strcat('用牛顿法求得零点为',num2str(c))); disp(strcat('迭代次数为',num2str(n))); disp(strcat('精度为',num2str(err))); 1.2运行结果: run('H:\Adocument\matlab\1牛顿迭代法求零点\newtondiedai.m') 输入函数表达式:y=x^4-1.4*x^3-0.48*x^2+1.408*x-0.512 输入迭代初始值:a=1 输入截止误差:delta=0.0005 用牛顿法求得零点为0.80072 迭代次数为14 精度为0.00036062 牛顿迭代法通过一系列的迭代操作使得到的结果不断逼近方程的实根,给定一个初值,每经过一次牛顿迭代,曲线上一点的切线与x轴交点就会在区间[a,b]上逐步逼近于根。上述例子中,通过给定初值x=1,经过14次迭代后,得到根为0.80072,精度为0.00036062。

数值分析西南交通大学

1.填空 (1). 在等式∑== n k k k n x f a x x x f 0 10)(],,,[ 中, 系数a k 与函数f (x ) 无 关。 (限填“有”或“无”) (2). Gauss 型求积公式不是 插值型求积公式。(限填“是”或“不是”) 或“无”) (3). 设l k (x )是关于互异节点x 0, x 1,…, x n , 的Lagrange 插值基函数,则 ∑=-n k k m k x l x x 0 )()(≡0 m=1,2,…,n (4). ? ? ? ? ??-=3211A ,则=1||||A 4 ,=2||||A 3.6180340 ,=∞||||A 5 ; (5). 用1n +个不同节点作不超过n 次的多项式插值,分别采用Lagrange 插值方法与Newton 插值方法所得多项式 相等 (相等, 不相等)。 (6). 函数3 320, 10(),01(1),12x f x x x x x x -≤=B ρ,故Jacobi 方法发散。 (2)对Gauss-Seidel 方法,迭代矩阵为

数值分析2016上机实验报告

序言 数值分析是计算数学的范畴,有时也称它为计算数学、计算方法、数值方法等,其研究对象是各种数学问题的数值方法的设计、分析及其有关的数学理论和具体实现的一门学科,它是一个数学分支。是科学与工程计算(科学计算)的理论支持。许多科学与工程实际问题(核武器的研制、导弹的发射、气象预报)的解决都离不开科学计算。目前,试验、理论、计算已成为人类进行科学活动的三大方法。 数值分析是计算数学的一个主要部分,计算数学是数学科学的一个分支,它研究用计算机求解各种数学问题的数值计算方法及其理论与软件实现。现在面向数值分析问题的计算机软件有:C,C++,MATLAB,Python,Fortran等。 MATLAB是matrix laboratory的英文缩写,它是由美国Mathwork公司于1967年推出的适合用于不同规格计算机和各种操纵系统的数学软件包,现已发展成为一种功能强大的计算机语言,特别适合用于科学和工程计算。目前,MATLAB应用非常广泛,主要用于算法开发、数据可视化、数值计算和数据分析等,除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。 本实验报告使用了MATLAB软件。对不动点迭代,函数逼近(lagrange插值,三次样条插值,最小二乘拟合),追赶法求解矩阵的解,4RungeKutta方法求解,欧拉法及改进欧拉法等算法做了简单的计算模拟实践。并比较了各种算法的优劣性,得到了对数值分析这们学科良好的理解,对以后的科研数值分析能力有了极大的提高。

目录 序言 (1) 问题一非线性方程数值解法 (3) 1.1 计算题目 (3) 1.2 迭代法分析 (3) 1.3计算结果分析及结论 (4) 问题二追赶法解三对角矩阵 (5) 2.1 问题 (5) 2.2 问题分析(追赶法) (6) 2.3 计算结果 (7) 问题三函数拟合 (7) 3.1 计算题目 (7) 3.2 题目分析 (7) 3.3 结果比较 (12) 问题四欧拉法解微分方程 (14) 4.1 计算题目 (14) 4.2.1 方程的准确解 (14) 4.2.2 Euler方法求解 (14) 4.2.3改进欧拉方法 (16) 问题五四阶龙格-库塔计算常微分方程初值问题 (17) 5.1 计算题目 (17) 5.2 四阶龙格-库塔方法分析 (18) 5.3 程序流程图 (18) 5.4 标准四阶Runge-Kutta法Matlab实现 (19) 5.5 计算结果及比较 (20) 问题六舍入误差观察 (22) 6.1 计算题目 (22) 6.2 计算结果 (22) 6.3 结论 (23) 7 总结 (24) 附录

数值分析上机实验

目录 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是Matrix Laboratory的缩写,是以矩阵为基础的交互式程序计算语言。MATLAB是一款具有强大的矩阵运算、数据处理和图形显示功能的软件,其输出结果可视化,编程效率极高,用极少的代码即可实现复杂的运行,因此它使工程技术人员摆脱了繁琐的程序代码,以便快速地验证自己的模型和算法。其主要特点包括:强大的数值运算功能;先进的资料视觉化功能高阶但简单的程序环境;开方及可延展的构架;丰富的程式工具箱。 在科学研究和工程计算领域经常会遇到一些非常复杂的计算问题,利用计算器或手工计算是相当困难或无法实现的,只能借助计算机编程来实现。MATLAB将高性能的数值计算和可视化的图形工具集成在一起,提供了大量的内置函数,使其在科学计算领域具有独特的优势。 最后感谢数值分析课程任课教师赵海良老师的悉心指导!

《数值计算方法》课程教学大纲.

《数值计算方法》课程教学大纲 课程名称:数值计算方法/Mathods of Numerical Calculation 课程代码:0806004066 开课学期:4 学时/学分:56学时/3.5学分(课内教学 40 学时,实验上机 16 学时,课外 0 学时)先修课程:《高等代数》、《数学分析》、《常微分方程》、《C语言程序设计》 适用专业:信息与计算科学 开课院(系):数学与计算机科学学院 一、课程的性质与任务 数值计算方法是数学与应用数学专业的核心课程之一。它是对一个数学问题通过计算机实现数值运算得到数值解答的方法及其理论的一门学科。本课程的任务是架设数学理论与计算机程序设计之间的桥梁,建立解决数学问题的有效算法,讨论其收敛性和数值稳定性并寻找误差估计式,培养学生数值计算的能力。 二、课程的教学内容、基本要求及学时分配 (一)误差分析2学时 1 了解数值计算方法的主要研究内容。 2 理解误差的概念和误差的分析方法。 3 熟悉在数值计算中应遵循的一些基本原则。 重点:数值计算中应遵循的基本原则。 难点:数值算法的稳定性。 (二)非线性方程组的求根8学时 1 理解方程求根的逐步搜索法的含义和思路 2 掌握方程求根的二分法、迭代法、牛顿法及简化牛顿法、非线性方程组求根的牛顿法 3 熟悉各种求根方法的算法步骤,并能编程上机调试和运行或能利用数学软件求非线性方程的近似根。 重点:迭代方法的收敛性、牛顿迭代方法。 难点:迭代方法收敛的阶。 (三)线性方程组的解法10学时 1 熟练掌握高斯消去法 2 熟练地实现矩阵的三角分解:Doolittle法、Crout法、Cholesky法、LDR方法。 3 掌握线性方程组的直接解法:Doolittle法、Crout法、Cholesky法(平方根法)、改进平方根法、追赶法。 4能熟练地求向量和矩阵的1-范数、2-范数、 -范数和条件数。 5 理解迭代法的基本思想,掌握迭代收敛的基本定理。 6 掌握解线性方程组的雅可比(Jacobi)迭代法、高斯-赛德尔(Gauss-Seidel)迭代法、逐次超松驰(SOR)迭代法。

西南交通大学研究生数值分析作业

数值分析上机报告 指导教师:赵海良 班级: 姓名: 学号: 电话: 2011年12月

序 随着计算机技术的迅速发展,数值分析在工程技术领域中的应用越来越广泛,并且成为数学与计算机之间的桥梁。要解决工程问题,往往需要处理很多数学模型,不仅要研究各种数学问题的数值解法,同时也要分析所用的数值解法在理论上的合理性,如解法所产生的误差能否满足精度要求:解法是否稳定、是否收敛及熟练的速度等。 由于工程实际中所遇到的数学模型求解过程迭代次数很多,计算量很大,所以需要借助如MATLAB,C++,VB,JA V A的辅助软件来解决,得到一个满足误差限的解。本文所计算题目,均采用C++编程。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格,在实际工程中得到了广泛应用,对解决一些小型数学迭代问题,C++软件精度已满足相应的精度。 本文使用C++对牛顿法、牛顿-Steffensen法对方程求解,对雅格比法、高斯-赛德尔迭代法求解方程组迭代求解,对Ru n ge-Kutt a 4阶算法进行编程,并通过实例求解验证了其可行性,并使用不同方法对计算进行比较,得出不同方法的收敛性与迭代次数的多少,比较不同方法之间的优缺性,比较各种方法的精确度和解的收敛速度。

目录 第一章牛顿法和牛顿-Steffensen法迭代求解的比较 (1) 1.1 计算题目 (1) 1.2 计算过程和结果 (1) 1.3 结果分析 (2) 第二章 Jacobi迭代法与Causs-Seidel迭代法迭代求解的比较 (2) 2.1 计算题目 (2) 2.2 计算过程与结果 (2) 2.3 结果分析 (3) 第三章 Ru n ge-Kutt a 4阶算法中不同步长对稳定区间的作用 (4) 3.1 计算题目 (4) 3.2 计算过程与结果 (4) 3.3 结果分析 (4) 总结 (5) 附件 (6) 附件 1(1.1第一问牛顿法) (6) 附件 2(1.1第一问牛顿-Steffensen法) (6) 附件 3(1.1第二问牛顿法) (6) 附件 4(1.1第二问牛顿-Steffensen法) (7) 附件 5(2.1 Jacobi迭代法) (7) 附件 6(2.1Causs-Seidel迭代法) (8) 附件 7(3.1 Ru n ge-Kutt a 4阶算法) (9)

西南交大数值分析上机实习报告

数值分析上机实习报告(2015~2016学年第一学期) 姓名:xxxxxxx 学号:xxxxxxxxxx 专业:岩土工程 指导教师:徐跃良 联系电话:xxxxxxxxxxx 实习成绩: xxxxxxxxx 2015年12月10日

目录 一序言 (3) 二正文 (3) 题目3 (3) 原理3 (3) 结果3 (4) 分析3 (5) 题目4 (6) 原理4 (6) 结果4 (7) 分析4 (7) 题目5 (7) 原理5 (7) 结果5 (8) 分析5 (9) 三总结 (9) 四附录 (9) 附录1雅格比迭代法程序代码 (9) 附录2高斯-赛德尔迭代法程序 (10)

附录3求解题目3程序代码 (11) 附录4 SOR法程序代码 (12) 附录5求解题目4程序代码 (13) 附录6Ru n ge-Kutt a 4阶算法程序代码 (13) 附录7求解题目5程序代码 (14)

一序言 MATLAB 的M 语言,一种演算纸方式的编程语言。通过这种语言,用户可以用类似于数学公式的方式来编写算法,大大降低了编程所需的难度并节省了时间,从而让用户把主要的精力集中在算法的构思而不是编程上。 为便于检验结果,本上机实习全部使用M 语言编程,然后用内置函数求解进行对比。 二正文 题目3用雅格比法与高斯-赛德尔迭代法解下列方程组Ax =b ,研究 其收敛性,上机验证理论分析是否正确,比较它们的收敛速度,观察右端项对迭代收敛有无影响。 (1)12621-3100142, b 2, b -2003144345A -?????? ? ? ? =-== ? ? ? ? ? ?-?????? (2)1210.80.8350.810.8, b 2, b 00.80.811-10A ?????? ? ? ? === ? ? ? ? ? ??????? (3)134, b 716A ???? == ? ?-???? 原理: 雅格比迭代法: ) b x a x a x a x a (a 1x ) b x a x a x a (a 1x ) b x a x a x a (a 1x n ) 1k (1n 1nn )1k (33n )1k (22n )1k (11n nn ) k (n 2)1k (n n 2) 1k (323) 1k (12122) k (21)1k (n n 1) 1k (313) 1k (21211) k (1-++++-=-+++-=-+++- =------------

西南交通大学数值分析上机实习

目录 解题: (1) 题目一: (1) 1.1计算结果 (1) 1.2结果分析 (1) 题目二: (2) 2.1计算结果 (2) 2.2结果分析 (3) 题目三: (4) 3.1计算结果 (4) 3.2结果分析 (5) 总结 (5) 附录 (6) Matlab程序: (6) 题目一: (6) 第一问Newton法: (6) 第二问Newton法: (6) 第一问Steffensen加速法: (7) 第二问Steffensen加速法: (7) 题目二 (8) 1、Jacobi迭代法 (8) 2、Causs-Seidel迭代法 (8) 题目三: (9)

题目一: 分别用牛顿法,及基于牛顿算法下的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.1计算结果 求ln(x +sin x )=0的根,可变行为求解x-sinx-1=0的根。 1.2结果分析 从结果对比我们可发现牛顿—Steffensen 加速法比牛顿法要收敛的快,牛顿法对于初值的选取特别重要,比如第(1)问中的初值为4的情况,100次内没有迭代出来收敛解,而用Steffensen 加速法,7次迭代可得;在第(2)问中的初值为1.6的情况,收敛解得31.4159,分析其原因应该是x x f cos )('=,x0=1.62 π ≈ ,0)('≈x f ;迭代式在迭代过程中会出现分母趋近于0,程序自动停止 迭代的情况,此时得到的x 往往非常大,而在第一问中我们如果转化为用x+sinx=1,则可以收敛到结果。

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

数值分析上机实习报告 姓名: 学号: 专业:大地测量学与测量工程电话:

序言 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、计算结果 由于比较多每种方法中只选取了其中两个的图片例在下面:

西南交大研究生数值分析期末考试作业答案

序言 随着科技的进步和经济的迅猛发展,计算机这一工具在人们的生活和工作中越来越重要,数值分析作为工程计算和科学计算连接计算机的一门基础课程日益受到人们的重视,数值分析这门课在我们整个研究生课程的学习中具有很重要的意义,对我们以后的工作学习有很重要的作用。 Matlab是与一个非常优秀的的计算机语言,集数学计算,仿真和函数绘图等于一体,是一款功能强大的数学软件,是科研机构进行数学建模分析、研究必要的工具。本上机实习的所有内容都是采用Matlab7.0这个软件开发平台。使用Matlab7.0语言所编写的程序,与Visual C++、Basic和Pascal程序相比,具有速度快、操作简单、修改方便、界面友好、功能强大等优势。 用C++自编程序解决问题针对性好,可以得到想要的各种结论,而用数学软件计算则有一定的局限性,因为数学软件的算法是封装的,甚至我们不知道命令的具体算法,另外数学软件的命令只能解决通用的计算问题,对需要特定结论的计算问题,比如得到迭代次数, 光用数学软件的命令便不能得到,而用C++编程则有很强的适应性,可以精细控制计算细节,得到一些想要的结论,但是对于常规的计算问题,比如拟合和插值以及解方程(组),如果只要结果,那么用软件计算比较有优势,所以对实际问题综合使用计算方法比较好. 由于使用能力所限,有一些疏忽,恳请老师指正,在此感谢老师这个学期对我们的悉心教导。

第一题 写出对一般的线性方程组通用的Gauss消元, Gauss-Seidel迭代程序。并以下面的线性方程组为例进行计算,讨论所得到的计算结果是否与理论一致。 (1) 6213100 1422200 3144345 x -- ?????? ? ? ? -=- ? ? ? ? ? ?- ?????? 或 (2) 10.80.835 0.810.820 0.80.81110 x ?????? ? ? ? = ? ? ? ? ? ? - ?????? 或 (3) 134 716 x ???? = ? ?- ???? 本题的思路为编写Gauss-Seidel迭带的函数,在matlab中运行,查看其收敛与否与收敛速度,然后验证迭代收敛的条件。 (1)在matlab命令界面输入命令代码,并通过函数计算求得收敛的速度与迭代结果如下,假设迭代超过或达到10E6,迭代不收敛。 表1-a 对于右端项为b1的迭代结果 表1-b 对于右端项为b2的迭代结果 通过附录的谱半径脚本程序计算两种迭代的迭代矩阵满足谱半径分别为0.5427、0.3.536,均小于1条件 (2)同(1)得到

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

数值分析2016上机实习报告要求 1.应提交一份完整的实习报告。具体要求如下: (1) 报告要排版,美观漂亮;要标明姓名、学号、专业和联系电话; (2) 要有目录,指明题目、程序、计算结果,图标和分析等内容所在位置,作 到信息简明而完全; (3)要有总结,全方位总结机编程计算的心得体会; (4)尽量使报告清晰明了,一般可将计算结果、图表及对比分析放在前面,程序 清单作为附录放在后面,程序中关键部分要有中文说明或标注,指明该部分的功能和作用。 2.程序需完好保存到期末考试后的一个星期,以便老师索取用于验证、询问或质疑部分内容。 3.认真完成实验内容,可以达到既学习计算方法又提高计算能力的目的,还可以切身体会书本内容之精妙所在,期间可以得到很多乐趣。 4.拷贝或抄袭他人结果是不良行为,将视为不合格。 5.请按任课老师要求的时间和载体(电子或纸质)提交给任课老师。 6.提交电子邮件请务必按述格式命名邮件主题和文档名,以方便统计 学号姓名2016_2上机实习报告 如:2015201597张帅哥数值分析2016-2计算报告 数值分析上机试题 1. 编程计算∑∞ =11n cn , 其中c= 4.4942?10307, 给出并观察计算结果,若有问题,分析之。 2. 利用牛顿法求方程ln 2x x -=于区间[2,4]的根,考虑不同初值下牛顿法的收敛情况。 3. 给出1 251 2+=x y 在xk=0+0.25k 处的值yk, k=0,1,2,3,4. 请给出由节点 xk 确定的三次样条插 值函数S(x), 使其满足条件:S /(0)=0, S /(1)=-0.074, 分析逼近效果如何?

西南交大数值分析第二次大作业(可以运行)

数值分析第二次大作业 1 (1)用Lagrange插值法 程序: function f=Lang(x,y,x0)

syms t; f=0; n=length(x); for(i=1:n) l=y(i); for(j=1:i-1) l=l*(t-x(j))/(x(i)-x(j)); end; for(j=i+1:n) l=l*(t-x(j))/(x(i)-x(j)); end f=f+l; simplify(f); if(i==n) if(nargin==3) f=subs(f,'t',x0); else f=collect(f); f=vpa(f,6); end end end x=[1,2,3,-4,5];y=[2,48,272,1182,2262]; t=[-1]; disp('插值结果') yt=Lang(x,y,t) disp('插值多项式') yt=Lang(x,y) ezplot(yt,[-1,5]); 运行结果: 插值结果: Yt= 12.0000 插值多项式: yt =4.0*t^4 - 2.0*t^3 + t^2 - 3.0*t + 2.0

(2)构造arctan x在[1,6]基于等距节点的10次插值多项式 程序: function f=New(x,y,x0) syms t; if(length(x)==length(y)) n=length(x); c(1:n)=0.0; else disp('xoíy??êy2?μè£?'); return; end f=y(1); y1=0; xx=linspace(x(1),x(n),(x(2)-x(1))); for(i=1:n-1) for(j=1:n-i) y1(j)=y(j+1)-y(j); end c(i)=y1(1); l=t; for(k=1:i-1) l=l*(t-k); end;

西南交大数值计算

1.秦九韶算法 利用秦九韶算法简化求多项式1110n n n n x a x a y x a a --=++++ 的值的运算式,并写程序计算多项式42352x y x x =--+在1x =-点处的值。 1.2秦九韶算法简化多项式 计算多项式1110n n n n x a x a y x a a --=++++ 的值: 1.直接计算i i x a ,逐项相加,共需要加法和乘法的次数为n 次、 2 ) 1(+n n 次; 2.用秦九韶算法简化,则y=(…0121)...))(a x a x a x a x a n n n +++++--,从内到外逐步计算一次多项式的值,共需要加法和乘法的次数各为n 次。 2.牛顿法及基于牛顿算法下的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进行计算。 分析其中遇到的现象与问题。 2.1 问题分析 牛顿法是一种迭代法,是求方程根的重要方法之一,通过使用函数f(x)在近似根0x 附近的一阶泰勒多项式近似表示来寻找方程的根,在方程f(x) = 0的单根附近具有平方收敛。其迭代公式为: ) () (1k k k k x f x f x x '- =+ Steffensen 加速法公式: ) ()()(x f x f x x '- =? )(n n x y ?= )(n n y z ?= n n n n n n n x y z x y x x +--- =+2)(2 1

数值分析上机作业修改讲义

西南交通大学 数值分析2015上机实习报告 2015年11月

数值分析2015上机实习报告 目录 第2题 (1) 1. 程序 (1) 2. 结果分析 (2) 第3题 (5) 1. 程序 (6) 2. 结果分析 (7) 第5题 (8) 1. 程序 (8) 2. 结果分析 (9)

第2题 2. 某过程测涉及两变量x 和y, 拟分别用插值多项式和多项式拟合给出其对应规律的近似多项式,已知xi与yi之间的对应数据如下,xi=1,2,…,10 yi = 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)。 (2)请用插值多项式给出最好近似结果 下列数据为另外的对照记录,它们可以作为近似函数的评价参考数据。 xi = Columns 1 through 7 1.5000 1.9000 2.3000 2.7000 3.1000 3.5000 3.9000 Columns 8 through 14 4.3000 4.7000 5.1000 5.5000 5.9000 6.3000 6.7000 Columns 15 through 17 7.1000 7.5000 7.9000 yi = Columns 1 through 7 42.1498 41.4620 35.1182 24.3852 11.2732 -1.7813 -12.3006 Columns 8 through 14 -18.1566 -17.9069 -11.0226 2.0284 19.8549 40.3626 61.0840 Columns 15 through 17 79.5688 93.7700 102.3677 1. 程序 (1)多项式拟合程序 n=input('输入所要拟合的阶数n='); hold on; x=1:10; y=[34.6588 40.3719 14.6448 -14.2721 -13.3570 24.8234 75.2795 103.5743 97.4847 78.2392]; P=polyfit(x,y,n) xi=1:.2:10; yi=polyval(P,xi); plot(xi,yi,x,y,'r*'); legend('拟合曲线','原始数据') (2)拉格朗日插值多项式拟合程序

数值分析 第二章习_题_解_答

第二章习 题 解 答 西南交大 草上飞 1下列数据作为π=* x 的近似数,试确定它们各有几位有效数字,并确定其相对误差限. .7 22 ,15.3,14.3,141.34321= ===x x x x (i x 表示*x 的近似数,)1415926 .3 =π 解:把近似数)4,3,2,1(*=i x i 规格化形式后均有1=k ,首位非零数字为3 Ⅰ)31* 1102 1 005.000059.0141.3-?=≤=-=- πx x * 1x 有3位有效数字,0017.0103 21 )(31* 1≈??= -x r ε Ⅱ) 3 1*2102 1005.0001.014.3-?=≤=-=- πx x * 2x 有3位有效数字,0017.0103 21)(31*2≈??= -x r ε Ⅲ) 2 1*3102 1005.0008.015.3-?=≤=-=- πx x * 3x 有2位有效数字,017.0103 21)(21*3≈??= -x r ε Ⅳ) 142857.3722=, 31* 4102 1005.0001.0722-?=≤=-=- πx x * 4x 有3位有效数字,0017.0103 21 )(31* 4≈??=-x r ε 2 证明§2.2中的定理 2.1,定理 2.2. 3 已知20的近似数x 相对误差为%5.0,试问x 至少有几位有效数字? 解:因20的第一位数字为4,所以x 的第一位数字41=a ,根据定理2.1,当 n r a x e -?+≤ 101 5 |)(|1 成立时,x 有n 位有效数字,而2=n 时 ,101 45 1019510005%5.0)(22--?+

相关主题
文本预览
相关文档 最新文档