matlab求特征值

matlab求特征值
matlab求特征值

1.% 取指定特征值对应的特征向量

2.clc; clear all; close all;

3. A = [1 3 7

4. 3 8 9

5. 5 4 6];

6.k = 2;

7.[V, D] = eig(A);

8.% 返回的V是以列向量对应的特征向量

9.% D是对角线上为特征值的矩阵

10.D = diag(D);

11.[D, I] = sort(D, 'descend');

12.% 得到了对应的排序

13.if k > length(D)

14. k = length(D);

15.end

16.temp(1) = {D(1 : k)};

17.temp(2) = {V(:, I(1 : k))};

18.fprintf('\n 前k个最大特征值 : \n');

19.celldisp(temp(1));

20.fprintf('\n 前k个最大特征值对应的特征向量 : \n');

21.celldisp(temp(2));

[v,d]=eig(A);

A为你的矩阵,V为特征向量矩阵,D为特征值矩阵,然后对D求最大值即可得最大特征根!

[V,D] = EIG(X) produces a diagonal matrix D of eigenvalues and a full matrix V whose columns are the corresponding eigenvectors so that X*V = V*D.

V是特征向量,D是特征值

实例:

矩阵:

1 2/3 7/3 7/3

3/2 1 3/2 3/2

3/7 2/3 1 3/2

3/7 2/3 2/3 1

>> format rat

>> A=[1 2/3 7/3 7/3

3/2 1 3/2 3/2

3/7 2/3 1 3/2

3/7 2/3 2/3 1]

A =

1 2/3 7/3 7/3

3/2 1 3/2 3/2

3/7 2/3 1 3/2

3/7 2/3 2/3 1

>> [V,D]=eig(A)

V =

1793/2855 504/3235 - 146/235i 504/3235 + 146/235i 1990/4773

670/1079 -3527/5220 -3527/5220 -509/959

4350/11989 1160/4499 + 287/3868i 1160/4499 - 287/3868i -350/647

838/2819 181/3874 + 1179/4852i 181/3874 - 1179/4852i 1238/2467

D =

810/197 0 0 0

0 -93/4229 + 455/674i 0 0

0 0 -93/4229 - 455/674i 0

0 0 0 -149/2201

******************************************************************************* **********

如何归一化求权重呢?

>> a=[1 3 5;1/3 1 3; 1/5 1/3 1]

a =

1.0000 3.0000 5.0000

0.3333 1.0000 3.0000

0.2000 0.3333 1.0000

>> [V,D]=eig(a)

V =

0.9161 0.9161 0.9161

0.3715 -0.1857 + 0.3217i -0.1857 - 0.3217i

0.1506 -0.0753 - 0.1304i -0.0753 + 0.1304i

D =

3.0385 0 0

0 -0.0193 + 0.3415i 0

0 0 -0.0193 - 0.3415i

**************************************************************************

>> a=[1 2 4 8 6 6 8;1/2 1 2 6 4 4 8;1/4 1/2 1 4 2 4 6;1/8 1/6 1/4 1 2 2 4;1/6 1/4 1/2 1/2 1 1 4;1/6 1/4 1/4 1/2 1 1 2;1/8 1/8 1/6 1/4 1/4 1/2 1]

a =

1.0000

2.0000 4.0000 8.0000 6.0000 6.0000 8.0000 0.5000 1.0000 2.0000 6.0000 4.0000 4.0000 8.0000 0.2500 0.5000 1.0000 4.0000 2.0000 4.0000 6.0000 0.1250 0.1667 0.2500 1.0000 2.0000 2.0000 4.0000 0.1667 0.2500 0.5000 0.5000 1.0000 1.0000 4.0000 0.1667 0.2500 0.2500 0.5000 1.0000 1.0000 2.0000 0.1250 0.1250 0.1667 0.2500 0.2500 0.5000 1.0000

>> rats(a)

ans =

1 2 4 8 6 6 8

1/2 1 2 6 4 4 8

1/4 1/2 1 4 2 4 6

1/8 1/6 1/4 1 2 2 4

1/6 1/4 1/2 1/2 1 1 4

1/6 1/4 1/4 1/2 1 1 2

1/8 1/8 1/6 1/4 1/4 1/2 1

>> [V,D]=eig(a)

V =

0.7884 0.8327 0.8327 0.8083 0.8083 -0.5119 + 0.3865i -0.5119 - 0.3865i

0.4894 0.3216 + 0.2636i 0.3216 - 0.2636i 0.1760 +

0.0792i 0.1760 - 0.0792i 0.6783 0.6783

0.3038 0.0883 + 0.2728i 0.0883 - 0.2728i -0.4630 +

0.1038i -0.4630 - 0.1038i -0.2011 - 0.2400i -0.2011 + 0.2400i

0.1404 -0.1620 + 0.1018i -0.1620 - 0.1018i 0.0620 -

0.0510i 0.0620 + 0.0510i -0.0006 + 0.1021i -0.0006 - 0.1021i

0.1215 -0.0627 - 0.0658i -0.0627 + 0.0658i 0.0367 +

0.2360i 0.0367 - 0.2360i -0.0531 + 0.0357i -0.0531 - 0.0357i

0.0975 -0.0303 - 0.0476i -0.0303 + 0.0476i 0.0488 -

0.1148i 0.0488 + 0.1148i 0.0231 - 0.1221i 0.0231 + 0.1221i

0.0508 0.0030 - 0.0590i 0.0030 + 0.0590i -0.0561 -

0.0454i -0.0561 + 0.0454i 0.0102 + 0.0197i 0.0102 - 0.0197i

