数值分析实验报告7..

合集下载

数值分析实验报告

数值分析实验报告

实验2.1 多项式插值的振荡现象

实验目的:

在一个固定的区间上用插值逼近一个函数,显然Lagrange 插值中使用的节点越多,插

值多项式的次数就越高。我们自然关心插值多项式的次数增加时,Ln(x)是否也更加靠近被逼近的函数。Runge 给出的一个例子是极著名并富有启发性的。

实验容:

设区间[-1,1]上函数 f(x)=1/(1+25x 2)。

考虑区间[-1,1]的一个等距划分,分点为 x i = -1 + 2i/n ,i=0,1,2,…,n ,

则拉格朗日插值多项式为

201()()125n

n i i i L x l x x ==+∑. 其中,l i (x),i=0,1,2,…,n 是n 次Lagrange 插值基函数。

实验步骤与结果分析:

实验源程序

function Chap2Interpolation

% 数值实验二:“实验2.1:多项式插值的震荡现象”

% 输入:函数式选择,插值结点数

% 输出:拟合函数及原函数的图形

promps = {'请选择实验函数,若选f(x),请输入f,若选h(x),请输入h,若选g(x),请输入g:'};

titles = 'charpt_2';

result = inputdlg(promps,'charpt 2',1,{'f'});

Nb_f = char(result);

if(Nb_f ~= 'f' & Nb_f ~= 'h' & Nb_f ~= 'g')errordlg('实验函数选择错误!');return;end

result = inputdlg({'请输入插值结点数N:'},'charpt_2',1,{'10'});

数值分析第7章-方程近似根

数值分析第7章-方程近似根
机动 上页 下页 首页 结束
例7-2 求x x 1 0在1.5附近的根x *。
3
解:( 1)将方程改写成下列形 式 x 3 x1 据此建立迭代公式 x k 1 3 x k 1 (k 0,1,2, )
k xk
k
xk
k
xk
0 1.5 1 1.35721 2 1.33086
3 4 5
1.32588 1.32494 1.32476
6 7 8
1.32473 1.32472 1.32472
结果x 7与x 8完全相同,可以认为 x 7实际上已满足方程 即为所求的根。
机动 上页 下页 首页 结束
(2) 另一种等价形式 建立迭代公式
x x 3 -1 xk 1 x 1
非线性方程的分类
1. 代数方程 a 0 x n a1x n 1 a n 1x a n 0, 其中a 0 0, a i R(i 0,1, , n ). 如 : x 3 x 1 0. 2. 超越方程 如 : x e x 0.
机动 上页 下页 首页 结束
机动 上页 下页 首页 结束
三、局部收敛性与收敛阶
迭代序列 {xk }在[a, b]上的收敛性通常称为全 局收敛性; 不容易由定理作出判断 。应用上经常只在不动 点x * 附近考察收敛性,称为 局部收敛性.

数值分析--第7章非线性方程求根

数值分析--第7章非线性方程求根

