数值分析综述报告

数值分析综述报告
数值分析综述报告

淮阴工学院

《数值分析》考试

──基于Matlab的方法综合应用报告

班级:金融1121 姓名:姚婷婷

学号: 1124104129

成绩:

数理学院

2014年6月7日

《数值分析》课程综述报告

前言:

数值分析也称计算方法,它与计算工具的发展密切相关。数值分析是一门为科学计算提供必需的理论基础和有效、实用方法的数学课程,它的任务是研究求解各类数学问题的数值方法和有关的理论。 正文:

第一章 近似计算与误差分析

1、产生误差的原因:①模型误差;②观测误差;③截断误差;④舍入误差。

2、四则运算的误差: ①加减法运算

()()()****x y x y δδδ±=+

②乘法运算

()()()

******

*********xy x y xy xy xy x y x y y y x x x y x y y x δδ

δ-=-+-≤-+-?=+

③ 除法运算:

()()()

()

*****

*******

*

*

**

*

*

*

*

*

**

x x xy x y y y yy xy x y x y x y

yy x x y

y y x yy x y

y x

x y y δδ

δ--=-+-=-+-=

+??

?≈

???

3、科学表示法、有效数字、近似值的精度 任何一个实数都可以表示成如下的形式:

其中:是正整数,是整数,

如果是数的近似值

并且

则称该近似值具有位有效数字(significant digit )。 此时,该近似值的相对误差为

另一方面,若已知

()()

*111

1021n

r x a δ-≤

+

那么,

()()***1112110.10

211

102

r m n n m n x x x x a a a a δ----≤?=+≤

即:*x 至少有n 位有效数字。 例: 3.141592653589793...π= 取其近似值如下: x*=3.14 x *

=3.14159 x*=3.1415 x*=3.141

*

*213

100.314

110.0016...0.00510102

2

x x π--=?-=<=?=?

**516

100.314159

110.0000026...0.00000510102

2

x x π--=?-=<=?=?

*

*314

100.31415

110.000092...0.0001101022

x x π--=?-=<

*

*213

100.3141

110.00059...0.001101022

x x π--=?-=<

第二章 线性方程组

在科学计算中,问题的本身就是求解线性方程组,许多问题的求解需要最后也归结为线性方程组的求解,所以线性方程组的求解是科学计算中最常见的问题。

对于线性方程组的求解一般有两种方法:(1) 直接法:高斯消去法;(2) 间接法:各种迭代法。

(1) 高斯消去法:

①求解思路:先消元,即按一定的规律逐步消去未知量,将方程组Ax B =化为等价的上(或下)三角形方程组;然后进行回代,即由上三角形方程组逐个求出;

②高斯(列、全)主元素消去法,及在消元的每一步选取(列)主元素——列中绝对值最大的元取做主元素,计算步骤:⑴消元过程:按列选主元、行交换、消元计算;⑵回代过程; ③高斯列主元素消去法的MATLAB 实现:。

第三章 解线性方程组的迭代法

通常逆矩阵不易求得,特别是对于大型的线性方程组,需要用迭代法求解。

用迭代法求解线性方程组,要把线性方程组写成等价的形式,右边写为迭代格式,如:

k

b x k A k x b x k A b kx Ax kx b Mx b x E A b x Ax x b Mx x b Ax E E n n ++=

