幂法求矩阵A按模最大的特征值及其特征向量
- 格式:doc
- 大小:140.00 KB
- 文档页数:8
幂法求矩阵最大特征值摘要在物理、力学和工程技术中的很多问题在数学上都归结为求矩阵特征值的问题,而在某些工程、物理问题中,通常只需要求出矩阵的最大的特征值(即主特征值)和相应的特征向量,对于解这种特征值问题,运用幂法则可以有效的解决这个问题。
幂法是一种计算实矩阵A的最大特征值的一种迭代法,它最大的优点是方法简单。
对于稀疏矩阵较合适,但有时收敛速度很慢。
用java来编写算法。
这个程序主要分成了三个大部分:第一部分为将矩阵转化为线性方程组;第二部分为求特征向量的极大值;第三部分为求幂法函数块。
其基本流程为幂法函数块通过调用将矩阵转化为线性方程组的方法,再经过一系列的验证和迭代得到结果。
关键词:幂法;矩阵最大特征值;j ava;迭代POWER METHOD TO CALCULATE THE MAXIMUMEIGENV ALUE MATRIXABSTRACTIn physics, mechanics and engineering technology of a lot of problems in math boil down to matrix eigenvalue problem, and in some engineering, physical problems, usually only the largest eigenvalue of the matrix (i.e., the main characteristics of the value) and the corresponding eigenvectors, the eigenvalue problem for solution, using the power law can effectively solve the problem.Power method is A kind of computing the largest eigenvalue of real matrix A of an iterative method, its biggest advantage is simple.For sparse matrix is right, but sometimes very slow convergence speed.Using Java to write algorithms.This program is mainly divided into three most: the first part for matrix can be converted to linear equations;The second part is the eigenvector of the maximum;The third part is the exponentiation method of function block.Its basic process as a power law function block by calling the method of matrix can be converted to linear equations, then after a series of validation and iteration to get the results.Key words: Power method; Matrix eigenvalue; Java; The iteration目录1幂法 (1)1.1 幂法基本思想 (1)1.2规范化 (2)2概要设计 (3)2.1 设计背景………………..…………………………………………………………. .32.2 运行流程 (3)2.3运行环境 (3)3 程序详细设计 (4)3.1 第一部分:矩阵转化为线性方程组……..………………………………………. .43.2 第二部分:特征向量的极大值 (4)3.3 第三部分:求幂法函数块 (5)4 运行过程及结果 (6)4.1 运行过程.........................................................………………………………………. .64.2 运行结果 (6)4.3 结果分析 (6)5 心得体会 (7)参考文献 (8)附录:源程序 (9)1 幂法设A n 有n 个线性相关的特征向量v 1,v 2,…,v n ,对应的特征值λ1,λ2,…,λn ,满足|λ1| > |λ2| ≥ …≥ |λn |1.1 基本思想因为{v 1,v 2,…,v n }为C n的一组基,所以任给x (0)≠ 0,∑==ni i i v a x 1)0( —— 线性表示所以有])([)(21111111)0(∑∑∑∑====+====ni ii ki kni k k i i ni ik i n i i i kk v a v a v a v A a v a A xA λλλλ若a 1 ≠ 0,则因11<λλi 知,当k 充分大时 A (k )x (0) ≈ λ1ka 1v 1 = cv 1 属λ1的特征向量,另一方面,记max(x ) = x i ,其中|x i | = ||x ||∞,则当k 充分大时,111111*********)0(1)0()max()max()max()max()max()max(λλλλλ==≈---v a v a v a v a x A x A k kk k k k若a 1 = 0,则因舍入误差的影响,会有某次迭代向量在v 1方向上的分量不为0,迭代下去可求得λ1及对应特征向量的近似值。
幂法(指数迭代法) 幂法是通过迭代来计算矩阵的主特征值(按模最⼤的特征值)与其对应特征向量的⽅法,适合于⽤于⼤型稀疏矩阵。
基本定义 设A=(a ij)∈R n×n,其特征值为λi,对应特征向量x i(i=1,...,n),即Ax i=λi x i(i=1,...,n),且{x1,...,x n}线性⽆关。
任取⼀个⾮零向量v0∈R n,且v0≠0,构造⼀个关于矩阵A的乘幂的向量序列:v k=Av k−1=A2v k−2=A3v k−3=...=A k v0 称v k为迭代向量。
设特征值λi的前r个为绝对值最⼤的特征值(ppt中分为λ1强占优和⾮强占优,感觉没必要),即有:|λ1|=|λ2|=...=|λr|>|λr+1|≥...≥|λn| 由于{x1,...,x n} 线性⽆关,所以构成R n的⼀个基,于是v0能被表达为:v0=n∑i=1αi x i(且设α1...αr⾮全零) 由Ax i=λi x i:v k=Av k−1=...=A k v0=n∑i=1A kαi x i=n∑i=1λk iαi x i=λk1(r∑i=1αi x i+εk) 其中:εk=n∑i=r+1(λiλ1)kαix i 因为λ1最⼤,所以有|λiλ1|<1 (i=r+1,...,n),从⽽有:limk→∞(λiλ1)k=0 (i=r+1,...,n) 所以有:limk→∞εk=0limk→∞v k=limk→∞λk1(r∑i=1αi x i+εk)=limk→∞λk1(r∑i=1αi x i) 因为在上式中(r∑i=1αi x i)是固定项,可以看出,迭代到后期,v k+1和v k的各个元素有固定⽐值λ1,即:limk→∞(v k+1)i(v k)i=λ1 这样,收敛到主特征值后,还可另外计算它对应的⼀个特征向量(其实就是构成v0的前r项之和,⽽且只能算⼀个):lim k→∞v kλk1=r∑i=1αi x i 其中收敛速度由⽐值|λr+1λ1|决定,越⼩收敛越快。
求矩阵特征值算法及程序简介1.幂法1、幂法规范化算法(1)输入矩阵A、初始向量( 0),误差eps;(2) k 1;(3)计算V(k)A(k 1);(4)m k max(V(k)) ,m k1max( V ( k 1));(5) (k)V(k)/m k;(6)如果m k m k 1eps,则显示特征值1和对应的特征向量x(1) ),终止;(7)k k 1, 转(3)注:如上算法中的符号max(V )表示取向量V 中绝对值最大的分量。
本算法使用了数据规范化处理技术以防止计算过程中出现益出错误。
2、规范化幂法程序Clear[a,u,x];a=Input[" 系数矩阵A="];u=Input[" 初始迭代向量u(0)="]; n=Length[u];eps=Input[" 误差精度eps ="]; nmax=Input[" 迭代允许最大次数nmax="];fmax[x_]:=Module[{m=0,m1,m2},Do[m1=Abs[x[[k]]];If[m1>m,m2=x[[k]];m=m1], {k,1,Length[x]}];m2]v=a.u;m0=fmax[u];m1=fmax[v]; t=Abs[m1-m0]//N;k=0;While[t>eps&&k<nmax,u=v/m1;v=a.u;k=k+1;m0=m1;m1=fmax[v];t=Abs[m1-m0]//N;Print["k=",k," 特征值=",N[m1,10]," 误差=",N[t,10]];Print[" 特征向量=",N[u,10]]];If[k nmax,Print[" 迭代超限"]]说明:本程序用于求矩阵A按模最大的特征值及其相应特征向量。
竭诚为您提供优质文档/双击可除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,则有i1x(k1)ax(k)...ak1x(0)aαiuiαiλik1uik1i1i1nnnk12k1λ1u1()a2u2()anun11k111u1k112|越小时,收敛越快;且当k充分大时,有可见,当|1 (k1)k111u1x(k1)x(k1)(k)x1(k),对应的特征向量即是。
kxx11u12算法实现(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;endwhileabs(z-b)>epsz=b;y=x./max(abs(x));x=a*y;b=max(x);end[m,index]=max(a(matlab用规范化乘幂法求以下矩阵的按模最大特征值及其特征向量)bs(x));%这两步保证取出来的按模最大特征值t=x(index);%是原值,而非其绝对值。
数值计算解矩阵的按模最大最小特征值及对应的特征向量一.幂法1. 幂法简介:当矩阵A 满足一定条件时,在工程中可用幂法计算其主特征值(按模最大)及其特征向量。
矩阵A 需要满足的条件为: (1) 的特征值为A i n λλλλ,0||...||||21≥≥≥>(2) 存在n 个线性无关的特征向量,设为n x x x ,...,,21 1.1计算过程:i ni i i u xx αα,1)0()0(∑==,有对任意向量不全为0,则有1111112211211111111011)()(...u u a u a u λu λαu αA x A Ax x k n n k n k k ni ik i i ni i i k )(k (k))(k αλλλλλα++++=+=+++≈⎥⎦⎤⎢⎣⎡+++======∑∑ 可见,当||12λλ越小时,收敛越快;且当k 充分大时,有1)1111)11111λαλαλ=⇒⎪⎩⎪⎨⎧==+++(k )(k k(k k )(k x x u x u x ,对应的特征向量即是)(k x 1+。
2 算法实现.,, 3,,1 , ).5()5(,,,,||).4();max(,).3()(max(;0,1).2(,).1()()()(停机否则输出失败信息转置若转否则输出若计算最大迭代次数,误差限,初始向量输入矩阵βλβεβλβλε←+←<<-←←=←←k k N k y x Ay x x abs x y k N x A k k k3 matlab 程序代码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 相当于βif abs(z-b)<eps % 判断第一次迭代后是否满足要求t=max(x);return;endwhile abs(z-b)>eps && k<Nk=k+1;z=b;y=x./max(abs(x));x=A*y;b=max(x);end[m,index]=max(abs(x)); % 这两步保证取出来的按模最大特征值t=x(index); % 是原值,而非其绝对值。
用幂法求矩阵的按模最大特征值例题上线性代数中,矩阵的特征值和特征向量是非常重要的概念。
特征值可以用于描述矩阵的特性和行为,而特征向量则可以帮助我们理解矩阵的变换规律。
而求解矩阵的特征值和特征向量是线性代数中的一个重要问题,其中幂法是一种常用的数值方法。
幂法是一种迭代算法,用于计算矩阵的按模最大特征值和对应的特征向量。
其基本思想是通过矩阵的幂次来逼近特征向量,从而得到特征值的近似值。
接下来,我们将通过一个具体的例题来介绍如何使用幂法求解矩阵的按模最大特征值。
例题:考虑矩阵\[A = \begin{bmatrix} 4 1 \\ 2 3 \end{bmatrix}\]我们的目标是使用幂法求解矩阵A的按模最大特征值和对应的特征向量。
步骤如下:1. 选择一个初始向量\(\mathbf{v}_0\),并将其归一化得到单位向量\(\mathbf{q}_0\)。
通常可以选择\(\mathbf{v}_0 = [1, 1]^T\)作为初始向量。
2. 计算矩阵A与单位向量\(\mathbf{q}_0\)的乘积:\(\mathbf{z}_1 = A\mathbf{q}_0\)。
3. 根据\(\mathbf{z}_1\)更新单位向量\(\mathbf{q}_1\):\(\mathbf{q}_1 = \frac{\mathbf{z}_1}{||\mathbf{z}_1||}\)。
4. 重复步骤2和步骤3,直到收敛或达到预定迭代次数。
接下来,我们通过代码来实现这个幂法求解矩阵的按模最大特征值的过程:```pythonimport numpy as np# 定义矩阵AA = np.array([[4, 1], [2, 3]])# 设定初始向量v = np.array([1, 1])# 设定迭代次数max_iter = 1000tolerance = 1e-6# 进行幂法迭代for i in range(max_iter):z = np.dot(A, v)v = z / np.linalg.norm(z)eigenvalue = np.dot(np.dot(v, A), v)if i > 0 and np.abs(eigenvalue - old_eigenvalue) < tolerance: breakold_eigenvalue = eigenvalueprint("按模最大特征值:", eigenvalue)print("对应的特征向量:", v)```通过运行上面的代码,我们可以得到矩阵A的按模最大特征值和对应的特征向量。
幂法求矩阵A按模最大的特征值及其特征向量幂法(Power Method)是一种求解矩阵特征值的迭代算法,在数值线性代数中被广泛使用。
它利用矩阵的特征向量的特性,通过迭代过程逼近矩阵按模最大的特征值及其对应的特征向量。
假设我们要求解一个n阶矩阵A的按模最大的特征值及其特征向量,其中特征值的绝对值最大,特征向量对应的是这个特征值。
我们设矩阵A的特征值为λ,对应的特征向量为x。
幂法的基本思想是:通过连续的矩阵向量乘法,不断迭代一个向量,使其逼近于x。
迭代过程中,向量的每个元素都会趋近于特征向量对应的分量,最终收敛到x。
下面是幂法的具体步骤:1.选择一个初始向量b0,可以是任意向量,但最好与特征向量接近。
2.进行迭代过程,直到满足终止条件:a) 计算向量bn(第n次迭代):bn = Abn-1b) 计算归一化因子:cn = ,bn,(向量bn的欧几里得范数)c) 归一化向量:xn = bn / cn(将向量bn除以归一化因子,得到归一化向量)3. 判断是否满足收敛要求,如果满足,算法终止,特征值λ的近似值为λ≈cn,特征向量x的近似值为x≈xn。
接下来,我们通过一个数值示例来说明幂法的计算过程。
假设有以下3x3矩阵A:A=[0.80.30.2]0.10.70.40.10.00.5我们将使用幂法来计算矩阵的按模最大的特征值及其特征向量。
步骤1:选择初始向量b0。
我们选择初始向量为b0=[1,1,1],即x 的两个分量值为1步骤2:进行迭代过程。
a)计算向量b1:b1=Ab0b1=[0.8*1+0.3*1+0.2*1,0.1*1+0.7*1+0.4*1,0.1*1+0.0*1+0.5*1] =[1.3,1.9,0.6]b)计算归一化因子c1:c1=,b1,=√(1.3^2+1.9^2+0.6^2)≈2.498c)归一化向量:x1=b1/c1x1=[1.3/2.498,1.9/2.498,0.6/2.498]=[0.520,0.760,0.240]步骤3:判断是否满足收敛要求。
摘 要根据现代控制理论课程的特点, 提出并利用MATLAB 设计了现代控制理论课程的实验, 给出了设计的每个实验的主要内容及使用到的MATLAB 函数, 并对其中的一个实验作了详细说明。
通过这些实验, 将有助于学生理解理论知识, 学习利用MATLAB 解决现代控制理论问题。
关键词:现代控制理论、MATLAB 、仿真。
1设计目的、内容及要求1.1设计目的本课程设计以自动控制理论、现代控制理论、MATLAB 及应用等知识为基础,求连续系统对应的离散化的系统,并用计算系数阵按模最大的特征根法判别离散系统的稳定性,目的是使学生在现有的控制理论的基础上,学会用MATLAB 语言编写控制系统设计与分析的程序,通过上机实习加深对课堂所学知识的理解,掌握一种能方便地对系统进行离散化的实现和分析系统的稳定性的设计的工具。
1.2设计内容及要求1 在理论上对连续系统离散化推导出算法和计算公式2 画出计算机实现算法的框图3 编写程序并调试和运行4 以下面的系统为例,进行计算⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----=041020122A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=100B ,[]111-=c 5 分析运算结果6 幂法迭代精度为ep=0.001,离散系统展开项数为207 程序应具有一定的通用性,对不同参数能有兼容性。
2算法选择及推导2.1连续系统离散化算法书P67离散化意义已知被控对象的状态方程为:()()()()()()t t u t y t t u t =+=+ xAx B Cx D对方程求解,得:0()()0()()()ott t t t t e t e u d τττ--=+⎰A A x x B设0t kT =,(1)t k T =+,代入上式,得:H 公式若省略T 则为{⎰+-++Φ=+Tk kTd 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 TTAT T k kT T k A AT )()()()()()()(])1([(:)()(0,1,,)1()()()(0)1(])1[(+==+=+Φ=====-=-+=⋅==Φ=⎰⎰⎰+-+ττττττ2.2判别离散系统的稳定性2.2.1方法选择这里选用乘幂法,即求矩阵A 按模最大的特征值和相应的特征向量的方法判别离散系统的稳定性。
julia 幂法求矩阵特征值Julia中的幂法求矩阵特征值可以使用Eigen.jl库来实现。
以下是一个简单的示例代码:juliausing Eigen# 定义矩阵AA = [1 2; 3 4]# 计算矩阵A的特征值和特征向量eigenvalues, eigenvectors = eig(A)# 输出特征值和特征向量println("特征值:", eigenvalues)println("特征向量:\n", eigenvectors)在这个示例中,我们首先定义了一个2x2的矩阵A,然后使用eig()函数计算矩阵A的特征值和特征向量。
最后,我们输出了特征值和特征向量。
需要注意的是,Julia中的矩阵特征值计算默认使用QR分解方法,而幂法通常用于计算按模最大的特征值和相应的特征向量。
因此,如果只需要计算按模最大的特征值和特征向量,可以使用eigsh()函数,如下所示:juliausing Eigen# 定义矩阵AA = [1 2; 3 4]# 计算按模最大的特征值和特征向量eigenvalue, eigenvector = eigsh(A, 1, "smallestabs")# 输出特征值和特征向量println("按模最大的特征值:", eigenvalue)println("相应的特征向量:\n", eigenvector)在这个示例中,我们使用eigsh()函数计算按模最大的特征值和特征向量,并指定返回一个结果。
最后,我们输出了按模最大的特征值和相应的特征向量。
数值分析幂法求矩阵A按模最大的特征值及其特征向量幂法的主要思想设 nn ij R a A ⨯∈=)( ,其特征值为i λ ,对应特征向量为),,,1(n i x i=即i i i x Ax λ= ),,1(n i =,且x 1,······,x n线性无关。
求矩阵A的主特征值及对应的特征向量。
幂法的基本思想: 任取一个非零初始向量v 0 ∈R n 且v 0≠0,由矩阵A 的乘幂构造一向量序列:称{vk }为迭代向量,A 特征值中 λ1为强占优,即▕ λ1▕>▏λ2 ▏>······>▏λn ▏,{x 1,x 2,······,x n }线性无关,即{x 1,x 2,······,x n }为R n 中的一个基,于是对任意的初始向量v 0∈R n 且v0≠0有展开式。
(v0 用{x i }的线性组合表示)(且设01≠α) 则当k =2,3,… 时,vk =A vk-1 =A k v 0⎩⎨⎧01Av v =0212v A Av v ==011v A Av v k k k ++==),,1,0(n k =∑==n i i i x v 10 α)(221101n n x x x A v A vααα+++==nn x A x A x Aααα+++=2211nn n x x x λαλαλα+++=222111)(111+≡x kαλk ε其中 由假设▕ λ1▕>▏λ2 ▏>······>▏λn ▏,得 ,从而 即,0lim =∞→k k ε且收敛速度由比值||12λλ=r 确定。
所以有说明,当k 充分大时,有111x v k kαλ≈,或 k kv 1λ 越来越接近特征向量规范化幂法的算法①输入矩阵A 、初始向量v (0),误差eps ,实用中一般取v (0)=(1,1,···,1)T ; ②k ←1;③计算v(k) ←Au (k-1);④m k←max{ v (k) },m k-1←{ v (k-1) };⑤u (k) ←v (k)/ m k;⑥如果▕ m k - m k-1▕<eps ,则显示特征值λ1←和对应的特征向量x (1),终止;⑦k=k+1,转③。
数值分析
幂法求矩阵A按模最大的特征值及其
特征向量
幂法的主要思想
设 n
n ij R a A ⨯∈=)( ,其特征值为i λ ,对应特征向量为
),
,,1(n i x i
=即
i i i x Ax λ= )
,,1(n i =,且
x 1,······,x n
线性无关。
求矩阵A
的主特征值及对应的特征向量。
幂法的基本思想: 任取一个非零初始向量
v 0 ∈R n 且v 0≠0,
由矩阵A 的乘幂构造一向量序列:
称{
v
k }为迭代向量,
A 特征值中 λ1为强占优,即▕ λ1▕>▏λ2 ▏>······>▏λn ▏,
{x 1,x 2,······,x n }线性无关,即{x 1,x 2,······,x n }为R n 中的一
个基,于是对任意的初始向量v 0
∈R n 且
v
0≠0有展开式。
(v
0 用{x i }
的线性组合表示)
(且设01
≠α) 则
当k =2,3,… 时,v
k =
A v
k-1 =
A k v 0
⎩
⎨⎧0
1Av v =0
212v A Av v ==01
1
v A Av v k k k ++==)
,,1,0(n k =∑==n i i i x v 1
0 α)(221101n n x x x A v A v
ααα+++==n
n x A x A x A
ααα+++=2211n
n n x x x λαλαλα+++=222111)
(111
+≡x k
αλk ε
其中 由假设▕ λ1▕>▏λ2 ▏>······>▏λn ▏,得 ,从而 即,0lim =∞→k k ε且收敛速度由比值||12λλ=r 确定。
所以有
说明,当k 充分大时,有1
11
x v k k
αλ≈,或 k k
v 1λ 越来越接近特征
向量
规范化幂法的算法
①输入矩阵A 、初始向量v (0),误差eps ,实用中一般取v (0)=
(1,1,···,1)T ; ②k ←1;
③计算v
(k) ←Au (k-1);
④
m k
←max{ v (k) },m k-1
←{ v (k-1) };
⑤u (k) ←v (k)/ m k
;
⑥如果▕ m k - m k-1▕<eps ,则显示特征值λ1
←和对应的特征向
量x (1),终止;
⑦k=k+1,转③。
n k n n k k x x
)()(
1
2122λλαλλαε++=),,2(1||1n i i =<λλ
),,,2(0)(lim 1n i k i k ==∞→λλ111
lim x v k k
k
αλ=∞
→。
11x
α
幂法- C语言程序
#include<stdio.h>
#include<math.h>
void LOOP(float a[20][20],float u[20],int); //矩阵最高阶数是20,可以更改最高阶数float MAX(float u[20],int);
void main(void)
{
float a[20][20],u[20],x[20],y,z;
int i,j,n;
printf("请输入方阵阶数:\n");
scanf("%d",&n);
printf("请按行输入各矩阵元素值:");
for(i=0;i<=n-1;i++)
{
for(j=0;j<=n-1;j++)
{
scanf("%f",&a[i][j]);
}
}
printf("请输入初次迭代向量:");
for(i=0;i<=n-1;i++)
{
scanf("%f",&u[i]);
}
y=MAX(u,n);
do
{
z=y;
LOOP(a,u,n);
y=MAX(u,n);
for(i=0;i<=n-1;i++)
{
x[i]=u[i]/y;
u[i]=x[i];
}
}
while(fabs(z-y)>=0.0000005);
printf("矩阵特征值λ=%f\n",y);
printf("矩阵特征向量x:\n");
for(i=0;i<=n-1;i++)
{
printf("%10f\n",x[i]);
}
}
void LOOP(float a[20][20],float u[20],int n) {
float S,U[20];
int i,j;
for(i=0;i<=n-1;i++)
{
U[i]=u[i];
}
for(i=0;i<=n-1;i++)
{
S=0.0;
for(j=0;j<=n-1;j++) {
S=S+a[i][j]*U[j]; }
u[i]=S;
}
}
float MAX(float u[20],int n)
{
float max;
int i;
max=u[0];
for(i=0;i<=n-1;i++)
{
if(u[i]>max)
{
max=u[i];
}
}
return(max);
}
幂法- C语言程序检验
(见书P89 页)
【例4-1】
得出的结果与书上结果相同!
创新点:本程序可以更改矩阵大小,使其更加符合选择性,还可以改变误差的范围,程序简单易懂,运用数组解决矩阵输入的问题,简化了C语言程序。
结语
通过本次数值分析实验的研究,我发现我收获颇多:这次研究不仅加深了我对幂法以及相关求矩阵的特征值及其特征向量方法的了解,还使我对数值分析这门课有了更深的领悟:数值分析在计算机使用方面有很强的实用性。
一个问题,只要给出一个算法,就可以编出一个完美的程序,而且程序在算法结构以及误差分析方面有很高的准确度。
我在C语言方面也得到了很大的提高,编程更加流畅且出现错误的机会大大减少,查错的能力也有很大的进步。