精华内容
下载资源
问答
  • 反幂法求矩阵特征值 以及特征向量

    热门讨论 2010-04-27 21:41:37
    反幂法求解矩阵运用于工程上的计算,方便快捷
  • 采用数值分析中的反幂法来求解矩阵特征值,采用matlab实现
  • 输入参数:系数矩阵A,近似值lamda_initial,初始向量x_initial,误差限epsilon,最大迭代次数N。输出接近给定的lamda_initial的矩阵特征值
  • 幂法和反幂法求矩阵特征值课程设计报告书.doc
  • 矩阵特征值与特征向量的计算的matlab实现,幂法、反幂法和位移反幂法、雅可比(Jacobi)方法、豪斯霍尔德(Householder)方法、实对称矩阵的三对角化、QR方法、根位移QR方法计算实对称矩阵特征值、广义特征值问题...
  • 最详细的幂法、反幂法求解矩阵特征值c程序
  • 用QR方法、幂法和反幂法求矩阵特征值 本文介绍任意矩阵全部特征值的QR方法,部分特征值和特征向量的幂法,反幂法
  • 数值分析课程设计幂法与反幂法求矩阵特征值
  • 数值分析中幂法、反幂法求矩阵特征值的C程序,有必须的说明
  • 采用C语言编写,运用数值迭代方法求矩阵特征值和特征向量,包括高斯迭代和杜利特尔迭代,精度10^-12
  • 幂法简介:当矩阵A满足一定条件时,在工程中可用幂法计算其主特征值(按模最大)及其特征向量。矩阵A需要满足的条件为:存在n个线性无关的特征向量,设为1.1计算过程:不全为0,则有可见,当越小时,收敛越快;且当k...

    数值计算解矩阵的按模最大最小特征值及对应的特征向量

    一.幂法

    1. 幂法简介:

    当矩阵A满足一定条件时,在工程中可用幂法计算其主特征值(按模最大)及其特征向量。矩阵A需要满足的条件为:

    存在n个线性无关的特征向量,设为

    1.1计算过程:

    不全为0,则有

    可见,当越小时,收敛越快;且当k充分大时,有,对应的特征向量即是。

    2 算法实现

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

    t=max(x);

    return;

    end

    while abs(z-b)>eps && k

    k=k+1;

    z=b;

    y=x./max(abs(x));

    x=A*y;

    b=max(x);

    end

    [m,index]=max(abs(x)); % 这两步保证取出来的按模最大特征值

    t=x(index); % 是原值,而非其绝对值。

    end

    4 举例验证

    选取一个矩阵A,代入程序,得到结果,并与eig(A)的得到结果比较,再计算 A*y-t*y,验证y是否是对应的特征向量。结果如下:

    结果正确,表明算法和代码正确,然后利用此程序计算15阶Hilb矩阵,与eig(A)的得到结果比较,再计算 A*y-t*y,验证y是否是对应的特征向量。设置初始向量为x0=ones(15,1),结果显示如下

    可见,结果正确。得到了15阶Hilb矩阵的按模最大特征值和对应的特征向量。

    二.反幂法

    1.反幂法简介及其理论

    在工程计算中,可以利用反幂法计算矩阵按模最小特征值及其对应特征向量。其基本理论如下,与幂法基本相同:

    ,可知,A和A-1的特征值互为倒数,求A按模最小特征值即求A-1的按模最大特征值,取倒数即为A的按模最小特征值所以算法基本相同,区别就是在计算

    算法实现

    3 matlab程序代码

    function [s,y]=invpower(A,x0,eps,n) % s 为按模最小特征值,y是对应特征向量

    k=1; r=0; % r相当于

    y=x0./max(abs(x0)); % 规范化初始向量

    [L,U]=lu(A);

    z=L\y;

    x=U\z;

    u=max(x);

    s=1/u; % 按模最小为A-1按模最大的倒数.

    if abs(u-r)

    return

    end

    while abs(u-r)>eps && k

    k=k+1;

    r=u;

    y=x./max(abs(x));

    z=L\y;

    x=U\z;

    u=max(x);

    end

    [m,index]=max(abs(x)); % 这两步保证取出来的按模最大特征值

    s=1/x(index); % 是原值,而非其绝对值。

    end

    4 举例验证

    同幂法一样,选取一个矩阵A,代入程序,得到结果,并与eig(A)的得到结果比较,再计算 A*y-t*y,验证y是否是对应的特征向量。

    可见结果正确,然后利用此程序计算15阶Hilb矩阵,eig(A)的得到结果比较,再计算 A*y-s*y,验证y是否是对应的特征向量。设置初始向量为x0=ones(15,1),结果显示如下

    可见,结果真确。得到了15阶Hilb矩阵的按模最大特征值和对应的特征向量。

    计算条件数

    矩阵A的条件数等于A的范数与A的逆的范数的乘积,即cond(A)=‖A‖·‖A^(-1)‖,对应矩阵的3种范数,可以定义3种条件数。 函数 cond(A,1)、cond(A)或cond(A inf)是判断矩阵病态与否的一种度量,条件数越大表明矩阵的病态程度越大.

    ,

    而如果A为对称矩阵,如Hilb矩阵,的最大最小特征值,分别为A的最大最小特征值的平方。所以cond(A) 为A的最大最小特征值得比值。对于本例中的15阶Hilb矩阵来说,利用上面计算结果得其条件数(选择第二种条件数)为:3.0934e+0

    展开全文
  • #include//用反幂法计算矩阵的最小模特征及相应的特征向量#include#include#define m 3#define q 1.2679//平移量void L_U(double aa[m][m],double LL[m][m],double UU[m][m]){double (*a)[m],(*L)[m],(*U)[m];...

    #include//用反幂法计算矩阵的最小模特征值及相应的特征向量

    #include

    #include

    #define m 3

    #define q 1.2679//平移量

    void L_U(double aa[m][m],double LL[m][m],double UU[m][m])

    {

    double (*a)[m],(*L)[m],(*U)[m];

    double sum=0;

    a=aa,L=LL,U=UU;

    for(int i=0;i

    {

    for(int j=0;j

    {

    *(*(L+i)+j)=*(*(U+i)+j)=0;

    }

    }

    for(int r=0;r

    {

    for(int j=r;j

    {

    if(r==0)

    {

    U[r][j]=a[r][j];

    }

    else

    {

    for(int k=0;k

    {

    sum+=L[r][k]*U[k][j];

    }

    U[r][j]=a[r][j]-sum;

    }

    sum=0;

    }

    for(int i=r+1;i

    {

    if(r==0)

    {

    L[i][r]=a[i][r]/U[r][r];

    }

    else

    {

    for(int k=0;k

    {

    sum+=L[i][k]*U[k][r];

    }

    L[i][r]=(a[i][r]-sum)/U[r][r];

    }

    sum=0;

    }

    }

    for(i=0;i

    {

    L[i][i]=1;

    }

    }

    void main()//主函数

    {

    double A[m][m]={{2,1,0},{1,3,1},{0,1,4}};

    double v0[m];

    double u0[m];

    double y[m];

    double un[m];

    double t;//最大值临时变量

    double temp;

    double sum;

    double e=0.0005;

    double L[m][m],U[m][m];

    int i,j;

    int tap=0;//迭代次数

    cout<

    cout<

    for(i=0;i

    {

    for(j=0;j

    {

    L[i][j]=U[i][j]=0;

    cout<

    if(i==j)

    A[i][j]-=q;

    }

    cout<

    }

    cout<

    for(i=0;i

    {

    y[i]=u0[i]=1;

    }

    //下面对A[i][j]进行LU分解

    cout<

    for(i=0;i

    {

    for(j=0;j

    {

    cout<

    }

    cout<

    }

    cout<

    L_U(A,L,U);//调用L、U分解函数

    cout<

    for(i=0;i

    {

    for(j=0;j

    {

    cout<

    }

    cout<

    }

    cout<

    for(i=0;i

    {

    for(j=0;j

    {

    cout<

    }

    cout<

    }//LU分解完毕

    do

    {

    t=0;

    temp=0;

    v0[m-1]=y[m-1]/U[m-1][m-1];

    for(i=m-2;i>=0;i--)

    {

    sum=0;

    for(j=2;j>i;j--)

    {

    sum+=U[i][j]*v0[j];

    }

    v0[i]=(y[i]-sum)/U[i][i];

    }//求v0i的回代

    for(i=0;i

    {

    if(fabs(v0[i])>t)

    t=v0[i];

    }

    for(i=0;i

    {

    un[i]=u0[i];//保存u[]的值

    u0[i]=v0[i]/t;

    if(fabs(un[i]-u0[i])>temp)

    temp=fabs(un[i]-u0[i]);//保存un[i]-u[i]的最大值

    }//算出ui

    tap++;

    //第二次迭代

    y[0]=u0[0]/L[0][0];

    for(i=1;i

    {

    sum=0;

    for(j=0;j

    {

    sum+=L[i][j]*y[j];

    }

    y[i]=(u0[i]-sum)/L[i][i];

    }

    }while(temp>e);

    cout<

    cout<

    for(i=0;i

    {

    cout<

    }

    cout<

    }

    展开全文
  • 幂法简介:当矩阵A 满足一定条件时,在工程中可用幂法计算其主特征值(按模最大)及其特征向量。矩阵A 需要满足的条件为: (1) 的特征值为A i n λλλλ,0||...||||21≥≥≥>(2) 存在n 个线性无关的特征向量,设...

    数值计算解矩阵的按模最大最小特征值及对应的特征向量

    一.幂法

    1. 幂法简介:

    当矩阵A 满足一定条件时,在工程中可用幂法计算其主特征值(按模最大)及其特征向量。矩阵A 需要满足的条件为: (1) 的特征值为A i n λλλλ,0||...||||21

    ≥≥≥>

    (2) 存在n 个线性无关的特征向量,设为n x x x ,...,,21

    1.1计算过程:

    i n

    i i i u x

    x αα,1

    )

    0()0(∑==,有对任意向量不全为0,则有

    1

    11111221

    12111

    1

    1

    11

    1

    011)()(...u u a u a u λu λαu αA x A Ax x k n n k n k k n

    i i

    k i i n

    i i i k )(k (k))(k αλλλλλα++++=+=+++≈?

    ?

    ????+++======∑∑Λ 可见,当||1

    2

    λλ越小时,收敛越快;且当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 k

    3 matlab 程序代码

    展开全文
  • 矩阵为五带状对称矩阵:主对角线为(1.64-0.024*i)*sin(0.2*i)-0.64*exp(0.1/i) 次对角线为b=0.16,三对角线...特征值x1,xs=min|xi| x1,x501,xs 最接近=x1+k的特征值,k=1,…,39 矩阵的条件数cond(A)2和行列式detA
  • 北航数值分析第一次大作业,用幂法和反幂法求矩阵特征值进而出2范数条件数。上下边带压缩以提高运行速度,计算完所有矩阵的条件数耗时约12秒
  • 首先把特征向量归一化 另一种方法 幂法(迭代得到最大特征向量,再求特征值反幂法

    首先把特征向量归一化

    另一种方法

     

    幂法(迭代得到最大特征向量,再求特征值)

     

    反幂法

     

     

    展开全文
  • 该代码是实现对矩阵A进行按照幂法和反幂法来进行求解特征值的算法
  • 数值方法课程设计幂法反幂法计算矩阵特征值和特征向量-附Matlab程序教程矩阵的特征值与特征向量计算PAGE矩阵的特征值与特征向量的计算摘 要物理,力学,工程技术中的很多问题在数学上都归结于求矩阵特征值的问题,...
  • %反幂法求矩阵按模最小特征值 %2015.11.8 密密编写 (*^__^*) 嘻嘻……     function [lam]=jingmi(ep)%lam是A的按模最小的特征值 %初始化  n=501;  a=1:n;%存储A的主对角线元素  f
  • 幂法求解矩阵的最小特征值及对应的特征向量 1.算法实现 逆幂法也采用迭代运算得到特征值和对应特征向量,具体步骤见下, 2. 实例及matlab应用 clear;clc; A=[5.2 4.8 7.8 4.9 6 4.4 8.8 5.0 5.7 5.7 7.8 6.9 5.4...
  • -幂法求特征值 -反幂法求特征值 -带原点平移的反幂法求特征值
  • 数值方法课程设计幂法反幂法计算矩阵特征值和特征向量-附matlab程序.docx 矩阵的特征值与特征向量计算矩阵的特征值与特征向量的计算摘要物理,力学,工程技术中的很多问题在数学上都归结于求矩阵特征值的问题,例如...
  • 幂法用于计算非奇异阵AAA的按模最小的特征值和特征向量。 算法思想 实际计算中,可以构造以下迭代格式: {Lyˉk=zk−1Uyk=yˉkmk=max⁡(yk)i(1<=i<=n)zk=yk/mk \begin{cases} L{{\bar y}_k} = {z_{k - 1}}\\...
  • 1. 矩阵特征值界的估计 2. 幂法与反幂法 2.1 幂法 2.2 幂法的加速方法 2.3 反幂法
  • 数值方法课程设计报告幂法反幂法计算矩阵特征值和特征向量-附Matlab程序.doc
  • 数值方法课程设计报告幂法反幂法计算矩阵特征值和特征向量-附Matlab程序.docx
  • 颜庆津版数值分析编程作业,C语言(少量C++语法)实现矩阵的QR分解迭代求矩阵的全部复数格式特征值,先对矩阵进行拟上三角化再迭代,迭代出全部特征值后使用列主元素高斯消元法求出所有实特征值对应的特征向量。
  • // 用幂法和反幂法分别计算矩阵按模最大和按模最小的特征值及其特征向量 // ////////////////////////////////////////////////////////////////////////// #include<stdio.h> #include<math.h> #...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,394
精华内容 957
关键字:

反幂法求矩阵特征值