∴++=++=?+=++=++=?+=?-=)(1)()(

2、关于迭代法收敛性的两个重要结论: ①充分必要条件是:矩阵的谱半径

()1

M ρ<;

②充分条件是:矩阵M 的某个算子范数

1

M <。

3、线性方程组的迭代法主要有Jacobian 迭代法,Gauss-Seidel 迭代法。 ①Jacobian 迭代法:

()()(

)

()()

()

11111

k k Ax b D L U x

b

A D L U

Dx L U x b x D L U x D b

M D L U f D b

+----=?

?--=?

=--??=++?=++?=+??=?

②Gauss-Seidel 迭代法:

()(

)

()(

)

()()()11

11

1

k k Ax b D L x Ux b A D L U x D L Ux D L b

M D L U f D L b

--+--=?

?-=+?

=--?=-+-=-?

=- (3.7)

③Jacobian 迭代法与G-S 迭代法比较:

()()()()()()()

()()111111*********

1121112100

00

00000000k k k k k k n nn n n k n k n n k n x x a x x D a a x x x a a x D D b

a x ++++-++----?????? ? ???- ? ???

= ? ??? ? ??? ? ?--??????

??

--?? ?

?? ???++ ?-?? ??? ??

??

?

(3.8)

式(3.7)和 (3.8) 表明:Gauss-Seidel 迭代法在计算第1k

+次迭代的第i 个分量()1k i

x +时,

及时地利用了在此步迭代中得到的新的迭代值:()1k j

x +,

1,2,

,1j i =-,由于第1k +步的迭

代值通常比第k 步的迭代值更接近方程组的精确解,所以,在Jacobian 迭代法和GS 迭代法都收敛的情况下,Gauss-Seidel 迭代法的收敛速度比Jacobian 迭代法的收敛速度高。

例题:用MATLAB 函数normrdn 生成5阶矩阵M 和向量b 分别构造线性方程组Ax b =的Jacobi 迭代格式和G-S 迭代格式,并判断收敛性。

Jacobian 迭代法和GS 迭代法程序如下:

clc;

clear all;

%1、生成M 和b M=normrnd(1,2,5) b=normrnd(1,2,5,1) %Jacobian 迭代法 M1=D\(L+U) f1=D\b

rho=max(abs(eig(M1)));

R=1e-08; %设定的一个收敛标准 switch sign(1-rho) case -1

disp('the Jocobian method is not applicable') otherwise

x(:,1)=normrnd(0,9,5,1); k=1 while k<=50*5

x(:,k+1)=M1*x(:,k)+f1; if norm(x(:,k+1)-x(:,k))>=R k=k+1; else

X=x(:,k+1);

disp('Jacobian 迭代法迭代次数为:') IterN=k %Jacobian 迭代法迭代次数 break end end end

%Causs-Seidel 迭代法 M2=(D-L)\U f2=(D-L)\b

rho=max(abs(eig(M2))); R=1e-08;

switch sign(1-rho) case -1

disp('the auss-seidel method is not applicable')

otherwise

x(:,1)=normrnd(0,9,5,1); k=1 while k<=50*5

x(:,k+1)=M2*x(:,k)+f2; if norm(x(:,k+1)-x(:,k))>=R k=k+1; else

X=x(:,k+1)

disp('Causs-Seidel 迭代法迭代次数为:') IterN=k break end end end

第四章 非线性代数方程(组)的数值解法: 一、二分法:

首先要确定适当的包含根的区间,这可以依据闭区间上连续函数的介值定理来确定,例如该方程:

()320.80.750

f x x x x =--+=

x

f (x )

对于该方程

()120.80.750

f -=-++<

()00.750

f =>

所以该方程至少有一个实根位于区间,图像表明该区间中只含有一个实根;

用*

x 表示方程()0

f x =在区间

[],a b 上的精确解,对于给定的精度要求0ε>,取区间[]

,a b 的中点

2

a b x +=

,并按下式进行判断:

()()()()()***00[,]0[,]

f x x x f x f a x a x f x f b x x b ?=?=??

?

?

(1)

()()0

f x f a <为例,

① 如果

2

b a

ε-≥,没有达到精度要求,令x

b =,并重复(1)的迭代过程;

②如果

2

b a

ε-<,那么,必有

[]

*,,x x x a x ε-

因为

[]*,x a x ∈。即区间[]

,a x 内的任何一点都可以作为方程()0f x =的近根,特别地,可取x 做为近似解。

二、牛顿迭代法:

任取初始值)(],,[0x f y b a x =∈上过点()(,0

0x x f )的切线方程为:))(()(000x x x x f f y -'+=与

x 轴交于点x 1,

)

()

(0001x x x x f f '-

=,过点))(,(1

1

x x f 的切线方程为))(()(1

1

1

x x x x f f y -'+=与x 轴交于点

x 2

)()

(1112x x x x f f '-

= ,……… ,如此下去得牛顿迭代公式:

)

()

(1

x x x

x

n n n

n f f '-

=

+

例题:考虑如下三阶非线性方程组:

()()()222

22222

=2

220

4a x y z a x y a a x a y a z b ì?++??

+=í??-+-+-=??

其中

取适当的迭代初值()000,y ,T

x z ,用Newton 迭代法求方程组的数值解

程序:

%Newton 迭代法求解 x=sym('x','clear'); y=sym('y','clear'); syms z ;

F=[x^2+y^2+a^2*z^2/2-a^2; x+y-a;

(2*x-a)^2+(2*y-a)^2+a^2*(z-b)/4]; Fx=diff(F,x,1); Fy=diff(F,y,1); Fz=diff(F,z,1); DF=[Fx Fy Fz];

F=@(x,y,z)[x^2+y^2+a^2*z^2/2-a^2;x+y-a; (2*x-a)^2+(2*y-a)^2+a^2*(z-b)/4];

%Newton 迭代法求解过程 Fr=10^-10; Er=10^-10; x0=[-a/4;-a;-a/2]; x0=[-a/4;-a;a/2]; k=1; X(:,1)=x0;

while norm(F(X(1,k),X(2,k),X(3,k))-[0;0;0],2)>=Fr tic;

f(:,k)=F(X(1,k),X(2,k),X(3,k)); J=subs(DF,'x',X(1,k)); J=subs(J,'y',X(2,k));

J=subs(J,'z',X(3,k)); X(:,k+1)=X(:,k)-J\f(:,k); t(k)=toc;

if norm((X(:,k+1)-X(:,k)),2)

disp('Newton 迭代法结果为:'); disp(X(:,end)); 运行结果:

Newton 迭代法结果为: 3.4291

0.4658

0.6535

第五章 插值

一、插值:插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。

二、常用差值法:拉格朗日(Lagrange )插值法、牛顿(Newton )插值法 1、拉格朗日(Lagrange )插值法: 拉格朗日插值多项式

()()0

n

k k

k L x L x y ==∑ ⑴简单的证明

因为拉格朗日插值多项式的基函数有如下的性质:

()()()01

,n

j k

k j j k

j

j k

x x x x L x x x j k

x x =≠-=?==?

=≠-?∏

0,1,2,

,k n =

所以拉格朗日插值多项式

()()()0n

k j k j k k k k

j L x L x y L x y y ====∑ 0,1,2,,k n =

满足插值的条件。 插值多项式

()()0n

k k

k L x L x y ==∑

⑶拉格朗日插值法的不足

在实际问题中,观测的数据可能会不断增加,如果用拉格朗日插值公式构造插值多项式,那么,每当增加数据就要重新计算多项式的系数,由此增加许多不必要的计算工作量。

2、(三次)样条(Spline )插值 ⑴插值条件要求

要求所求的插值多项式()S x (三次样条函数) ① 在每个区间[

]1,k k x x -,0,1,2,,k n =,是次数不超过三次的多项式;

②()k k S x y =,0,1,2,

,k n =;

③ ()S x 在区间..上具有二阶连续导数。

例题:在夏季,较大湖泊的水体按深度被跃变层分为上部的变温层和下部的均温层。水体的分层化对环境工程中污染问题的研究具有重要的意义,例如,有机物的分解将导致被跃变层隔离的底部水体中氧急剧减少。按温度随水深的变化曲线()x T T =,跃变层位于水深处:

()00max x bottom

d x T x dx ≤≤??

=????

现有美国普拉特湖(Platte Lake ) 的一组数据:

1. 试利用Lagrange 差值方法求温度随水深(近似)变化函数

()

l T T x =表达式;

2. 试利用三次样条差值方法(应用Matlab 函数csape )求温度随水深(近似)变化函数

()s T T x =表达式;

3. 画出插值函数()l T T x =和()s T T x =曲线,并与原始插值数据图像作比较 程序代码:

函数文件程序:

function Ln = my_Fun(x, XI, YI)

if isa(x, 'sym') == 1;

n = length(XI) - 1;

Ln = 0;

Pn = sym(ones(n + 1, 1));

for k = 1 : n + 1

for i = 1 : n + 1

if i ~= k

Pn(k) = Pn(k)*(x - XI(i))/(XI(k) - XI(i));

else

Pn(k) = Pn(k);

end

end

Ln = Ln + Pn(k)*YI(k);

end

else

n = length(XI) - 1;

L = ones(n + 1, length(x));

Ln = zeros(size(x));

for k = 1 : n + 1

for i = 1 : n + 1

if i ~= k

L(k,:) = L(k,:).*(x - XI(i))./(XI(k) - XI(i));

else

L(k,:) = L(k,:);

end

end

Ln = Ln + L(k, :).*YI(k);

end

End

主文件程序:

clc;

clear all;

close all;

%问题1.用Lagrange差值方法求温度随水深(近似)变化图像

t = sym('t', 'real');

x=[0 2.3 4.9 9.1 13.7 18.3 22.9 27.2];

T=[22.8 22.8 22.8 20.6 13.9 11.7 11.1 11.1];

X=linspace(0,27.2,275);

Ln=my_Fun(X,x,T);

figure(1)

plot(x,T,'r*','markersize',15)

xlabel('深度x');

ylabel('温度T');

title('原始的散点图');

pause(3)

hold on

plot(X,Ln,'b-','linewidth',3);

xlabel('深度x');

ylabel('温度T');

title('Lagrange差值图');

%求出温度随水深(近似)变化函数表达式

I_poly = my_Fun(t, x, T);

I_poly = simple(I_poly)

I_poly = sym2poly(I_poly)

%2.用三次样条差值方法求温度随水深(近似)变化函数表达式

figure(2)

hold on

y=interp1(x,T,X,'spline');

plot(X,y,'b-','linewidth',3); %用三次样条插值方法画出图像

xlabel('深度x');

ylabel('温度T');

title('三次样条法差值图');

PP=csape(x,T,[2,2],[0,0]);

Coefs = PP.coefs

%3.两种差值函数图象比较

figure(3)

plot(X,Ln,'-','color',[1, 0, 0],'LineWidth', 3)

xlabel('深度x');

ylabel('温度T');

title('Lagrange差值图');

hold on

pause(3)

fnplt(PP,'b',3,[0,28]) %函数作图

xlabel('深度x');

ylabel('温度T');

title('三次样条法差值图');

pause(3)

plot(x,T,'--','linewidth',3,'markersize',10)

运行结果:

I_poly =

(11156832321404503197312500000*t^7 - 942692507666801544174224450000*t^6 + 29858157926737187739430003070000*t^5 - 433725749060135044183186809635000*t^4 + 2850751947133625442244870404829250*t^3 -

8285950923799759686915051372346805*t^2 + 8477820147617239232740036583612328*t + 512657632901869980094703083834211328)/22484983899204823688364170343605760

I_poly =

Columns 1 through 6

0.0000 -0.0000 0.0013 -0.0193 0.1268 -0.3685 Columns 7 through 8 0.3770 22.8000 Coefs =

0.0022 -0.0000 -0.0115 22.8000 -0.0092 0.0150 0.0230 22.8000 -0.0114 -0.0565 -0.0850 22.8000 0.0297 -0.2004 -1.1640 20.6000 -0.0153 0.2099 -1.1200 13.9000 0.0017 -0.0014 -0.1605 11.7000 -0.0017 0.0223 -0.0640 11.1000

图示如下:

深度x

温度T

原始的散点图

深度x

温度T

三次样条法差值图

深度x

温度T

Lagrange 差值图

深度x

温度T

三次样条法差值对比图

第六章 最小二乘拟合与最佳逼近 一、最小二乘拟合

①加权最小二乘法逼近准则:

()min ,P d f P ∈P

=min

P ∈P

()()1

20N

i i i i f x P x ρ=????-??????

②最小二乘逼近多项式

()

*n P x 必须满足如下必要条件:

1

220T T n a

a f a a

a

????Φ?? ??

??Φ

?

??==-+= ??

? ??Φ ? ????

即满足法方程组:

()1

T T T T a f

a f

??????-=?=

试利用最小二乘法求满足

()()()()1

22*

2

00.5min n N n k n k P x k f P f x P x m

=??-=-≤????

∑ 即误差不超过0.5m 的最低次数的拟合多项式()*n P x ,写出该多项式的表达式;画出数据散点图和该多项式曲线.

程序:

clc; clear all ; close all ;

x=linspace(0,12,12);

x=[0 200 1000 2100 3500 5000 6800 7500 9000 11200 12000]; h=[1.64 1.58 1.68 1.84 1.58 0.86 0.39 0.31 0.39 0.77 0.86]; plot(x,h,'*','markersize',8) %画出给出数据的散点图 xlabel('水平距离x'); ylabel('高度h');

title('岩层断面水平距离x 和高度h 的散点图'); figure(1)

%1.最小二乘法拟合 n=3;

[P, S ] = polyfit(x, h, n) Pm = polyval(P, x)

R = sqrt(sum((h - Pm).^2)) %误差

t = linspace(x(1), x(end), 12); Poly = polyval(P, t); figure(2)

plot(x, h, 'ro', t, Poly, 'LineWidth', 3, 'markersize', 8) set(gca,'FontSize',18)

legend('The Data', 'The Fitting Curve', 1)

title('Curve Fitting by Least Square Approximation', 'fontsize', 18)

水平距离x

高度h

岩层断面水平距离x 和高度h 的散点图

Curve Fitting by Least Square Approximation

第七章 微积分的数值方法 一、数值微分

如果给定函数 的关系式比较复杂或者 未知,而仅仅知道在1n +个相异点k

x ,0,1,,k

n

=处的函数值,那么,我们可以利用函数的插值多项式的导数作为函数导数的近似值

()()()()

0n

n k k k f x L x l x f x =≈=∑

因而有

()()n

f x L x ''≈

这里需要说明一点的是,尽管和的函数值可能相差不多,但是它们的导数有可能相差很大。 二、数值积分

数值积分方法最大的优点是将复杂的函数积分转化为相对简单的加、减、乘、除运算。

对于给定的函数,如果 的函数关系式比较复杂或.未知,而仅仅知道该函数在1n +个点处的函数值k y ,

那么可以利用函数的插值多项式的积分作为函数在

[,]a b 上的定积分的近似值。

1、Newton-Cotes 求积公式 根据Lagrange 插值多项式

()()()

0n

n k k k L x l x f x ==∑

有 ()()()()0b

a

b

n a

n

b

k k a k I f x dx

L x dx

l x dx f x ==≈??=??????∑?

()b

k k a

A l x dx

=? 0k n ≤≤

得Newton-Cotes 求积公式()()()()()

00

b

b

n a

a

b

n

k k k a

n

k k k f x dx L x dx

f x l x dx

A f x ==≈==?

?∑?∑

特别地,当取插值节点为,0,1,,k x a kh k n

b a h n

=+=-=

时有

①两点公式(梯形公式):

()()()

()()0

2b

b

n a

a

n

k k k f x dx L x dx

A f x b a

f a f b =≈=-??=

+?

??

?∑

②三点公式(Simpson 公式):()()()()462b

b

n a

a

f x dx L x dx

b a a b f a f f b ≈?

?-+??

=

++ ???????

?

?

0,12内所围⑴试利用复化的梯形求积法求该组数据所在曲线与基准线(x轴)在范围[]

成图形面积.画出数据散点图和图形的示意图.

0,9内所⑵试利用复化的Simpson求积法求该组数据所在曲线与基准线(x轴)在范围[]

围成图形面积.画出数据散点图和图形的示意图.

解答如下:

程序:

% 题目给出的数据

XI = [0 0.20 1.00 2.10 3.50 5.00 6.80 7.50 9.00 11.2 12.00];

YI = -[1.64 1.58 1.68 1.84 1.58 0.86 0.39 0.31 0.39 0.77 0.86];

n = length(XI) - 1; %此时n=10

M = 60;

x = linspace(XI(1), XI(end), M +1); %设置线性空间

% 问题1.1

T1 = 0; %初值

%将图像分成若干个小区间,在每个区间内,求小梯形的面积,并累加起来,就是题目所要求的面积

for k = 2 : n + 1

T1 = T1 + (YI(k) + YI(k-1))*(XI(k) - XI(k-1))/2;

end

disp('复化的梯形求积法求得的图形面积:')

T_Trape = T1 %累加后的图形面积

figure(1) %画出函数图像

set(gca,'FontSize', 20)

patch([XI(1), XI, XI(end)], [0, YI, 0], [0.5 1 0.5]) %颜色的填充

hold on

plot(XI, YI, 'o-', XI, 0*XI, 'k', 'LineWidth', 3, 'markersize', 8)

title('复化的梯形求积法求围成图形面积')

xlabel('水平距离x')

ylabel('深度y')

运行结果:

复化的梯形求积法求得的图形面积:

T_Trape =

-11.6090

图像:

复化的梯形求积法求围成图形面积

水平距离x

深度y

程序:

函数M 文件:

function Ln = Lagrange_Fun_01(x, XI, YI) if isa(x, 'sym') == 1; n = length(XI) - 1; Ln = 0;

Pn = sym(ones(n + 1, 1)); for k = 1 : n + 1 for i = 1 : n + 1 if i ~= k

Pn(k) = Pn(k)*(x - XI(i))/(XI(k) - XI(i)); else

Pn(k) = Pn(k); end end

Ln = Ln + Pn(k)*YI(k); end else

n = length(XI) - 1;

L = ones(n + 1, length(x)); Ln = zeros(size(x)); for k = 1 : n + 1 for i = 1 : n + 1 if i ~= k

L(k,:) = L(k,:).*(x - XI(i))./(XI(k) - XI(i)); else

L(k,:) = L(k,:); end end

Ln = Ln + L(k, :).*YI(k); end end 主程序:

% 问题1.2 和 1.3

%问题3是问题2的延伸 S2 = 0;

%Simpson 复化求积法,应用同样的面积累加,得到最终的图形面积 for k = 1: 2: n - 1

S2 = S2 + (XI(k+2) - XI(k))*(YI(k) + 4*YI(k+1) + YI(k+2))/6; X(k, :) = linspace(XI(k), XI(k+2), 20);

Y(k, :) = Lagrange_Fun_01(X(k,:), XI(k : k+2), YI(k : k+2)); end

disp('Simpson 复化求积法求得的图形面积:') S_Simpson = S2 %Simpson 复化求积法求得的面积 figure(2)

set(gca,'FontSize', 20) hold on

for k = 1: 2 : n-1

patch([XI(k), X(k,:), XI(k +2)], [0, Y(k, :), 0], [0.5 1 0.5]) plot(X(k, :), Y(k, :), 'LineWidth', 3) end

plot(XI, YI, 'o', XI, 0*XI, 'k', 'LineWidth', 3, 'markersize', 8) title('复化的Simpson 求积法求围成图形面积') xlabel('水平距离x') ylabel('深度y') 运行结果:

Simpson 复化求积法求得的图形面积: S_Simpson = -11.9128 图像:

复化的Simpson 求积法求围成图形面积水平距离x

深度y

第八章 微分方程(组)初值问题数值方法

引言:微分方程(组)是科学研究和工程应用中最常用的数学模型之一。但是基绝大多数的常微分方程和常微分方程组得不到解析解和实际应用中往往只需要知道常微分方程(组)的解在某些点处的函数值这两点原因,绝大多数在实际中遇到的常微分方程和常微分方程组得

不到“解析解”,我们可以采用下面将介绍的常微分方程(组)的初值问题的数值解法,就可以达到这一目的。

一、 Euler 方法——最简单的数值解法 1、Euler 法 假设要求在点

0k t t kh

=+,,1,2,,k n =

处初值问题(4)的解的近似值。首先对式(4)的两端积分,得

()()()()11

1,k k k k t t k k t t dy dt y t y t f t y t dt

dt +++=-=??

对于该式的右边,如果被积函数用积分下限处的函数值代替被积函数作积分,则有

()()()()()()11,,k k

t k k t k k k y t y t f t y t dt

y t hf t y t ++=+??≈+??

?

进而得到下式给出的递推算法—Euler 方法

()

()100

,1,2,,k k k k y y hf t y k n

y t y +=+==

2、Euler 方法的改进

改进的Euler 方法Euler 方法的精度高,其原因在于: 在推导Euler 方法时,我们是用待求解函数在一点处的变化率

()()

,k k f t y t (1)

代替在区间上的平均变化率;

而在推导改进的Euler 方法时,我们是用待求解函数在两点处变化率的平均值

()()()()111

,,2k k k k f t y t f t y t ++??

+?

?(2)

代替在区间上的平均变化率;

显然,通常式(2)比式(1)更接近于在区间上的平均变化率。由此,人们受到启发:适当地选取区间上函数多个点处的变化率,用它们加权平均值代替在区间上的平均变化率,近似解的精度应更高。

二、 Runge —Kutta 法:①二阶的Runge —Kutta 法②三阶的Runge —Kutta 法③四阶的

Runge —Kutta 法

李庆扬数值分析第五版习题复习资料清华大学出版社

第一章 绪论 1.设0x >,x 的相对误差为δ,求ln x 的误差。 解:近似值* x 的相对误差为* **** r e x x e x x δ-= = = 而ln x 的误差为()1 ln *ln *ln ** e x x x e x =-≈ 进而有(ln *)x εδ≈ 2.设x 的相对误差为2%,求n x 的相对误差。 解:设()n f x x =,则函数的条件数为'() | |() p xf x C f x = 又1 '()n f x nx -=Q , 1 ||n p x nx C n n -?∴== 又((*))(*)r p r x n C x εε≈?Q 且(*)r e x 为2 ((*))0.02n r x n ε∴≈ 3.下列各数都是经过四舍五入得到的近似数,即误差限不超过最后一位的半个单位,试指 出它们是几位有效数字:*1 1.1021x =,*20.031x =, *3385.6x =, *456.430x =,* 57 1.0.x =? 解:* 1 1.1021x =是五位有效数字; *20.031x =是二位有效数字; *3385.6x =是四位有效数字; *456.430x =是五位有效数字; *57 1.0.x =?是二位有效数字。 4.利用公式(2.3)求下列各近似值的误差限:(1) ***124x x x ++,(2) ***123x x x ,(3) **24/x x . 其中**** 1234,,,x x x x 均为第3题所给的数。 解:

*4 1* 3 2* 13* 3 4* 1 51()1021()1021()1021()1021()102 x x x x x εεεεε-----=?=?=?=?=? *** 124***1244333 (1)()()()() 1111010102221.0510x x x x x x εεεε----++=++=?+?+?=? *** 123*********123231132143 (2)() ()()() 111 1.10210.031100.031385.610 1.1021385.610222 0.215 x x x x x x x x x x x x εεεε---=++=???+???+???≈ ** 24**** 24422 *4 33 5 (3)(/) ()() 11 0.0311056.430102256.43056.430 10x x x x x x x εεε---+≈ ??+??= ?= 5计算球体积要使相对误差限为1,问度量半径R 时允许的相对误差限是多少? 解:球体体积为343 V R π= 则何种函数的条件数为 2 3'4343 p R V R R C V R ππ===g g (*)(*)3(*)r p r r V C R R εεε∴≈=g 又(*)1r V ε=Q

数值分析试题及答案汇总

数值分析试题 一、 填空题(2 0×2′) 1. ?? ????-=? ?????-=32,1223X A 设x =是精确值x *=的近似值,则x 有 2 位 有效数字。 2. 若f (x )=x 7-x 3+1,则f [20,21,22,23,24,25,26,27]= 1 , f [20,21,22,23,24,25,26,27,28]= 0 。 3. 设,‖A ‖∞=___5 ____,‖X ‖∞=__ 3_____, ‖AX ‖∞≤_15_ __。 4. 非线性方程f (x )=0的迭代函数x =?(x )在有解区间满足 |?’(x )| <1 ,则使用该迭代 函数的迭代解法一定是局部收敛的。 5. 区间[a ,b ]上的三次样条插值函数S (x )在[a ,b ]上具有直到 2 阶的连续导数。 6. 当插值节点为等距分布时,若所求节点靠近首节点,应该选用等距节点下牛顿差商 公式的 前插公式 ,若所求节点靠近尾节点,应该选用等距节点下牛顿差商公式的 后插公式 ;如果要估计结果的舍入误差,应该选用插值公式中的 拉格朗日插值公式 。 7. 拉格朗日插值公式中f (x i )的系数a i (x )的特点是:=∑=n i i x a 0)( 1 ;所以当 系数a i (x )满足 a i (x )>1 ,计算时不会放大f (x i )的误差。 8. 要使 20的近似值的相对误差小于%,至少要取 4 位有效数字。 9. 对任意初始向量X (0)及任意向量g ,线性方程组的迭代公式x (k +1)=Bx (k )+g (k =0,1,…)收 敛于方程组的精确解x *的充分必要条件是 ?(B)<1 。 10. 由下列数据所确定的插值多项式的次数最高是 5 。 11. 牛顿下山法的下山条件为 |f(xn+1)|<|f(xn)| 。 12. 线性方程组的松弛迭代法是通过逐渐减少残差r i (i =0,1,…,n )来实现的,其中的残差 r i = (b i -a i1x 1-a i2x 2-…-a in x n )/a ii ,(i =0,1,…,n )。 13. 在非线性方程f (x )=0使用各种切线法迭代求解时,若在迭代区间存在唯一解,且f (x )

数值计算方法学习心得

数值计算方法学习心得 ------一个代码的方法是很重要,一个算法的思想也很重要,但 在我看来,更重要的是解决问题的方法,就像爱因斯坦说的内容比 思维本身更重要。 我上去讲的那次其实做了挺充分的准备,程序的运行,pdf文档,算法公式的推导,程序伪代码,不过有一点缺陷的地方,很多细节 没有讲的很清楚吧,下来之后也是更清楚了这个问题。 然后一学期下来,总的来说,看其他同学的分享,我也学习到 许多东西,并非只是代码的方法,更多的是章胜同学的口才,攀忠 的排版,小冯的深入挖掘…都是对我而言比算法更加值得珍惜的东西,又骄傲地回想一下,曾同为一个项目组的我们也更加感到做项 目对自己发展的巨大帮助了。 同时从这些次的实验中我发现以前学到的很多知识都非常有用。 比如说,以前做项目的时候,项目导师一直要求对于要上传的 文件尽量用pdf格式,不管是ppt还是文档,这便算是对产权的一种 保护。 再比如代码分享,最基础的要求便是——其他人拿到你的代码 也能运行出来,其次是代码分享的规范性,像我们可以用轻量级Ubuntu Pastebin,以前做过一小段时间acm,集训队里对于代码的分享都是推荐用这个,像数值计算实验我觉得用这个也差不多了,其 次项目级代码还是推荐github(被微软收购了),它的又是可能更 多在于个人代码平台的搭建,当然像readme文档及必要的一些数据 集放在上面都更方便一些。

然后在实验中,发现debug能力的重要性,对于代码错误点的 正确分析,以及一些与他人交流的“正规”途径,讨论算法可能出 错的地方以及要注意的细节等,比如acm比赛都是以三人为一小组,讨论过后,讲了一遍会发现自己对算法理解更加深刻。 然后学习算法,做项目做算法一般的正常流程是看论文,尽量 看英文文献,一般就是第一手资料,然后根据论文对算法的描述, 就是如同课上的流程一样,对算法进一步理解,然后进行复现,最 后就是尝试自己改进。比如知网查询牛顿法相关论文,会找到大量 可以参考的文献。 最后的最后,想说一下,计算机专业的同学看这个数值分析, 不一定行云流水,但肯定不至于看不懂写不出来,所以我们还是要 提高自己的核心竞争力,就是利用我们的优势,对于这种算法方面 的编程,至少比他们用的更加熟练,至少面对一个问题,我们能思 考出对应问题的最佳算法是哪一个更合适解决问题。 附记: 对课程的一些小建议: 1. debug的能力不容忽视,比如给一个关于代码实现已知错误的代码给同学们,让同学们自己思考一下,然后分享各自的debug方法,一步一步的去修改代码,最后集全班的力量完成代码的debug,这往往更能提升同学们的代码能力。 2. 课堂上的效率其实是有点低的,可能会给学生带来一些负反馈,降低学习热情。 3. 总的来说还是从这门课程中学到许多东西。 数值分析学习心得体会

数值分析实验报告176453

实验报告 插值法 数学实验室 数值逼近 算法设计 级 ____________________________ 号 ____________________________ 名 _____________________________ 实验项目名称 实验室 所属课程名称 实验类型 实验日期

实验概述: 【实验目的及要求】 本次实验的目的是熟练《数值分析》第二章“插值法”的相关内容,掌握三种插 多项式插值,三次样条插值,拉格朗日插值,并比较三种插值方法的 优劣。 本次试验要求编写牛顿多项式插值,三次样条插值,拉格朗日插值的程序编码,并 去实现。 【实验原理】 《数值分析》第二章“插值法”的相关内容,包括:牛顿多项式插值,三次样条插值, 拉格朗日 插值的相应算法和相关性质。 【实验环境】(使用的软硬件) 软件: MATLAB 2012a 硬件: 电脑型号:联想 Lenovo 昭阳E46A 笔记本电脑 操作系统: Win dows 8专业版 处理器:In tel ( R Core ( TM i3 CPU M 350 @2.27GHz 2.27GHz 实验内容: 【实验方案设计】 第一步,将书上关于三种插值方法的内容转化成程序语言,用 MATLA B 现; 第二步,分别用牛顿多项式插值,三次样条插值,拉格朗日插值求解不同的问题。 【实验过程】(实验步骤、记录、数据、分析) 实验的主要步骤是:首先分析问题,根据分析设计 MATLA 程序,利用程序算出 问题答案,分析所得答案结果,再得出最后结论。 实验一: 已知函数在下列各点的值为 试用4次牛顿插值多项式 P 4( x )及三次样条函数 S ( x )(自然边界条件)对数据进行插值。 用图给出{( X i , y i ), X i =0.2+0.08i , i=0 , 1, 11, 10 } , P 4 ( x )及 S ( x )。 值方法:牛顿 在MATLAB 件中

清华大学高等数值计算(李津)实践题目一(共轭梯度CG法,Lanczos算法与MINRES算法)

高等数值计算实践题目一 1. 实践目的 本次计算实践主要是在掌握共轭梯度法,Lanczos 算法与MINRES 算法的基础上,进一步探讨这3种算法的数值性质,主要研究特征值特征向量对算法收敛性的影响。 2. 实践过程 (一)生成矩阵 (1)作5个100阶对角阵i D 如下: 1D 对角元:1,1,...,20,1+0.1(-20),21,...,100j j d j d j j ==== 2D 对角元:1,1,...,20,1+(-20),21,...,100j j d j d j j ==== 3D 对角元:,1,...,80,81,81,...,100j j d j j d j ==== 4D 对角元:,1,...,40,41,41,...,60,41+(60),61,...,100j j j d j j d j d j j =====-= 5D 对角元:,1,...,100j d j j == 记i D 的最大模特征值和最小模特征值分别为1i λ和i n λ,则i D 特征值分布有如下特点: 1D 的特征值有较多接近于i n λ,并且1/i i n λλ较小, 2D 的特征值有较多接近于i n λ,并且1/i i n λλ较大, 3D 的特征值有较多接近于1i λ,并且1/i i n λλ较大, 4D 的特征值有较多接近于中间模特征值,并且1/i i n λλ较大, 5D 的特征值均匀分布,并且1/i i n λλ较大 (2)随机生成10个100阶矩阵j M : (100(100))j M fix rand = 并作它们的QR 分解,得j Q 和j R ,这样可得50个对称的矩阵T ij j i j A Q DQ =,其中i D 的对角元就是ij A 的特征值,若它们都大于0,则ij A 正定,j Q 的列就是相应的特征向量。结合(1)可知,ij A 都是对称正定阵。

数值分析试卷及其答案2

1、(本题5分)试确定7 22作为π的近似值具有几位有效数字,并确定其相对误差限。 解 因为 7 22=3.142857…=1103142857.0-? π=3.141592… 所以 3 12 10 2 110 21005.0001264.07 22--?= ?= <=- π (2分) 这里,3,21,0=-=+-=n n m m 由有效数字的定义可知7 22作为π的近似值具有3位有效数字。 (1分) 而相对误差限 3 10 2 10005.00004138.0001264.07 22-?= <≈= -= π π πε r (2分) 2、(本题6分)用改进平方根法解方程组:???? ? ??=????? ??????? ??--654131321 112321x x x ; 解 设???? ? ? ?????? ? ?????? ??===????? ? ?--11 1 11113 1321 11232312132 1 32 31 21 l l l d d d l l l LDL A T 由矩阵乘法得: 5 7,21,21527,25,2323121321- == - == -==l l l d d d (3分) 由y D x L b Ly T 1 ,-==解得 T T x y )9 23,97,910( ,)5 63, 7,4(== (3分) 3、(本题6分)给定线性方程组??? ? ? ??=++-=+-+=-+-=-+17722238231138751043214321 321431x x x x x x x x x x x x x x 1)写出Jacoib 迭代格式和Gauss-Seidel 迭代格式; 2)考查Jacoib 迭代格式和Gauss-Seidel 迭代格式的敛散性; 解 1)Jacoib 迭代格式为

数值分析实验报告1

实验一误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中ε(1.1)和(1.221,,,a a 的输出b ”和“poly ε。 (1(2 (3)写成展 关于α solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。 实验过程: 程序: a=poly(1:20); rr=roots(a); forn=2:21 n form=1:9 ess=10^(-6-m);

ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); -6-m s=max(abs(r-rr)) end end 利用符号函数:(思考题一)a=poly(1:20); y=poly2sym(a); rr=solve(y) n

很容易的得出对一个多次的代数多项式的其中某一项进行很小的扰动,对其多项式的根会有一定的扰动的,所以对于这类病态问题可以借助于MATLAB来进行问题的分析。 学号:06450210 姓名:万轩 实验二插值法

最新数值分析历年考题

数值分析A 试题 2007.1 第一部分:填空题10?5 1.设3112A ?? = ??? ,则A ∞=___________ 2()cond A =___________ 2.将4111A ??= ??? 分解成T A LL =,则对角元为正的下三角阵L =___________ ,请用线性最小二乘拟合方法确定拟合函数()bx f x ae =中的参数:a = ___________ b =___________ 4.方程13 cos 2044x x π--=在[0,1]上有 个根,若初值取00.95x =,迭代方法 113 cos 244 k k x x π+=-的收敛阶是 5.解方程2 210x x -+=的Newton 迭代方法为___________,其收敛阶为___________ 6.设()s x = 323 2 323,[0,1]31,[1,2] ax x x x x x bx x +-+∈--+∈为三次样条函数,则a = ___________ b =___________ 7.要想求积公式: 1 121 ()(()f x dx A f f x -≈+? 的代数精度尽可能高,参数1A = ___________ 2x =___________此时其代数精度为:___________ 8.用线性多步法2121(0.50.5)n n n n n y y h f f f ++++-=-+来求解初值问题 00'(,),(),y f x y y x y ==其中(,)n n n f f x y =,该方法的局部截断误差为___________,设 ,0,f y μμ=?其绝对稳定性空间是___________ 9.用线性多步法 2121()n n n n n y ay by h f f ++++-+=-来求解初值问题 00'(,),(),y f x y y x y ==其中(,)n n n f f x y =,希望该方法的阶尽可能高,那么a = ___________ b =___________,此时该方法是几阶的:___________

数值分析心得体会

数值分析心得体会 篇一:学习数值分析的经验 数值分析实验的经验、感受、收获、建议班级:计算131 学号:XX014302 姓名:曾欢欢 数值分析实验主要就是学习MATLAB的使用以及对数值分析类容的应用,可以使学生更加理解和记忆数值分析学得类容,也巩固了MATLAB的学习,有利于以后这个软件我们的使用。在做实验中,我们需要具备较好的编程能力、明白MATLAB软件的使用以及掌握数值分析的思想,才能让我们独立自主的完成该作业,如果是上述能力有限的同学,需要借助MATLAB的书以及网络来完成实验。数值分析实验对于我来说还是有一定难度,所以我课下先复习了MATLAB的使用方法以及编写程序的基本类容,借助互联网和同学老师资源完成了数值分析得实验的内容。在实验书写中,我复习了各种知识,所以我认为这门课程是有必要且是有用处的,特别是需要处理大量实验数据的人员,很有必要深入了解学习它,这样在以后的工作学习里面就减少了很多计算问题也提高了实验结果的精确度。 学习数值分析的经验、感受、收获、建议数值分析的内容包括插值与逼近,数值微分与数值积分,非线性方程与线性方程组的数值解法,矩阵的特征值与特征向量计算,常微分方程数值解等。

首先我们必须明白数值分析的用途。通常所学的其他数学类学科都是由公式定理开始,从研究他们的定义,性质再到证明与应用。但实际上,尤其是工程,物理,化学等其它具体的学科。往往我们拿到 手的只是通过实验得到的数据。如果是验证性试验,需要代回到公式 进行分析,验证。但往往更多面对的是研究性或试探性试验,无具体 公式定理可代。那就必须通过插值,拟合等计算方法进行数据处理以得到一个相对可用的一般公式。还有许多计算公式理论上非常复杂,在工程中不实用,所以必须根据实际情况把它转化成多项式近似表 示。学习数值分析,不应盲目记公式,因为公事通常很长且很乏味。其次,应从公式所面临的问题以及用途出发。比如插值方法,就 是就是把实验所得的数据看成是公式的解,由这些解反推出一个近似公式,可以具有局部一般性。再比如说拟合,在插值的基础上考虑实 验误差,通过拟合能将误差尽可能缩小,之后目的也是得到一个具有 一定条件下的一般性的公式。。建议学习本门课程要结合知识与实际,比如在物理实验里面很多

数值分析实验报告模板

数值分析实验报告模板 篇一:数值分析实验报告(一)(完整) 数值分析实验报告 1 2 3 4 5 篇二:数值分析实验报告 实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。利用二分法求解给定非线性方程的根,在给定的范围内,假设f(x,y)在[a,b]上连续,f(a)xf(b) 直接影响迭代的次数甚至迭代的收敛与发散。即若x0 偏离所求根较远,Newton法可能发散的结论。并且本实验中还利用利用改进的Newton法求解同样的方程,且将结果与Newton法的结果比较分析。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。掌握二分法的原理,验证二分法,在选对有根区间的前提下,必是收

敛,但精度不够。熟悉Matlab语言编程,学习编程要点。体会Newton使用时的优点,和局部收敛性,而在初值选取不当时,会发散。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b) Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式xk?1?xk?f(xk) f'(xk) 产生逼近解x*的迭代数列{xk},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 xk?1?xk?rf(xk) 'f(xk) 其中r为要求的方程的根的重数,这就是改进的Newton 法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x);

数值分析试题及答案

一、单项选择题(每小题3分,共15分) 1. 3.142和3.141分别作为π的近似数具有( )和( )位有效数字. A .4和3 B .3和2 C .3和4 D .4和4 2. 已知求积公式 ()()2 1 121 1()(2)636f x dx f Af f ≈ ++? ,则A =( ) A . 16 B .13 C .12 D .2 3 3. 通过点 ()()0011,,,x y x y 的拉格朗日插值基函数()()01,l x l x 满足( ) A . ()00l x =0, ()110l x = B . ()00l x =0, ()111l x = C .() 00l x =1,()111 l x = D . () 00l x =1,()111 l x = 4. 设求方程 ()0 f x =的根的牛顿法收敛,则它具有( )敛速。 A .超线性 B .平方 C .线性 D .三次 5. 用列主元消元法解线性方程组 1231231 220223332 x x x x x x x x ++=?? ++=??--=? 作第一次消元后得到的第3个方程( ). A . 232 x x -+= B .232 1.5 3.5 x x -+= C . 2323 x x -+= D . 230.5 1.5 x x -=- 单项选择题答案 1.A 2.D 3.D 4.C 5.B 得 分 评卷人 二、填空题(每小题3分,共15分)

1. 设T X )4,3,2(-=, 则=1||||X ,2||||X = . 2. 一阶均差 ()01,f x x = 3. 已知3n =时,科茨系数()()() 33301213,88C C C ===,那么 () 33C = 4. 因为方程()420 x f x x =-+=在区间 []1,2上满足 ,所以()0f x =在区间 内有根。 5. 取步长0.1h =,用欧拉法解初值问题 ()211y y y x y ?'=+?? ?=? 的计算公式 . 填空题答案 1. 9和29 2. ()() 0101 f x f x x x -- 3. 1 8 4. ()()120 f f < 5. ()12 00.1 1.1,0,1,210.11k k y y k k y +???? ?=+? ?=+???? =??L 得 分 评卷人 三、计算题(每题15分,共60分) 1. 已知函数 21 1y x = +的一组数据: 求分 段线性插值函数,并计算 () 1.5f 的近似值. 计算题1.答案 1. 解 []0,1x ∈, ()1010.510.50110x x L x x --=?+?=---% []1,2x ∈,()210.50.20.30.81221x x L x x --=?+?=-+--%

有限单元法读书报告

有限单元法读书报告 摘要:有限单元法以变分原理和加权余量法为基础,其基本求解思想是把计算域划分为有限个互不重叠的单元,在每个单元内,选择一些合适的节点作为求解函数的插值点,将微分方程中的变量改写成由各变量或其导数的节点值与所选用的插值函数组成的线性表达式,借助于变分原理或加权余量法,将微分方程离散求解。采用不同的权函数和插值函数形式,便构成不同的有限元方法。 关键词:有限单元法;插值函数;网格划分;实例分析 1 有限单元法概述 1.1 有限单元法的简介 有限单元法[1]是应用局部的近似解来建立整个定义域的解的一种方法。先把注意力集中在单个单元上,进行上述所谓的单元分析。基本前提是每一单元要尽可能小,以致其边界值在整个边界上的变化也是小的。这样,边界条件就能取某一在结点间插值的光滑函数来近似,在单元内也容易建立简单的近似解。因此,比起经典的近似法,有限元法具有明显的优越性。比如经典的Ritz法,要求选取一个函数来近似描述整个求解区域中的位移,并同时满足边界条件,这是相当困难的。而有限元法采用分块近似,只需对一个单元选择一个近似位移函数,且不必考虑位移边界条件,只须考虑单元之间位移的连续性即可。对于具有复杂几何形状或材料、荷载有突变的实际结构,不仅处理简单,而且合理适宜。 1.2 有限单元法的基本方法简介 有限单元法,是一种有效解决数学问题的解题方法。在有限元方法中,把计算域离散剖分为有限个互不重叠且相互连接的单元,在每个单元内选择基函数,用单元基函数的线形组合来逼近单元中的真解,整个计算域上总体的基函数可以看为由每个单元基函数组成的,则整个计算域内的解可以看作是由所有单元上的近似解构成。在河道数值模拟中[2],常见的有限元计算方法是由变分法和加权余量法发展而来的里兹法和伽辽金法、最小二乘法等。根据所采用的权函数和插值函数的不同,有限元方法也分为多种计算格式。从权函数的选择来说,有配置法、矩量法、最小二乘法和伽辽金法,从计算单元网格的形状来划分,有三角形网格、四边形网格和多边形网格,从插值函数的精度来划分,又分为线性插值函数和高次插值函数等。不同的组合同样构成不同的有限元计算格式。对于权函数,伽辽金(Galerkin)法是将权函数取为逼近函数中的基函数;最小二乘法是令权函

数值分析实验报告

实验一 误差分析 实验(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p Λ 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对()中19x 的系数作一个小的扰动。我们希望比较()和()根的差别,从而分析方程()的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a Λ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a Λ 的全部根;而函数 poly(v)b = 的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve = ))20:1((ve poly roots +

清华大学贾仲孝老师高等数值分析报告第二次实验

高等数值分析第二次实验作业

T1.构造例子特征值全部在右半平面时, 观察基本的Arnoldi 方法和GMRES 方法的数值性态, 和相应重新启动算法的收敛性. Answer: (1) 构造特征值均在右半平面的矩阵A : 根据实Schur 分解,构造对角矩阵D 由n 个块形成,每个对角块具有如下形式,对应一对特 征值i i i αβ± i i i i i S αββα-?? = ??? 这样D=diag(S 1,S 2,S 3……S n )矩阵的特征值均分布在右半平面。生成矩阵A=U T AU ,其中U 为 正交阵,则A 矩阵的特征值也均在右半平面。不妨构造A 如下所示: 2211112222 /2/2/2/2N N A n n n n ?-?? ? ? ?- ? = ? ? ? - ? ?? ? 由于选择初值与右端项:x0=zeros(2*N,1);b=ones(2*N,1); 则生成矩阵A 的过程代码如下所示: N=500 %生成A 为2N 阶 A=zeros(2*N); for a=1:N A(2*a-1,2*a-1)=a; A(2*a-1,2*a)=-a; A(2*a,2*a-1)=a; A(2*a,2*a)=a; end U = orth(rand(2*N,2*N)); A1 = U'*A*U; (2) 观察基本的Arnoldi 和GMRES 方法 编写基本的Arnoldi 函数与基本GMRES 函数,具体代码见附录。 function [x,rm,flag]=Arnoldi(A,b,x0,tol,m) function [x,rm,flag]=GMRES(A,b,x0,tol,m) 输入:A 为方程组系数矩阵,b 为右端项,x0为初值,tol 为停机准则,m 为人为限制的最大步数。 输出:x 为方程的解,rm 为残差向量,flag 为解是否收敛的标志。 外程序如下所示: e=1e-6; m=700;

数值分析整理版试题及答案

数值分析整理版试题及答案

例1、 已知函数表 x -1 1 2 ()f x -3 0 4 求()f x 的Lagrange 二次插值多项式和Newton 二次插值多项式。 解: (1)k x -1 1 2 k y -3 0 4 插值基函数分别为 ()()()()()()()()()() 1200102121()1211126 x x x x x x l x x x x x x x ----= ==-------- ()()()()()()()() ()()021******* ()1211122x x x x x x l x x x x x x x --+-= ==-+---+- ()()()()()()()()()()0122021111 ()1121213 x x x x x x l x x x x x x x --+-= ==-+--+- 故所求二次拉格朗日插值多项式为 () ()()()()()()()()()()2 20 2()11131201241162314 121123537623k k k L x y l x x x x x x x x x x x x x ==?? =-? --+?-+-+?+-????=---++-=+-∑ (2)一阶均差、二阶均差分别为

[]()()[]()()[][][]010********* 011201202303 ,11204 ,412 3 4,,5 2,,126 f x f x f x x x x f x f x f x x x x f x x f x x f x x x x x ---===-----= = =----=== --- k x ()k f x 一阶 二阶 -1 -3 1 0 3/ 2 2 4 4 5/6 故所求Newton 二次插值多项式为 ()()[]()[]()() ()()()20010012012,,,35 311126537623P x f x f x x x x f x x x x x x x x x x x x =+-+--=-+ +++-=+- 例2、 设2 ()32f x x x =++,[0,1]x ∈,试求()f x 在[0, 1]上关于()1x ρ=,{} span 1,x Φ=的最佳平方逼近多项式。 解: 若{}span 1,x Φ=,则0()1x ?=,1()x x ?=,且()1x ρ=,这样,有

数值分析学习心得体会.doc

数值分析学习感想 一个学期的数值分析,在老师的带领下,让我对这门课程有了深刻的理解和感悟。这门 课程是一个十分重视算法和原理的学科,同时它能够将人的思维引入数学思考的模式,在处 理问题的时候,可以合理适当的提出方案和假设。他的内容贴近实际,像数值分析,数值微 分,求解线性方程组的解等,使数学理论更加有实际意义。 数值分析在给我们的知识上,有很大一部分都对我有很大的帮助,让我的生活和学习有 了更加方便以及科学的方法。像第一章就讲的误差,在现实生活中,也许没有太过于注意误 差,所以对误差的看法有些轻视,但在学习了这一章之后,在老师的讲解下,了解到这些误 差看似小,实则影响很大,更如后面所讲的余项,那些差别总是让人很容易就出错,也许在 别的地方没有什么,但是在数学领域,一个小的误差,就很容易有不好的后果,而学习了数 值分析的内容,很容易就可以将误差锁定在一个很小的范围内,在这一范围内再逼近,得出 的近似值要准确的多,而在最开始的计算中,误差越小,对后面的影响越小,这无疑是好的。 数值分析不只在知识上传授了我很多,在思想上也对我有很大的影响,他给了我很多数 学思想,很多思考的角度,在看待问题的方面上,多方位的去思考,并从别的例子上举一反三。像其中所讲的插值法,在先学习了拉格朗日插值法后,对其理解透彻,了解了其中 的原理和思想,再学习之后的牛顿插值以及三次样条插值等等,都很容易的融会贯通,很容 易的就理解了其中所想,他们的中心思想并没有多大的变化,但是使用的方式却是不同的, 这不仅可以学习到其中心内容,还可以去学习他们的思考方式,每个不同的思考方式带来的 都是不同的算法。而在看待问题上,不同的思考方式总是可以快速的全方位的去看透彻问题, 从而知道如何去解决。 在不断的学习中,知识在不断的获取,能力在不断的提升,同时在老师的不懈讲解下, 我逐渐的发现数值分析所涵盖的知识面特别的广泛,而我所需要学习的地方也更加的多,自 己的不足也在不断的体现,我知道这只是我刚刚接触到了数学的那一角,在以后我还会接触 到更多,而这求知的欲望也在不停的驱赶我,学习的越多,对今后的生活才会有更大的帮助。 计算132 2013014923 张霖篇二:数值分析学习报告 数值分析学习心得报告 班级:11级软工一班 姓名: * * * 学号: 20117610*** 指导老师:* * * 学习数值分析的心得体会 无意中的一次选择,让我接触了数值分析。 作为这学期的选修课,我从内心深处来讲,数值分析真的有点难。感觉它是在高等数学 和线性代数的基础上,又加深了探讨。虽然这节课很难,我学的不是很好,但我依然对它比 较感兴趣。下面就具体说说我的学习体会,让那些感兴趣的同学有个参考。 学习数值分析,我们首先得知道一个软件——matlab。matrix laboratory,即矩阵实验 室,是math work公司推出的一套高效率的数值计算和可视化软件。它是当今科学界最具影 响力、也是最具活力的软件,它起源于矩阵运算,并高速发展成计算机语言。它的优点是强 大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面、便捷的与其他程序和语 言接口。 根据上网搜集到的资料,你就会发现matlab有许多优点: 首先,编程简单使用方便。到目前为止,我已经学过c语言,机器语言,java语言,这

数值分析实验报告

实验一、误差分析 一、实验目的 1.通过上机编程,复习巩固以前所学程序设计语言及上机操作指令; 2.通过上机计算,了解误差、绝对误差、误差界、相对误差界的有关概念; 3.通过上机计算,了解舍入误差所引起的数值不稳定性。 二.实验原理 误差问题是数值分析的基础,又是数值分析中一个困难的课题。在实际计算中,如果选用了不同的算法,由于舍入误差的影响,将会得到截然不同的结果。因此,选取算法时注重分析舍入误差的影响,在实际计算中是十分重要的。同时,由于在数值求解过程中用有限的过程代替无限的过程会产生截断误差,因此算法的好坏会影响到数值结果的精度。 三.实验内容 对20,,2,1,0 =n ,计算定积分 ?+=10 5dx x x y n n . 算法1:利用递推公式 151--=n n y n y , 20,,2,1 =n , 取 ?≈-=+=1 00182322.05ln 6ln 51dx x y . 算法2:利用递推公式 n n y n y 51511-= - 1,,19,20 =n . 注意到 ???=≤+≤=10 10202010201051515611261dx x dx x x dx x , 取 008730.0)12611051(20120≈+≈y .: 四.实验程序及运行结果 程序一: t=log(6)-log(5);

n=1; y(1)=t; for k=2:1:20 y(k)=1/k-5*y(k-1); n=n+1; end y y =0.0884 y =0.0581 y =0.0431 y =0.0346 y =0.0271 y =0.0313 y =-0.0134 y =0.1920 y =-0.8487 y =4.3436 y =-21.6268 y =108.2176 y =-541.0110 y =2.7051e+003 y =-1.3526e+004 y =6.7628e+004 y =-3.3814e+005 y =1.6907e+006 y =-8.4535e+006 y =4.2267e+007 程序2: y=zeros(20,1); n=1; y1=(1/105+1/126)/2;y(20)=y1; for k=20:-1:2 y(k-1)=1/(5*k)-(1/5)*y(k); n=n+1; end 运行结果:y = 0.0884 0.0580 0.0431 0.0343 0.0285 0.0212 0.0188 0.0169

有限元读书报告

有限元读书报告 1. 有限元的基本理论 在目前的科学技术和工程技术的发展和研究中,有限元分析方法是使用最广泛的一种数值方法,Clough于20世纪60年代首次提出 了“有限单元法”的概念,研究人员们以此为基础不断的探索与创新,经过40年的发展从有限元法的基本概念演化出了一种新的数值分析方法。有限元分析法把连续体的全求解域看成是由许多个子域组成,对全求解域进行离散,再对各个子域单元上分片假定一个合适的近似解,最后推导全求解域的满足条件建立方程,解出方程即可。 在工程以及物理问题的数学模型确定后,用有限元对该模型进行数值计算,其基本思路可归纳为以下3点: 1. 把连续体的全求解域看成是由许多个子域组成的,并对其进行离散,一个连续体是通过各个单元边界上的节点互连组合成的。 2. 在每一个单元上分片假设近似函数,再将求解域内的未知场变量用这些近似函数来表示。通常是用未知场函数在单元各个节点上的数值以及其相对应的插值函数来表达每个单元内所假设的近似函数。而我们知道在这些节点上,场函数的数值是相同的,因此可以用它们来作为数值求解中的基本未知量。那么就可以将原待求场函数 无穷多自由度的求解问题转化为场函数节点值的有限自由度的求解问题。 3. 在原问题的数学模型基础上,采用与其等效的加权法或变分原理来建立有限元求解方程,并用数值方法求出方程的解得到原问题的解答。 从上面所述的有限元法的基本思路中可以得到其具有以下四个特性: 1. 适应性,表现在其适用于复杂几何模型中; 2. 可应用性,表现于其在各种物理问题中的使用; 3. 可靠性,表现为其建立于严格的理论基础上; 4. 高效性,表现为其特别适合计算机的编程和执行。 有限元方法成为使用最为广泛的一种数值方法也就归因于以上的四个特性。 2. 有限元的发展趋势 纵观当今国际上CAE软件的发展情况,可以看出有限元分析方法的一些发展趋势: 2.1 与CAD软件的无缝集成 当今有限元分析软件的一个发展趋势是与通用CAD软件的集成使用,即在用CAD软件完成部件和零件的造型设计后,能直接将模型传送到CAE软件中进行有限元网格划分并进行分析计算,如果分析的结果不满足设计要求则重新进行

数值分析实验报告总结

数值分析实验报告总结 随着电子计算机的普及与发展,科学计算已成为现代科 学的重要组成部分,因而数值计算方法的内容也愈来愈广泛和丰富。通过本学期的学习,主要掌握了一些数值方法的基本原理、具体算法,并通过编程在计算机上来实现这些算法。 算法算法是指由基本算术运算及运算顺序的规定构成的完 整的解题步骤。算法可以使用框图、算法语言、数学语言、自然语言来进行描述。具有的特征:正确性、有穷性、适用范围广、运算工作量少、使用资源少、逻辑结构简单、便于实现、计算结果可靠。 误差 计算机的计算结果通常是近似的,因此算法必有误差, 并且应能估计误差。误差是指近似值与真正值之差。绝对误差是指近似值与真正值之差或差的绝对值;相对误差:是指近似值与真正值之比或比的绝对值。误差来源见表 第三章泛函分析泛函分析概要 泛函分析是研究“函数的函数”、函数空间和它们之间 变换的一门较新的数学分支,隶属分析数学。它以各种学科

如果 a 是相容范数,且任何满足 为具体背景,在集合的基础上,把客观世界中的研究对象抽 范数 范数,是具有“长度”概念的函数。在线性代数、泛函 分析及相关的数学领域,泛函是一个函数,其为矢量空间内 的所有矢量赋予非零的正长度或大小。这里以 Cn 空间为例, Rn 空间类似。最常用的范数就是 P-范数。那么 当P 取1, 2 ,s 的时候分别是以下几种最简单的情形: 其中2-范数就是通常意义下的距离。 对于这些范数有以下不等式: 1 < n1/2 另外,若p 和q 是赫德尔共轭指标,即 1/p+1/q=1 么有赫德尔不等式: II = ||xH*y| 当p=q=2时就是柯西-许瓦兹不等式 般来讲矩阵范数除了正定性,齐次性和三角不等式之 矩阵范数通常也称为相容范数。 象为元素和空间。女口:距离空间,赋范线性空间, 内积空间。 1-范数: 1= x1 + x2 +?+ xn 2-范数: x 2=1/2 8 -范数: 8 =max oo ,那 外,还规定其必须满足相容性: 所以

相关文档
最新文档