数值分析实验报告(0002)

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

数值分析实验报告

数值分析实验报告

姓名:张献鹏

学号:173511038

专业:冶金工程

班级:重冶二班

目录

1拉格朗日插值 (1)

1.1问题背景 (1)

1.2数学模型 (1)

1.3计算方法 (1)

1.4数值分析 (2)

2复化辛普森求积公式 (2)

2.1问题背景 (2)

2.2数学模型 (3)

2.3计算方法 (3)

2.4数值分析 (5)

3矩阵的LU分解 (6)

3.1问题背景 (6)

3.2数学模型 (6)

3.2.1理论基础 (6)

3.2.2实例 (7)

3.3计算方法 (7)

3.4小组元的误差 (8)

4二分法求方程的根 (9)

4.1问题背景 (9)

4.2数学模型 (9)

4.3计算方法 (9)

4.4二分法的收敛性 (11)

5雅可比迭代求解方程组 (11)

5.1问题背景 (11)

5.2数学模型 (11)

5.2.1理论基础 (11)

5.2.2实例 (12)

5.3计算方法 (12)

5.4收敛性分析 (13)

6Romberg求积法 (14)

6.1问题背景 (14)

6.2数学模型: (14)

6.2.1理论基础 (14)

6.2.2实例 (14)

6.3计算方法 (15)

6.4误差分析 (16)

7幂法 (16)

7.1问题背景 (16)

7.2数学模型 (16)

7.2.1理论基础 (16)

7.2.2实例 (17)

7.3计算方法 (17)

7.4误差分析 (18)

8改进欧拉法 (18)

8.1问题背景 (18)

8.2数学模型 (19)

8.2.1理论基础 (19)

8.2.2实例 (19)

8.3数学模型 (19)

8.4误差分析 (21)

1 拉格朗日插值

1.1 问题背景

对于函数

211

)(x x f +=

,55≤≤-x 求拉格朗日插值。10=n ,把)(x f 和插值多项式

的曲线画在同一张图上进行比较,观察数值积分中的Lagrange 插值。

1.2 数学模型

取等距差值节点

=-5+

/n ,=0,1,…..,n ,构造n 次lagrange 插值多项式:

当n =10时,十次插值多项式L 10(x )以及函数f (x )的图像可以由Matlab 画出。

1.3 计算方法

f.m :

function f= f( x ) f=1./(1+x.^2); end

Lagrange.m

function y=Lagrange(x0,y0,x); n=length(x0); m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n

if j~=k

p=p*(z-x0(j))/(x0(k)-x0(j)); end end

s=p*y0(k)+s; end y(i)=s;

End

拉格朗日插值的曲线:

x=[-5:1:5];

y=1./(1+x.^2);

x0=[-5:0.001:5];

y0=Lagrange(x,y,x0);

y1=1./(1+x0.^2);

plot(x0,y0,'b')

hold on

plot(x0,y1,'r')

运行这个文件可以得到如下拉格朗日图形曲线:

1.4数值分析

L10(x)的断误差R10(x)=f(x)-L10(x)在区间[-5,5]的两端非常大。例如,L10(4.8)=1.80438,而f(4.8)=0.04160。这种现象称之为龙格现象。不管n取多大,Runge 现象依然存在。

因此,对函数作插值多项式时,必须小心处理,不能认为差值节点取得越多,差值余项就越小。此外,当节点增多时,舍入误差的影响不能低估。为了克服高次插值的不足,应采用分段低次插值。

2复化辛普森求积公式

2.1问题背景

用复化Simpson公式计算定积分的近似值,要求误差限ξ=1/2×10-7,

利用其余项对算法做出步长的事前估计;并将计算结果与精确值进行比较。

2.2数学模型

将积分区间[a,b]分为n等分,h=(b-a)/n,x k=a+ k h,k=0,1,…n。在每个子区间[x k,x k+1]上用Simpson公式可得:

其中x k+1/2=x k+1/2h。

此式即为复化Simpson公式。

设f(x)C4[a,b],由Simpson公式的误差有

,。

则复化Simpson公式的余项为:

复化Simpson公式四阶收敛。

2.3计算方法

程序1(求f(x)的n阶导数):

syms x

f=x*exp(x) %定义函数f(x)

n=input('输入所求导数阶数:')

f2=diff(f,x,n) %求f(x)的n阶导数

程序2:

clc

clear

syms x%定义自变量x

f=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可

f2=inline('(4*exp(x) + x*exp(x))','x') %定义f(x)的四阶导数,输入程序1里求出的f2即可

f3='-(4*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,一边求最大值

e=5*10^(-8) %精度要求值

a=1 %积分下限

b=2 %积分上限

x1=fminbnd(f3,1,2) %求负的四阶导数的最小值点,也就是求四阶导数的最大值点对应的x值

for n=2:1000000 %求等分数n

Rn=-(b-a)/180*((b-a)/(2*n))^4*f2(x1) %计算余项

if abs(Rn)

break% 符合要求时结束

end

end

h=(b-a)/n %求h

Sn1=0

Sn2=0

for k=0:n-1 %求两组连加和

xk=a+k*h

xk1=xk+h/2

Sn1=Sn1+f(xk1)

Sn2=Sn2+f(xk)

end

Sn=h/6*(f(a)+4*Sn1+2*(Sn2-f(a))+f(b)) %因Sn2多加了k=0时的值,故减去f(a)

相关文档
最新文档