D =

7.3899 0 0 0 0 0 0

0 -0.0008 +

1.5369i 0 0 0 0 0

0 0 -0.0008 -

1.5369i 0 0 0 0

0 0 0 -0.1624 +

0.6552i 0 0 0

0 0 0 0 -0.1624 - 0.6552i 0 0

0 0 0 0 0 -0.0317 + 0.2040i 0

0 0 0 0 0 0 -0.0317 - 0.2040i

第6章 求解线性代数方程组和计算矩阵特征值的迭代法

数值计算与MATLAB 1

《数值计算与MATLAB 》 第6章求解线性代数方程组和计算矩阵特征值的迭代法§1 求解线性代数方程组的迭代法 §2 方阵特征值和特征向量的计算 §3 矩阵一些特征参数的MATLAB计算

《数值计算与MATLAB 》 6.1 求解线性代数方程组的迭代法 1、迭代法的基本原理 如果线性方程组Ax=b的系数矩阵A非奇异,则方程组有唯一解。把这种方程中的方阵A分解成两个矩阵之差:A=C-D 若方阵C是非奇异的,把A它代入方程Ax=b中,得出 (C-D)x=b,两边左乘C-1,并令 M=C-1D,g= C-1b,移项可将方程Ax=b变换成: x=Mx+g 据此便可构造出迭代公式: x k+1 =Mx k+g, M=C-1D称为迭代矩阵。

《数值计算与MATLAB 》2. 雅可比(Jacobi)迭代法 如果方程组Ax=b的系数矩阵A非奇异,a ii ≠0,若可以把A 分解成: A=D-L-U=D+(-L)+(-U), D=diag(a11,a22,…,a nn); -L是严格下三角阵; -U是严格上三角矩阵; x= D-1((L+U)x +b)=D-1(L+U)x+ D-1b x k+1=D-1((L+U)x k+b)= D-1(L+U)x k + D-1b M M=D-1(L+U)称为雅可比迭代矩阵

《数值计算与MATLAB 》 ? ? ? ? ? ? ? ? ? ? ? ? = 6 7- 4 1 2 1- 2 6- 3- 1 1 5- 1 2 A ? ? ? ? ? ? ? ? ? ? ? ? = 6 1- 3- 2 D ? ? ? ? ? ? ? ? ? ? ? ? = 7 4- 1- 2- 1- L ? ? ? ? ? ? ? ? ? ? ? ? = 2- 6 1- 5 1- U M=D-1(L+U)= ? ? ? ? ? ? ? ? ? ? ? ? 7/6 2/3 - 1/6 - 2 2 2- 1/3 1/2 - 5/2 1/2 -

matlab求矩阵特征值特征向量 乘幂法

摘 要 根据现代控制理论课程的特点, 提出并利用MATLAB 设计了现代控制理论课程的实验, 给出了设计的每个实验的主要内容及使用到的MATLAB 函数, 并对其中的一个实验作了详细说明。通过这些实验, 将有助于学生理解理论知识, 学习利用MATLAB 解决现代控制理论问题。 关键词:现代控制理论、MATLAB 、仿真。 1设计目的、内容及要求 1.1设计目的 本课程设计以自动控制理论、现代控制理论、MATLAB 及应用等知识为基础,求连续系统对应的离散化的系统,并用计算系数阵按模最大的特征根法判别离散系统的稳定性,目的是使学生在现有的控制理论的基础上,学会用MATLAB 语言编写控制系统设计与分析的程序,通过上机实习加深对课堂所学知识的理解,掌握一种能方便地对系统进行离散化的实现和分析系统的稳定性的设计的工具。 1.2设计内容及要求 1 在理论上对连续系统离散化推导出算法和计算公式 2 画出计算机实现算法的框图 3 编写程序并调试和运行 4 以下面的系统为例,进行计算 ??????????----=041020122A ,?? ?? ? ?????=100B ,[]111-=c 5 分析运算结果