内有方程的根. 取[a, b]的中点 x0
否则判别根 x*在 x0 的左侧还是右侧.
1 2
(a b) ,
将区间一分为二. 若 f (x0)=0, 则x0就是方程的根, 若f(a) · 0)<0, 则x*∈(a, x0), 令 a1= a, b1=x0; f(x 若f(x0) · f(b)<0, 则x*∈(x0 , b), 令 a1=x0, b1=b.
上页 下页
例2 用二分法求例1中方程 f(x)=x3-x-1=0的实根, 要求误差不超过0.005.
解 由例1可知x*∈(1, 1.5), 要想满足题意,即:
|x*-xn|≤0.005 则要
1 2
n 1
(b a) 2
2 lg 2
1
n 1
(1.5 1) 2
1
n 2
0.005
上页 下页
xk 1 ( xk )
k
( k 0,1, 2, )

lim xk x .
当(x)连续时,显然x*就是方程x=(x)之根(不动点). 于是可以从数列{xk}中求得满足精度要求的近似根. 这种求根方法称为不动点迭代法, xk 1 ( xk ) ( k 0,1, 2,) 称为迭代格式, (x)称为迭代函数, x0 称为迭代初值,
(-∞, 0), (0, 3),(3, +∞)

数值分析实验报告

数值分析实验报告

数值分析实验报告

一、实验背景

本实验主要介绍了数值分析的各种方法。在科学计算中,为了求解一

组常微分方程或一些极限问题,数值分析是一种有用的方法。数值分析是

一种运用计算机技术对复杂模型的问题进行数学分析的重要手段,它利用

数学模型和计算机程序来解决复杂的数学和科学问题。

二、实验内容

本实验通过MATLAB软件,展示了以下几种数值分析方法:

(1)拉格朗日插值法:拉格朗日插值法是由法国数学家拉格朗日发

明的一种插值方法,它可以用来插值一组数据,我们使用拉格朗日插值法

对给定的点进行插值,得到相应的拉格朗日多项式,从而计算出任意一个

点的函数值。

(2)最小二乘法:最小二乘法是一种常用的数据拟合方法,它可以

用来拟合满足一定函数的点的数据,它的主要思想是使得数据点到拟合曲

线之间的距离的平方和最小。

(3)牛顿插值法:牛顿插值法是一种基于差商的插值方法,它可以

用来插值一组数据,可以求得一组数据的插值函数。

(4)三次样条插值:三次样条插值是一种基于三次样条的插值方法,它可以用来对一组数据进行插值,可以求得一组数据的插值函数。

三、实验步骤

1.首先启动MATLAB软件。

数值分析实验报告

数值分析实验报告
[n,m]=size(A);nb=length(b)
%当方程组行与列的维数不相等时,停止计算,并输出出错信息
ifn~=m
error('The row and columns of matrix A must beepual!');
return;
end
%当方程组与右端项的维数不匹配时,停止计算,并输出错误信息
(二)LU分解法:
其基本思想是:对系数矩阵 进行分解, ,分别得到L为下三角矩阵,U为上三角矩阵,最后通过两个三角方程组 ,最后得出方程组的解。
2、基本程序设计:
列主元素法消元法的MATLAB基本程序如下所示:
function[x,det,flag]=Gauss(A,b)
%求线性方程组的列主元Gauss消元法,其中
%A为方程组的系数矩阵;
%b为方程组的右端项;
%x为方程组的解;
%det为系数矩阵A的行列式的值;
%flag为指标向量,flag='failure'表示计算失败,flag=‘OK’表示计算成功。
A=[5.0 0.96 6.5;2.0 4.5 0.36;0.50 1.1 3.1];
b=[0.96 0.020 6.0];
clear
fprintf('gauss-seidel迭代法')
x1_(1)=0;

武汉大学《数值分析》课件-第7章

武汉大学《数值分析》课件-第7章

论.
二、误差估计
求积公式(3)计算出的积分I(f)的近似值In+1(f)的误差多大? 若被积函数 f ( x) Cn 1[ a, b] ,记 M n 1 ma xa xb | f ( n1) (x ) | , 对n次Lagrange插值余项求积,可得n+1个节点的Newton-
Cotes求积公式的误差估计式为
一组基函数,所以两个定义是等价的,但在具体 应用时,定义2比定义1要方便的多.
例1 验证求积公式
I(
f
)
I3(
f
)
R( ,
f
)
b a{ f 6
(a) 4
f
(a
b) 2
f
(b)}
R( ,
f
)
具有3次代数精确度.
解: 当 f (x) 1时 , I ( f ) a b1d x b a,
可知,R(1, f)=0,所以我们所n+1点的求积公式(3)至少具
有n次的代数精确度.进一步可以证明,当n为偶数时,
求积公式(3)的代数精确度可以达到n+1次.
三、几种常见的Newton-Cotes求积公式
对 n=0, 1, 2, 按公式(3)可以得出下面三种常见的Newton-Cotes 求积公式.
时的插值型求积公式的构造等问题.
7.2.1 Newton-Cotes求积公式

数值分析--第7章非线性方程与方程组的数值解法

数值分析--第7章非线性方程与方程组的数值解法
ex /10 sin 10x 0, 它在整个 x轴上有无穷多个解,若 x 取值范围不同,解也 不同,因此讨论非线性方程(1.1)的求解必须强调 x的定 义域,即 x的求解区间 [a, b].
4
非线性问题一般不存在直接的求解公式,故没有直接 方法求解,都要使用迭代法.
迭代法要求先给出根 x *的一个近似,若 f (x) C[a,b] 且 f (a) f (b) 0 ,根据连续函数性质可知 f (x) 0在(a, b) 内至少有一个实根,这时称 [a, b]为方程(1.1)的有根区间.
3
根据代数基本定理可知, n次方程在复数域有且只有 n 个根(含重根, m重根为 m个根).
n 1,2 时的求根公式是熟知的,n 3,4时的求根公式 可在数学手册中查到,但比较复杂不适合数值计算,当 n 5 时就不能用公式表示方程的根,所以 n 3时求根仍用一般 的数值方法
另一类是超越方程,例如
1.3242
f ( xk )符号
12
二分法是计算机上的一种常用算法,计算步骤为:
步骤1 准备 计算 f (x) 在有根区间[a, b] 端点处的值
f (a), f (b).
步骤2
f ( a b ). 2
二分
计算 f (x) 在区间中点 a b 处的值
2
步骤3 判断 若 f ( a b ) 0,则 a b 即是根,

数值分析实验报告

数值分析实验报告

数值分析实验报告

数值分析实验报告

姓名:张献鹏

学号:173511038

专业:冶金工程

班级:重冶二班

目录

1拉格朗日插值 (1)

1

1.1问题背景

.....................................................................................................

1

1.2数学模型

.....................................................................................................

1.3计算方法

1

.....................................................................................................

2

1.4数值分析

.....................................................................................................

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

2.1问题背景

2

.....................................................................................................

3

2.2数学模型

.....................................................................................................

数值分析7-牛顿-科特斯公式

数值分析7-牛顿-科特斯公式

3
此外,随着大数据和云计算技术的发展,牛顿-科 特斯公式在分布式计算和并行计算方面的应用也 将成为未来的研究热点。
THANKS
感谢观看
02
该方法适用于具有简单非线性项的方程,如$f(x)=0$,通过选
取合适的初始近似值和迭代公式,逐步修正解的近似值。
牛顿-科特斯方法具有较高的收敛速度,通常比其他迭代方法更
03
快地逼近方程的解。
在求解优化问题中的应用
01
牛顿-科特斯方法也可用于求解 无约束优化问题,如最小化函 数$f(x)$。
02
对初始猜测值敏感:如果初始猜测值与真实解相差较大 ,可能会导致迭代过程发散,无法收敛到正确的解。
局限性
对约束条件处理能力有限:虽然牛顿-科特斯方法可以 处理一些约束条件,但对于一些复杂的约束条件,可能 需要额外的处理技巧或算法改进。
对牛顿-科特斯公式的改进和优化方向
改进方向
增强对非线性程度的适应性:对于高度非线性的方程, 可以考虑使用一些改进的牛顿-科特斯方法,例如增加预 处理步骤或使用非线性优化算法来提高求解效果。
牛顿-科特斯公式的应用条件和限制
应用条件
牛顿-科特斯公式适用于求解非线性方程的根,要求方程连续且可导,且导数不为0。此外,初始近似值的选择也 是关键,应尽可能接近根的真实值。
限制
虽然牛顿-科特斯公式在许多情况下都能有效地求解非线性方程的根,但它也有一些限制。例如,如果方程有多 个根或者根在边界上,或者函数在某些点处不可导,那么牛顿-科特斯公式可能无法得到正确的结果。

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

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

数值分析上机实验报告

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

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 a

b 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)(3

2

2

5

333647>⋅''<-=-=''<-=-='<>+-=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

数据分析的实验报告

数据分析的实验报告

数据分析实验报告

理学院实验中心数学专业实验室编写

数值分析实验指导

实验一 SAS系统的使用

【实验类型】(验证性)

【实验学时】2学时

【实验目的】使学生了解SAS系统,熟练掌握SAS数据集的建立及一些必要的SAS语句。

【实验内容】

1. 启动SAS系统,熟悉各个菜单的内容;在编辑窗口、日志窗口、输出窗口之间切换。

2. 建立数据集

表1

Name Sex Math Chinese English

Alice f 90 85 91

Tom m 95 87 84

Jenny f 93 90 83

Mike m 80 85 80

Fred m 84 85 89

Kate f 97 83 82

Alex m 92 90 91

Cook m 75 78 76

Bennie f 82 79 84

Hellen f 85 74 84

Wincelet f 90 82 87

Butt m 77 81 79

Geoge m 86 85 82

Tod m 89 84 84

Chris f 89 84 87

Janet f 86 65 87

1)通过编辑程序将表1读入数据集sasuser.score; 2)将下面记事本中的数据读入SAS数据集,变量名为code name scale share price:

000096 广聚能源 8500 0.059 1000 13.27 000099 中信海直 6000 0.028 2000 14.2 000150 ST麦科特 12600 -0.003 1500 7.12 000151 中成股份 10500

0.026 1300 10.08 000153 新力药业 2500 0.056 2000 22.75

数据分析实训报告

数据分析实训报告

数据分析实训报告

引言

在数据时代,数据分析已成为企业决策过程中必不可少的一环。数据分析实训

提供了一个实践的平台,帮助学生掌握数据分析的基本技能和方法。本报告将介绍我在数据分析实训中的学习和实践过程,以及所得到的成果和经验。

数据分析实训的目标和准备

首先,我们需要明确数据分析实训的目标。数据分析实训的主要目的是通过使

用统计工具和方法,对给定的数据进行分析和解读,从而帮助企业做出更明智的决策。在此之前,我们需要做一些准备工作。

数据收集和整理

在实践过程中,数据的质量和准确性对于分析结果的可靠性至关重要。因此,

我们首先需要收集和整理数据。数据可以来自各种渠道,例如企业内部的数据库、公共数据集或者通过调查和问卷收集。在整理数据时,我们需要注意数据的完整性和一致性,以便后续的分析工作。

确定分析的问题和目标

在数据分析实训中,我们需要明确分析的问题和目标。例如,我们可能需要回