6 幂法迭代精度为ep=0.001,离散系统展开项数为20 7 程序应具有一定的通用性,对不同参数能有兼容性。 2算法选择及推导 2.1连续系统离散化算法 书P67离散化意义 已知被控对象的状态方程为: ()()()()()()t t u t y t t u t =+=+ x Ax B Cx D 对方程求解,得: 0()()0()()()o t t t t t t e t e u d τττ --=+?A A x x B 设0t kT =,(1)t k T =+,代入上式,得: H 公式 若省略T 则为{ ? +-++Φ=+T k kT d kT Bu T k kt x T T k x )1()(])1[()()(])1([(τ τφ不改变与离散后时刻,即得连续离散化方程则:相当于)+=(上限相当于下限设令D C kT Du kT Cx kT y kT t kT u T H kT x T G T k x Bdt t Bdt e T H t T k T t kT d dt T k t Bd e T H e T T G T T AT T k kT T k A AT )()()()()()()(])1([(: )()(0 ,1,,)1()()()(0 )1(])1[(+==+=+Φ=====-=-+=?==Φ=???+-+τττττ τ

matlab实验十四__特征值和特征向量

实验十四特征值和特征向量 【实验目的】 1.了解特征值和特征向量的基本概念。 2.了解奇异值分解的基本概念。 3.学习、掌握MATLAB软件有关命令。 【实验内容】 计算特征值和特征向量 【实验准备】 1.特征值和特征向量的基本概念 A是n n?矩阵,如果λ满足Ax xλ =,则称λ是矩阵A的特征值,x 是矩阵A的特征向量。如果A是实对称矩阵,则特征值为实数,否则,特制值为复数。 2.矩阵的奇异值分解 3.矩阵特征值、奇异值分解的MATLAB命令 MATLAB中主要用eig求矩阵的特征值和特征向量,用svd求矩阵的奇异值分解。 eig(A)计算矩阵A的特征值 [X,D]=eig(A) D的对角线元素是特征值,X是矩阵,它的列是相应的特征向量。 s=svd(A)假设矩阵A的行数大于列数,则s是矩阵A的n个奇异值构成的向量。 [U,S,D]=svd(A)U,S,D为矩阵A的奇异值分解三对组。

【实验重点】 1.特征值与特征向量的计算 2.矩阵的奇异值分解 【实验难点】 1.矩阵的奇异值分解 【实验方法与步骤】 练习1求矩阵 31 13 A - ?? =?? -?? 的特征值和特征向量。 相应的MATLAB代码和计算结果为 A=[3-1;-1 3] A= 3 -1 -1 3 eig(A) %A的特征值 ans= 4 2 [X,D]=eig(A) %D的对角线元素是特征值,X是矩阵X= -0.7071 -0.7071 0.7071 -0.7071 D= 4 0

0 2 练习2求矩阵 23 45 84 A ?? ?? =?? ?? ?? 的奇异值分解。 相应的MATLAB代码和计算结果为 A=[2 3;4 5;8 4] A= 2 3 4 5 8 4 s=svd(A) %s是矩阵A的2个奇异值构成的向量s= 11.2889 2.5612 [U,S,V]=svd(A) %给出简洁方式的奇异值分解结果U= 0.3011 0.4694 -0.8301 0.5491 0.6263 0.5534 0.7796 -0.6224 -0.0692 S= 11.2889 0 0 2.5612

用MATLAB求矩阵特征值

用matlab求矩阵的特征值和特征向量 我要计算的矩阵: 1 3 5 1/3 1 3 1/5 1/3 1 [v,d]=eig(A); A为你的矩阵,V为特征向量矩阵,D为特征值矩阵,然后对D求最大值即可得最大特征根! [V,D] = EIG(X) produces a diagonal matrix D of eigenvalues and a full matrix V whose columns are the corresponding eigenvectors so that X*V = V*D. V是特征向量,D是特征值 实例: 矩阵: 1 2/3 7/3 7/3 3/2 1 3/2 3/2 3/7 2/3 1 3/2 3/7 2/3 2/3 1 >> format rat >> A=[1 2/3 7/3 7/3 3/2 1 3/2 3/2 3/7 2/3 1 3/2 3/7 2/3 2/3 1] A = 1 2/3 7/3 7/3 3/2 1 3/2 3/2 3/7 2/3 1 3/2 3/7 2/3 2/3 1 >> [V,D]=eig(A)

V = 1793/2855 504/3235 - 146/235i 504/3235 + 146/235i 1990/4773 670/1079 -3527/5220 -3527/5220 -509/959 4350/11989 1160/4499 + 287/3868i 1160/4499 - 287/3868i -350/647 838/2819 181/3874 + 1179/4852i 181/3874 - 1179/4852i 1238/2467 D = 810/197 0 0 0 0 -93/4229 + 455/674i 0 0 0 0 -93/4229 - 455/674i 0 0 0 0 -149/2201 ***************************************************************************************** 如何归一化求权重呢? >> a=[1 3 5;1/3 1 3; 1/5 1/3 1] a = 1.0000 3.0000 5.0000 0.3333 1.0000 3.0000 0.2000 0.3333 1.0000 >> [V,D]=eig(a) V = 0.9161 0.9161 0.9161 0.3715 -0.1857 + 0.3217i -0.1857 - 0.3217i 0.1506 -0.0753 - 0.1304i -0.0753 + 0.1304i D =

matlab矩阵运算和数组运算

matlab矩阵运算和数组运算 作者:佚名教程来源:网络点击数:1368 更新时间:2010-5-3 矩阵运算和数组运算是Matlab的数值运算中的两大类运算。矩阵运算是按矩阵运算法 则进行的运算;数组运算无论是何种运算操作都是对元素逐个进行。 矩阵运算和数组运算指令对照汇总 矩阵运算指令指令含义数组运算指令指令含义 A' 矩阵转置 A.+B 对应元素相加 A+B 矩阵相加 A.-B 对应元素相减 A-B 矩阵相减 A.*B 同维数组对应元素相乘 s+B 标量加矩阵 s.*A A的每个元素乘s s-B,B-s 标量矩阵相减 A./B A的元素被B的对应元素除 A*B 矩阵相乘 B.\A 同上 A/B A右除B s./B, B.\s s 分别被B的元素除 B\A A左除B A.^n A的每个元素自乘n 次 inv(A) 矩阵求逆 log(A) 对A的每个元素求对数 A^n 矩阵的n次幂 sqrt(A) 对A的每个元素求平方根 f(A) 求A的各个元素的函数值 例: a=[1 2 3; 4 5 6; 7 8 9];b=[1 2 3; 3 2 1;1 4 5]; c=[1 1 1;2 3 1;1 0 2]; d=a*c^2+b d = 32 31 36 82 79 82 128 129 134 3.4 矩阵函数和数组函数

3.4.1 基本数组函数 数组函数是对各个元素的函数设计的。 f(.)基本函数表 函数名称功能函数名称功能 sin 正弦 acosh 反双曲余弦 cos 余弦 atanh 反双曲正切 tan 正切 acoth 反双曲余切 cot 余切 asech 反双曲正割 sec 正割 acsch 反双曲余割 csc 余割 fix 朝零方向取整 asin 反正弦 ceil 朝正无穷大方向取整 acos 反余弦 floor 朝负无穷大方向取整 atan 反正切 round 四舍五入到整数 atan2 四象反正切 rem 除后取余数 acot 反余切 sign 符号函数 asec 反正割 abs 绝对值 acsc 反余割 angle 复数相角 sinh 双曲正弦 imag 复数虚部 cosh 双曲余弦 real 复数实部 tanh 双曲正切 conj 复数共轭 coth 双曲余切 log10 常用对数 sech 双曲正割 log 自然对数 csch 双曲余割 exp 指数 asinh 反双曲正弦 aqrt 平方根 f(.)特殊函数表 函数名称功能函数名称功能 bessel 第一、第二类Bessel函数 erf 误差函数

矩阵在matlab中的基本命令

一、矩阵的表示 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]”内; b、矩阵的同行元素之间用空格(或”,”)隔开; c、矩阵的行与行之间用”;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 二,矩阵的创建: 1、直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 2、利用MATLAB函数创建矩阵 基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n 维的全1矩阵; (2) zeros()函数:产生全为0的矩阵;

(3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。 3、利用文件建立矩阵 当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。 二、矩阵的简单操作 1.获取矩阵元素 可以通过下标(行列索引)引用矩阵的元素,如Matrix(m,n)。 也可以采用矩阵元素的序号来引用矩阵元素。 矩阵元素的序号就是相应元素在内存中的排列顺序。 在MATLAB中,矩阵元素按列存储。 序号(Index)与下标(Subscript )是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。 其相互转换关系也可利用sub2ind和ind2sub函数求得。 2.矩阵拆分

MATLAB基本矩阵运算

Basic Matrix Operations 一、实验目的 1、掌握向量和矩阵的创建方法; 2、掌握向量和矩阵元素的索引方法; 3、掌握向量和矩阵的基本操作; 4、利用MATLAB编写程序进行矩阵运算。 二、基础知识 1、常见数学函数 函数名数学计算功能函数名数学计算功能 Abs(x) 实数的绝对值或复数的幅值floor(x) 对x朝-∞方向取整 Acos(x) 反余弦arcsin x gcd(m,n)求正整数m和n的最大公约数 acosh(x) 反双曲余弦arccosh x imag(x) 求复数x的虚部 angle(x) 在四象限内求复数 x 的相角lcm(m,n) 求正整数m和n的最小公倍数 asin(x) 反正弦arcsin x log(x) 自然对数(以e为底数) asinh(x) 反双曲正弦arcsinh x log10(x) 常用对数(以10为底数) atan(x) 反正切arctan x real(x) 求复数x的实部 atan2(x,y) 在四象限内求反正切Rem(m,n) 求正整数m和n的m/n之余数 atanh(x) 反双曲正切arctanh x round(x) 对x四舍五入到最接近的整数 ceil(x) 对x朝+∞方向取整sign(x) 符号函数:求出x的符号 conj(x) 求复数x的共轭复数sin(x) 正弦sin x cos(x) 余弦cos x sinh(x) 反双曲正弦sinh x cosh(x) 双曲余弦cosh x sqrt(x) 求实数x的平方根:x exp(x) 指数函数xe tan(x) 正切tan x fix(x) 对x朝原点方向取整tanh(x) 双曲正切tanh x 2、常量与变量 系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。此外,系统内部预先定义了几个有特殊意义和用途的变量,见下表: 特殊的变量、常量取值

雅克比法求矩阵特征值特征向量

C语言课程设计报告 课程名称:计算机综合课程设计 学院:土木工程学院 设计题目:矩阵特征值分解 级别: B 学生姓名: 学号: 同组学生:无 学号:无 指导教师: 2012年 9 月 5 日 C语言课程设计任务书 (以下要求需写入设计报告书) 学生选题说明: 以所发课程设计要求为准,请同学们仔细阅读; 本任务书提供的设计案例仅供选题参考;也可自选,但难易程度需难度相当; 鼓励结合本专业(土木工程、力学)知识进行选题,编制程序解决专业实际问题。

限2人选的题目可由1-2人完成(A级);限1人选的题目只能由1人单独完成(B级);设计总体要求: 采用模块化程序设计; 鼓励可视化编程; 源程序中应有足够的注释; 学生可自行增加新功能模块(视情况可另外加分); 必须上机调试通过; 注重算法运用,优化存储效率与运算效率; 需提交源程序(含有注释)及相关文件(数据或数据库文件); (cpp文件、txt或dat文件等) 提交设计报告书,具体要求见以下说明。 设计报告格式: 目录 1.课程设计任务书(功能简介、课程设计要求); 2.系统设计(包括总体结构、模块、功能等,辅以程序设计组成框图、流程图解释); 3.模块设计(主要模块功能、源代码、注释(如函数功能、入口及出口参数说明,函数调用关系描述等); 4.调试及测试:(调试方法,测试结果的分析与讨论,截屏、正确性分析); 5.设计总结:(编程中遇到的问题及解决方法); 6.心得体会及致谢; 参考文献

1.课程设计任务书 功能简介: a)输入一个对称正方矩阵A,从文本文件读入; b)对矩阵A进行特征值分解,将分解结果:即U矩阵、S矩阵输出至文本文件; c)将最小特征值及对应的特征向量输出至文本文件; d)验证其分解结果是否正确。 提示:A=USU T,具体算法可参考相关文献。 功能说明: 矩阵特征值分解被广泛运用于土木工程问题的数值计算中,如可用于计算结构自振频率与自振周期、结构特征屈曲问题等。 注:以三阶对称矩阵为例 2.系统设计 3.模块设计 #include #include #include int main() { FILE *fp; int tezheng(double *a,int n,double *s,double *u,double eps,int itmax); //函数调用声明 int i,j,p,itmax=1000; //itmax为最大循环次数 double eps=1e-7,s[3][3],u[3][3]; //eps为元素精度,s为对角矩阵S,u为矩阵U double a[9];//a为待分解矩阵A i=tezheng(a,3,s,u,eps,1000);

数学实验“矩阵特征值及相应特征向量的Jacobi法,QR法”实验报告(内含matlab程序)

西京学院数学软件实验任务书 课程名称数学软件实验班级数0901 学号0912020107 姓名李亚强 实验课题矩阵特征值及相应特征向量的Jacobi法,QR法 实验目的熟悉矩阵特征值及相应特征向量的Jacobi法,QR法运用Matlab/C/C++/Java/Maple/Mathematica等其中实验要求 一种语言完成 实验内容矩阵特征值及相应特征向量的Jacobi法,QR法成绩教师

实验十三实验报告 一、实验名称:矩阵特征值及相应特征向量的Jacobi法,QR法。 二、实验目的:熟悉矩阵特征值及相应特征向量的Jacobi法,QR 法。 三、实验要求:运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成程序设计。 四、实验内容: %矩阵特征值及相应特征向量的Jacobi法 function [D,R]=Jacobi(A,eps) if nargin==2 eps=1.0e-5; end n=length(A); R=eye(n); while 1 Amax=0; for l=1:n-1 for k=l+1:n if abs(A(l,k))>Amax Amax=abs(A(l,k)); i=l;j=k; end end end if Amax

t=1; else t=sign(d)/(abs(d)+sqrt(d^2+1)); end c=1/sqrt(t^2+1); s=c*t; for l=1:n if l==i Aii=A(i,i)*c^2+A(j,j)*s^2+2*A(i,j)*s*c; Ajj=A(i,i)*s^2+A(j,j)*c^2-2*A(i,j)*s*c; A(i,j)=(A(j,j)-A(i,i))*s*c+A(i,j)*(c^2-s^2); A(j,i)=A(i,j); A(i,i)=Aii; A(j,j)=Ajj; elseif l~=j Ail=A(i,l)*c+A(j,l)*s; Ajl=-A(i,l)*s+A(j,l)*c; A(i,l)=Ail;A(l,i)=Ail; A(j,l)=Ajl;A(l,j)=Ajl; end Rli=R(l,i)*c+R(l,j)*s; Rlj=-R(l,i)*s+R(l,j)*c; R(l,i)=Rli; R(l,j)=Rlj; end end D=diag(diag(A)); %矩阵特征值及相应特征向量的QR法 function l=qrtz(A,M) for(i=1:M) [q,r]=qr(A); A=r*q; l=diag(A); end

求判断矩阵权重以及最大特征值 MATLAB程序

求权重程序 A=[1,1/3,3,1;3,1,7,3;1/3,1/7,1,1/5;1,1/3,5,1]; %求得x为特征向量矩阵,y为特征值矩阵[x,y]=eig(A); %找到y中对应最大的特征值所在列m [maxy,m]=find(y==max(max(y))); %w即为矩阵A的权重! w=x(:,m)/sum(x(:,m)) 结果: w= 0.1881 0.5347 0.0597 0.2175 求最大特征值 b=[1,1/3,3,1;3,1,7,3;1/3,1/7,1,1/5;1,1/3,5,1] [v,d]=eig(b) r=abs(sum(d)); n=find(r==max(r)); max_d_b=d(n,n)%最大特征根 max_v_b=v(:,n)%最大特征根所对应的特征向量 结果: b= 1.00000.3333 3.0000 1.0000

3.0000 1.00007.0000 3.0000 0.33330.1429 1.00000.2000 1.00000.3333 5.0000 1.0000 v= 0.3083-0.4859-0.1383-0.0804i-0.1383+0.0804i 0.87650.8503-0.8693-0.8693 0.09790.00000.0514+0.1126i0.0514-0.1126i 0.35650.20240.3162-0.3216i0.3162+0.3216i d= 4.0571000 0-0.000000 00-0.0285+0.4804i0 000-0.0285-0.4804i max_d_b=4.0571最大特征根 max_v_b=最大特征根所对应的特征向量 0.3083 0.8765 0.0979 0.3565

matlab用规范化乘幂法求以下矩阵的按模最大特征值及其特征向量

竭诚为您提供优质文档/双击可除 matlab用规范化乘幂法求以下矩阵的按模最大特征值及其特征向量 篇一:幂法,反幂法求解矩阵最大最小特征值及其对应的特征向量 数值计算解矩阵的按模最大最小特征值及对应的特征 向量 一.幂法 1.幂法简介: 当矩阵a满足一定条件时,在工程中可用幂法计算其主特征值(按模最大)及其特征向量。矩阵a需要满足的条件为: (1)|1||2|...|n|0,i为a的特征值 xn(2)存在n个线性无关的特征向量,设为x1,x2,..., 1.1计算过程: n 对任意向量x,有x(0)(0)iui,i不全为0,则有 i1 x(k1)ax(k)...ak1x(0) aαiuiαiλik1uik1

i1i1nn nk12k1λ1u1()a2u2()anun11 k111u1k11 2|越小时,收敛越快;且当k充分大时,有可见,当|1 (k1)k111u1x(k1)x(k1)(k)x1(k),对应的特征向量即是。kxx11u1 2算法实现 (1).输入矩阵a,初始向量x,误差限,最大迭代次数n (2).k1,0;y(k)x(k) max(abs(x(k)) (3).计算xay,max(x);(4).若||,输出,y,否则,转(5) (5).若kn,置kk1,,转3,否则输出失败信息,停 机.3matlab程序代码 function[t,y]=lpowera,x0,eps,n)%t为所求特征值,y 是对应特征向量k=1; z=0;%z相当于 y=x0./max(abs(x0));%规范化初始向量 x=a*y;%迭代格式 b=max(x);%b相当于 ifabs(z-b) t=max(x); return; end

数值方法课程设计幂法反幂法计算矩阵特征值和特征向量附Matlab程序

数值方法课程设计幂法反幂法计算矩阵特征值和特征向量附Matlab程序

矩阵的特征值与特征向量的计算 摘要 物理,力学,工程技术中的很多问题在数学上都归结于求矩阵特征值的问题,例如振动问题(桥梁的振动,机械的振动,电磁振动等)、物理学中某些临界值的确定问题以及理论物理中的一些问题。矩阵特征值的计算在矩阵计算中是一个很重要的部分,本文使用幂法和反幂法分别求矩阵的按模最大,按模最小特征向量及对应的特征值。 幂法是一种计算矩阵主特征值的一种迭代法,它最大的优点是方法简单,对于稀疏矩阵比较合适,但有时收敛速度很慢。其基本思想是任取一个非零的初始向量。由所求矩阵构造一向量序列。再经过所构造的向量序列求出特征值和特征向量。 反幂法用来计算矩阵按模最小特征向量及其特征值,及计算对应于一个给定近似特征值的特征向量。本文中主要使用反幂法计算一个矩阵的按模最小特征向量及其对应的特征值。计算矩阵按模最小特征向量的基本思想是将其转化为求逆矩阵的按模最大特征向量。然后经过这个按模最大的特征向量反推出原矩阵的按模最小特征向量。

关键词:矩阵;特征值;特征向量;冥法;反冥法 THE CALCULATIONS OF EIGENVALUE AND EIGENVECTOR OF MATRIX ABSTRACT Physics, mechanics, engineering technology in a lot of problems in mathematics are attributed to matrix eigenvalue problem, such as vibration (vibration of the bridge, mechanical vibration, electromagnetic vibration, etc.) in physics, some critical values determine problems and

(完整版)关于matlab中的eig函数(求特征值和特征向量)

关于matlab中的eig函数(求特征值和特征向量) 在MATLAB中,eig用途:Find eigenvalues(特征值)and eigenvectors(特征向量),常用的调用格式有5种: (1) E=eig(A):求矩阵A的全部特征值,构成向量E。(注意,第一列为对应第一个特征值的特征向量) (2) [V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的全部列向量。 (3) [V,D]=eig(A,'nobalance'):与第2种格式类似,但第2种格式中先对A 作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。 (4) E=eig(A,B):由eig(A,B)返回N×N阶方阵A和B的N个广义特征值,构成向量E。 (5) [V,D]=eig(A,B):由eig(A,B)返回方阵A和B的N个广义特征值,构成N×N 阶对角阵D,其对角线上的N个元素即为相应的广义特征值,同时将返回相应的特征向量构成N×N阶满秩矩阵,且满足AV=BVD。 Syntax(句法)如下: d = eig(A) d = eig(A,B) [V,D] = eig(A) [V,D] = eig(A,'nobalance') [V,D] = eig(A,B) [V,D] = eig(A,B,flag) d = eig(A)和 [V,D] = eig(A)最为常用 注意,第一列为对应第一个特征值的特征向量, 比如:B=rand(4) B = 0.5653 0.7883 0.1365 0.9749 0.2034 0.5579 0.3574 0.6579 0.5070 0.1541 0.9648 0.0833 0.5373 0.7229 0.3223 0.3344 >> [a,b]=eig(B) %求矩阵B的全部特征值,构成对角阵b,并求B的特征向量构成a的列向量。 a =

矩阵特征值与特征向量计算的MATLAB GUI设计[文献综述]

毕业论文文献综述 信息与计算科学 矩阵特征值与特征向量计算的MATLAB GUI设计 一、前言部分 MATLAB语言是性能卓著的实验“仪器”,是一款功能强大的。用它能能送的进行各种数学计算和符号演算,绘制多种可视化图形[1]。 MATLAB是一种数值计算环境和编程语言,主要包括MATLAB和Simulink两大部分。MATLAB基于矩阵运算,具有强大的数值分析、矩阵计算、信号处理和图形显示功能,其强大的数据处理能力和丰富的工具箱使得它的编程极为简单。MATLAB既能进行科学计算,又能开发出所需要的图形界面。图形用户界面(GUI)是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法选择、激活这些图形对象,是计算机产生某种动作或变化,比如实现计算、绘图等[2]。 由于计算机的发展和普及,科学计算已经成为解决各类科学技术问题的重要手段。因此,掌握科学计算的基本原理和方法是当今科学技术工作者不可缺少的本领和技能之一。求特征问题是科学与工程中提出的一类重要数学问题。如动力学系统和结构系统中的振动问题,需要求系统的频率与振幅,又如物理学中的某些临界值的确定等[3]。 二、主题部分 2.1 MATLAB软件介绍 2.1.1 MATLAB软件概况[4、5] “MATLAB”是“Matrix Laboratory”的缩写。MATLAB的第一个版本是LINPACK和EISPACK库的程序的一个接口,用来分析线性方程组。随着MATLAB的演化,除了线性代数外,它还支持许多其他的程序。MATLAB的核心仍然是基于命令行的交互式分析工具。用户可以用类Fortran语言扩展交互环境。交互环境中的程序以命令行的形式执行。 MATLAB用户接口包括下拉菜单和对话框,任何个人电脑使用者对这一接口都很熟悉。菜单命令支持文件操作、打印、程序编辑和用户接口定制。MATLAB的数值计算是通过在命令窗口输入命令,并不是通过菜单操作进行的。

用QR算法求矩阵的特征值

一、实验名称:用QR 算法求矩阵的特征值 二、实验目的:1、通过实验进一步熟悉掌握求矩阵特征值的QR 方法及原理。 2、理解QR 方法的计算流程。 3、能够编程实现QR 方法。 三、实验内容:给定矩阵 ??? ? ? ??=111132126A , ?? ??? ?? ? ? ?=0100098 20 087630 7654465432H ,采用QR 方法计算A 和H 矩阵的全部特征值。 四、实验要求: (1) 根据QR 算法原理编写程序求矩阵A 及矩阵H 的全部特征值(要求误差<10 5 -)。 (2) 直接用MATLAB 的内部函数eig 求矩阵A 及矩阵H 的全部特征值,并与(1)的结果比较。 五、QR 方法计算矩阵特征值的程序: function [namda,time,data_na]=qr_tz(A,tol) if nargin==1; tol=1e-5; end wucha=1; time=0; while (wucha>tol)&(time<500) [q,r]=qr(A); A1=r*q; tz0=diag(A1); tz1=diag(A); wucha=norm(tz0-tz1); A=A1; time=time+1; data_na(time,:)=tz1; end namda=tz1; disp(‘特征值为’) namda disp(‘第一个特征在值’) time

n1=length(data_na); n2=(1:n1)’; temp1=[n2,data_na]; subplot(2,2,1:2) plot(date_na(:,1)) title(‘迭代次数为’) grid subplot(2,2,3)plot(data-na(:,2)) title(‘第二个特征值’) grid subplot(2,2,4) plot(data-na(:,3)) title(‘第三个特征值’) grid 六、实验结果: >> A=[6,2,1;2,3,1;1,1,1];[namda,time,data_na]=qr_tz(A,1e-5);特征值为 namda = 迭代次数为 time = 6 图 1

matlab中计算特征向量及特征值

Matlab是一款十分强大的软件,又称作矩阵实验室 下面看一个Matlab计算矩阵特征值及特征向量的例子 程序很简单,就用了一个eig函数 A=[ 7 3 5 3 4 6 2 1 3 ] A=[7 3 5;3 4 6;2 1 3]; [x,y]=eig(A) x = -0.7772 + 0.0000i -0.2952 - 0.0390i -0.2952 + 0.0390i -0.5692 + 0.0000i 0.9253 + 0.0000i 0.9253 + 0.0000i -0.2681 + 0.0000i -0.2319 + 0.0362i -0.2319 - 0.0362i y = 10.9218 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 1.5391 + 0.1083i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 1.5391 - 0.1083i 下面是帮助文件里面的eig的用法 >> B = [ 3 -2 -.9 2*eps -2 4 1 -eps -eps/4 eps/2 -1 0 -.5 -.5 .1 1 ]; B = [ 3 -2 -.9 2*eps -2 4 1 -eps

-eps/4 eps/2 -1 0 -.5 -.5 .1 1 ]; [VB,DB] = eig(B) B*VB - VB*DB [VN,DN] = eig(B,'nobalance') B*VN - VN*DN VB = 0.6153 -0.4176 -0.0000 -0.1437 -0.7881 -0.3261 -0.0000 0.1264 -0.0000 -0.0000 -0.0000 -0.9196 0.0189 0.8481 1.0000 0.3432 DB = 5.5616 0 0 0 0 1.4384 0 0 0 0 1.0000 0 0 0 0 -1.0000 ans = 0.0000 0 -0.0000 0.0000 0 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0 0.0000 0.0000 0.6031

matlab学习记录(绘图Plot和特征值求解Eig函数)

绘图 set(gcf,’unit’,’centimeters’,’position’,[10 5 7 5]); 这就是对图形的位置及大小进行设置。单位为厘米,大小为7cm×5cm,图形起点坐标为(10cm,5cm)表示左下点离显示器左侧边界10cm,离下侧边界5cm。 将图形大小设置好之后,就需要设置实际的图在figure中的比例,这就需要对图形的坐标进行设置。 set(gca,'Position',[.2 .2 .7 .65]); 位置[.2 .2 .7 .65]表示所画的图形在figure中所占的比例,前两个值表示位置,后两个值表示大小。 下面给出一个例子说明: t = 0:0.01:2; x = sin(2*pi*t); plot(t,x,'k','linewidth',2) set(gcf,'unit','centimeters','position',[3 5 7 5]) set(gca,'Position',[.15 .15 .8 .75]); set(get(gca,'XLabel'),'FontSize',8); ******************************************************************* x=0:0.5:10; y=sin(pi*x); figure; plot(x,y,'r','linewidth',2); set(gcf,'unit','centimeters','position',[2,2,10,6]); set(gca,'Position',[.2 .2 .6 .6]); xlabel('频率/Hz'); ylabel('振幅'); title('fft频谱分析结果'); grid on ****************************************************************** Eig函数 在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有5种: 1.E=eig(A):求矩阵A的全部特征值,构成向量E。 2.[V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向 量构成V的列向量。

matlab求矩阵的特征值与特征向量介绍

使用matlab求矩阵的特征值和特征向量介绍 [v,d]=eig(A); A为你的矩阵,V为特征向量矩阵,D为特征值矩阵,然后对D求最大值即可得最大特征根! [V,D] = EIG(X) produces a diagonal matrix D of eigenvalues and a full matrix V whose columns are the corresponding eigenvectors so that X*V = V*D. V是特征向量,D是特征值 实例: 矩阵: 1 2/3 7/3 7/3 3/2 1 3/2 3/2 3/7 2/3 1 3/2 3/7 2/3 2/3 1 >> format rat >> A=[1 2/3 7/3 7/3 3/2 1 3/2 3/2 3/7 2/3 1 3/2 3/7 2/3 2/3 1] A = 1 2/3 7/3 7/3 3/2 1 3/2 3/2 3/7 2/3 1 3/2 3/7 2/3 2/3 1 >> [V,D]=eig(A) V = 1793/2855 504/3235 - 146/235i 504/3235 + 146/235i 1990/4773 670/1079 -3527/5220 -3527/5220 -509/959

4350/11989 1160/4499 + 287/3868i 1160/4499 - 287/3868i -350/647 838/2819 181/3874 + 1179/4852i 181/3874 - 1179/4852i 1238/2467 D = 810/197 0 0 0 0 -93/4229 + 455/674i 0 0 0 0 -93/4229 - 455/674i 0 0 0 0 -149/2201 如何归一化求权重呢? >> a=[1 3 5;1/3 1 3; 1/5 1/3 1] a = 1.0000 3.0000 5.0000 0.3333 1.0000 3.0000 0.2000 0.3333 1.0000 >> [V,D]=eig(a) V = 0.9161 0.9161 0.9161 0.3715 -0.1857 + 0.3217i -0.1857 - 0.3217i 0.1506 -0.0753 - 0.1304i -0.0753 + 0.1304i D = 3.0385 0 0 0 -0.0193 + 0.3415i 0 0 0 -0.0193 - 0.3415i ******************************************************************** ****** >> a=[1 2 4 8 6 6 8;1/2 1 2 6 4 4 8;1/4 1/2 1 4 2 4 6;1/8 1/6 1/4 1 2 2 4;1/6 1/4 1/2 1/2 1 1 4;1/6 1/4 1/4 1/2 1 1 2;1/8 1/8 1/6 1/4 1/4 1/2 1] a = 1.0000 2.0000 4.0000 8.0000 6.0000 6.0000 8.0000 0.5000 1.0000 2.0000 6.0000 4.0000 4.0000 8.0000

数值方法课程设计幂法反幂法计算矩阵特征值和特征向量-附Matlab程序

矩阵的特征值与特征向量的计算 摘要 物理,力学,工程技术中的很多问题在数学上都归结于求矩阵特征值的问题,例如振动问题(桥梁的振动,机械的振动,电磁振动等)、物理学中某些临界值的确定问题以及理论物理中的一些问题。矩阵特征值的计算在矩阵计算中是一个很重要的部分,本文使用幂法和反幂法分别求矩阵的按模最大,按模最小特征向量及对应的特征值。 幂法是一种计算矩阵主特征值的一种迭代法,它最大的优点是方法简单,对于稀疏矩阵比较合适,但有时收敛速度很慢。其基本思想是任取一个非零的初始向量。由所求矩阵构造一向量序列。再通过所构造的向量序列求出特征值和特征向量。 反幂法用来计算矩阵按模最小特征向量及其特征值,及计算对应于一个给定近似特征值的特征向量。本文中主要使用反幂法计算一个矩阵的按模最小特征向量及其对应的特征值。计算矩阵按模最小特征向量的基本思想是将其转化为求逆矩阵的按模最大特征向量。然后通过这个按模最大的特征向量反推出原矩阵的按模最小特征向量。 关键词:矩阵;特征值;特征向量;冥法;反冥法

THE CALCULATIONS OF EIGENV ALUE AND EIGENVECTOR OF MATRIX ABSTRACT Physics, mechanics, engineering technology in a lot of problems in mathematics are attributed to matrix eigenvalue problem, such as vibration (vibration of the bridge, mechanical vibration, electromagnetic vibration, etc.) in physics, some critical values determine problems and theoretical physics in some of the problems. Matrix eigenvalue calculation is a very important part in matrix computation. In this paper, we use the power method and inverse power method to calculate the maximum of the matrix, according to the minimum characteristic vector and the corresponding characteristic value. Power method is an iterative method to calculate the eigenvalues of a matrix. It has the advantage that the method is simple and suitable for sparse matrices, but sometimes the convergence rate is very slow. The basic idea is to take a non - zero initial vector. Construct a vector sequence from the matrix of the matrix. Then the eigenvalues and eigenvectors are obtained by using the constructed vector sequence. The inverse power method is used to calculate the minimum feature vectors and their eigenvalues of the matrix, and to calculate the eigenvalues of the matrix. In this paper, we use the inverse power method to calculate the minimum eigenvalue of a matrix and its corresponding eigenvalues. The basic idea of calculating the minimum characteristic vector of a matrix is to transform it to the maximum characteristic vector of the modulus of the inverse matrix. Then, according to the model, the minimum feature vector of the original matrix is introduced. Key words:Matrix;Eigenvalue;Eigenvector;Iteration methods;

相关文档
最新文档