答以下问题:销售额与市场推广之间是否存在关联?产品定价是否合理?客户满意度是否提升?通过明确问题和目标,我们可以更加有针对性地进行数据分析,从而得到更有价值的结果。

选择合适的分析工具和方法

数据分析涉及到各种工具和方法,例如统计分析、数据挖掘、机器学习等。在

实践过程中,我们需要根据问题的性质和数据的特点选择合适的工具和方法。例如,如果我们想要探索数据中的关联性,可以使用相关分析;如果我们想要预测未来的销售额,可以使用时间序列分析或回归分析。

数据分析实践过程

数据探索和预处理

在进行数据分析之前,我们首先需要对数据进行探索和预处理。探索数据可以

数值分析实验报告

数值分析实验报告

《数值分析》

实验报告

学院:计算机科学与软件学院姓名:XXX

班级:计算机XX班

学号:XXXXXX

实验一:舍入误差与数值稳定性

实验目的:

1、 通过上机编程,复习巩固以前所学程序设计语言;

2、 通过上机计算,了解舍入误差所引起的数值不稳定性。

3、 通过上机计算,了解运算次序对计算结果的影响,从而尽量避免大数吃小数的现象。

实验内容:用两种不同的顺序计算644834.110000

12

≈∑=-n n ,分析其误差

的变化。

实验流程图:

实验源程序:

#include

#include

void main()

{ int i;

float s1=0,s2=0,d1,d2;

for (i=1;i<=10000;i++)

s1=s1+1.0f/(i*i);

for (i=10000;i>=1;i--)

s2=s2+1.0f/(i*i);

d1=(float)(fabs(1.644834-s1));

d2=(float)(fabs(1.644834-s2));

printf("正向求和结果为%f\n 误差为%f\n\n",s1,d1);

printf("反向求和结果为%f\n 误差为%f\n\n",s2,d2);

if(d1

printf("正向求和误差小于负向求和误差\n");

else if(d1==d2)

printf("正向求和误差等于负向求和误差\n"); else

printf("正向求和误差大于负向求和误差\n");

}

实验结果:

实验分析:第一次做数值实验,又一次使用C语言编程,没有了刚学习C语言的艰难,能够将实验步骤转换成流程图并编写出完整的实验代码,在经过多次调试、改正后得到正确的程序和结果。这个实验较简单,计算误差时如果输入数据有误差,而在计算过程中舍入误差不增长,则称此算法是稳定的,否则称此算法是数值不稳定的,减少运算次数可以减小舍入误差。在运算中,如果参加运算的数的数量级相差很大,而计算机位数有限,如不注意运算次序就可能出现大数“吃掉”小数的现象,进而影响计算结果的可靠性,所以计算过程中要注意运算次序,避免出现这种现象。

数值分析实验报告之迭代法求非线性方程的根

数值分析实验报告之迭代法求非线性方程的根

数值分析实验报告之迭代法求非线性方程的根

1.实验目的

掌握迭代法求非线性方程根的基本原理和使用方法,加深对数值计算

方法的理解与应用。

2.实验原理

迭代法是一种通过不断逼近的方法求解非线性方程的根。根据不同的

函数特点和问题需求,可以选择不同的迭代公式进行计算,如牛顿迭代法、二分法、弦截法等。

3.实验内容

本次实验使用牛顿迭代法求解非线性方程的根。牛顿迭代法基于函数

的局部线性逼近,通过不断迭代逼近零点,直至满足收敛条件。

具体步骤如下:

Step 1:选择初始点X0。

Step 2:计算函数f(x)在X0处的导数f'(x0)。

Step 3:计算迭代公式Xn+1 = Xn - f(Xn) / f'(Xn)。

Step 4:判断收敛准则,若满足则迭代结束,输出解Xn;否则返回Step 2,继续迭代。

Step 5:根据实际情况判断迭代过程是否收敛,并输出结果。

4.实验步骤

步骤一:选择初始点。根据非线性方程的特点,选择恰当的初始点,以便迭代公式收敛。

步骤二:计算导数。根据选择的非线性方程,计算函数f(x)的导数f'(x0),作为迭代公式的计算基础。

步骤三:迭代计算。根据迭代公式Xn+1=Xn-f(Xn)/f'(Xn),计算下一个迭代点Xn+1

步骤四:判断收敛。判断迭代过程是否满足收敛条件,通常可以通过设置迭代次数上限、判断前后两次迭代结果的差值是否足够小等方式进行判断。

步骤五:输出结果。根据实际情况,输出最终的迭代结果。

5.实验结果与分析

以求解非线性方程f(x)=x^3-x-1为例,选择初始点X0=1进行迭代计算。

数值计算方法实验报告

数值计算方法实验报告

数值计算方法实验报告

一、实验目的

本实验旨在通过数值计算方法的实验操作,深入理解数值计算方法的原理与应用,掌握数值计算方法的相关技能,提高数值计算方法的实际应用能力。

二、实验内容

1.数值微积分

2.数值代数

3.数值微分方程

4.数值线性代数

5.数值优化

6.数值统计分析

7.数值随机模拟

8.数值傅立叶分析

9.数值偏微分方程

三、实验步骤

1.数值微积分:通过不同的数值积分方法,计算给定函数的定积分值,并对不同数值积分方法的误差进行分析。

2.数值代数:通过使用线性代数方法,求解给定的线性方程组,并分析不同线性方程组求解方法的优劣。

3.数值微分方程:通过使用常微分方程数值解法,求解给定的微分方程,并比较不同求解方法的精度和稳定性。

4.数值线性代数:通过使用特征值分解方法,对给定的矩阵进行特征值分解,并分析不同特征值分解方法的优缺点。

5.数值优化:通过使用不同的优化方法,求解给定的优化问题,并比较不同的优化方法的效率和精度。

6.数值统计分析:通过使用不同的统计分析方法,对给定的数据进行统计分析,并分析不同的统计方法的优缺点。

7.数值随机模拟:通过使用随机模拟方法,模拟给定的概率分布,并分析不同随机模拟方法的效率和精度。

8.数值傅立叶分析:通过使用傅立叶分析方法,对给定的信号进行频谱分析,并分析不同的傅立叶分析方法的优缺点。

9.数值偏微分方程:通过使用偏微分方程数值解法,求解给定的偏微分方程,并比较不同求解方法的精度和稳定性。

四、实验结果与分析

本实验中,通过对不同的数值计算方法的实验操作,我们可以更深入地理解数值计算方法的原理与应用,并掌握数值计算方法的相关技能,提高数值计算方法的实际应用能力。同时,通过实验结果的分析,我们可以更好地比较不同数值计算方法的优缺点,为实际应用提供参考依据。

《数值分析》课程实验报告范文

《数值分析》课程实验报告范文

《数值分析》课程实验报告范文

《数值分析》课程实验报告姓名:学号:学院:机电学院日期:2022年某月某日目录实验一函数插值方法1实验二函数逼近与曲线拟合5实验三数值积分与数值微分7实验四线方程组的直接解法9实验五解线性方程组的迭代法15实验六非线性方程求根19实验七矩阵特征值问题计算21实验八常微分方程初值问题数值解法24实验一函数插值方法一、问题提出对于给定的一元函数的n+1个节点值。试用Lagrange公式求其插值多项式或分段二次Lagrange插值多项式。

实验二函数逼近与曲线拟合一、问题提出从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。

在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量与时间t的拟合曲线。

t(分)051015202530354045505501.272.162.863.443.874.154.374.51 4.584.024.64二、要求1、用最小二乘法进行曲线拟合;2、近似解析表达式为;3、打印出拟合函数,并打印出与的误差,;4、另外选取一个近似表达式,尝试拟合效果的比较;5、某绘制出曲线拟合图。

三、目的和意义1、掌握曲线拟合的最小二乘法;2、最小二乘法亦可用于解超定线代数方程组;3、探索拟合函数的选择与拟合精度间的关系四、实验步骤:第一步先写出线性最小二乘法的M文件functionc=lpoly(某,y,m)n=length(某);b=zero(1:m+1);f=zero(n,m+1); fork=1:m+1f(:,k)=某.^(k-1);enda=f'某f;b=f'某y';c=a\

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

实验七、QR 算法

一、实验目的

1、熟悉matlab 编程并学习QR 算法原理及计算机实现;

2、学习用matlab 内置函数eig 和QR 算法求矩阵的特征值,并比对二者差异。 二、实验题目

1、课本第277页第1题

已知矩阵1

126

1112

3

761

116

7

112

34561107

87445677

565,,.0367886109002897

59100

0010A B H ⎛⎫

⎛⎫⎛⎫ ⎪

⎪ ⎪ ⎪ ⎪

⎪=== ⎪ ⎪ ⎪

⎪ ⎪ ⎪⎝⎭⎝⎭

⎪⎝

(1)用MATLAB 函数“eig ”求矩阵全部特征值;

(2)用基本QR 算法求全部特征值(可用MA TLAB 函数“qr ”实现矩阵的QR 分解)。 2、用QR 算法求矩阵特征值:

⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=111132126)(i ⎥⎥⎥

⎥⎥⎥⎦

⎢⎢⎢⎢⎢⎢⎣⎡=010*******

8763076544

65432)(ii

根据QR 算法原理编制求(i )及(ii )中矩阵全部特征值的程序并输出计算结果(要求误差

<10 -5).

三、实验原理与理论基础

QR 方法是一种变换方法,是计算一般矩阵(中小型矩阵)全部特征值问题的最有效方法之一。目前QR 方法主要用来计算上海森伯格矩阵和对称三对角矩阵的全部特征值问题,且QR 方法具有收敛快、算法稳定等特点。对于一般矩阵n n

A ⨯∈

(或对称矩阵),首先用

豪斯霍尔德方法将A 化为上海森伯格矩阵B (或对称三对角矩阵),然后再用QR 方法计算

B 的全部特征值。

1、矩阵的QR 分解

设n n

A ⨯∈

非奇异,则存在正交矩阵P ,使PA=R ,其中R 为上三角矩阵。用Householder

变换构造正交矩阵P ,记(0)

A

A =,它的第一列记为(0)1a ,不妨设(0)10a ≠,可按公式(3.2)

(Th14,约化定理 设12(,,

,)0,T n x x x x =≠则存在初等反射矩阵H 使1Hx e σ=-,其中)

112121122

,

sgn(),

,

().

T H I uu x x u x e u x βσσβσσ-⎧=-⎪

=⎪⎨

=+⎪⎪==+⎩ 找到矩阵111111,,n n

T

H H I u u β⨯-∈=-使

(0)11111,(1,0,

,0).T n

H a e e σ=-=∈

于是(1)1

(1)

(0)(0)(0)

(1)

111121(1)(,,

,),0n b A

H A H a H a H a A σ⎛⎫

-===

⎪ ⎪⎝⎭

其中(1)

(1)(1)

(1)

(1)(1)

121(,,,).n n n A

a a a -⨯--=∈

一般地,设(1)(1)(1)

()0j j j D B A

A ---⎛⎫= ⎪ ⎪⎝⎭

,其中(1)

j D -为(j-1)阶方阵,其对角线以下元素均为0,(1)

j A

-为(n-j+1)阶方阵,设其第一列为(1)

1

j a -,可选择(n-j+1)的Householder 矩阵变换

()()

n j n j j H -⨯-∈

,使(1)

1

1

11,(1,0,

,0),j n j j j H a e e σ--+=-=∈

根据j H 构造n*n 阶的变

换矩阵j H 为1

0,0

j j j I H H -⎛⎫=

⎪⎝⎭

于是有()()()(1)

.0j j j j j j D B A H A A -⎛⎫== ⎪ ⎪⎝

它和(1)

j A -有类似的形式,只是()j D 为j 阶方阵,其对角线以下元素是0,这样经过n-1步运算得到

(1)1

1,n n H H A A R --==其中(1)n R A -=为上三角矩阵,1

1n P H H -=为正交矩阵,从而

有PA=R 。

2、QR 算法

设n n

A ⨯∈

,且对A 进行QR 分解,即A QR =,其中R 为上三角矩阵,Q 为正交矩

阵,于是可得到一个新矩阵T

B RQ Q AQ ==。显然,B 是由A 经过正交相似变换得到,因此B 与A 特征值相同,再对B 进行QR 分解,又可得一新的矩阵,重复这一过程可得到矩阵序列:

设1A A =

将1A 进行QR 分解111A Q R =

作矩阵211111T

A R Q Q A Q ==

求得k A 后将k A 进行QR 分解k k k A Q R =

形成矩阵1T

k k k k k k A R Q Q A Q +==

QR 算法,就是利用矩阵的QR 分解,按上述递推法则构造矩阵序列{}k A 的过程。只要A 为非奇异矩阵,则由QR 算法就完全确定{}k A 。

相关文档
最新文档