【数值分析】用幂法计算矩阵的主特征值和对应的特征向量(附matlab代码)

简介: 【数值分析】用幂法计算矩阵的主特征值和对应的特征向量(附matlab代码)

题目

用幂法计算下列矩阵的按模最大特征值及对应的特征向量

幂法

代码

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 简介:用幂法计算矩阵的主特征值和对应的特征向量
% 作者:不雨_亦潇潇
% 文件:mifa.m
% 日期:20221109
% 博客:https://blog.csdn.net/weixin_43470383
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc; clear all;
% A = [7 3 -2; 3 4 -1; -2 -1 3];
A = [3 -4 3; -4 6 3; 3 3 1];
u =[1; 1; 1];
err = 10^(-4);
% 第一次迭代
k = 1;
m0 = 1;
V =A*u;
m = max(V);
u = V/m;
disp('k=')
disp(k)
disp('V^T=')
disp(V')
disp('m=')
disp(m)
disp('u^T=')
disp(u')
while abs(m0-m)>err
    m0 = m;
    k = k+1;
    V =A*u;
    m = max(V); % V绝对值最大的分量
    u = V/m; % 规范化向量  
    disp('k=')
    disp(k)
    disp('V^T=')
    disp(V')
    disp('m=')
    disp(m)
    disp('u^T=')
    disp(u')
end
lambda = m0 % 最终得到的主特征值
vector = u % 最终得到的特征向量

题目1输出结果

k=

1

V^T=

8 6 0

m=

8

u^T=

1.0000 0.7500 0

k=

2

V^T=

9.2500 6.0000 -2.7500

m=

9.2500

u^T=

1.0000 0.6486 -0.2973

k=

3

V^T=

9.5405 5.8919 -3.5405

m=

9.5405

u^T=

1.0000 0.6176 -0.3711

k=

4

V^T=

9.5949 5.8414 -3.7309

m=

9.5949

u^T=

1.0000 0.6088 -0.3888

k=

5

V^T=

9.6041 5.8240 -3.7753

m=

9.6041

u^T=

1.0000 0.6064 -0.3931

k=

6

V^T=

9.6054 5.8187 -3.7857

m=

9.6054

u^T=

1.0000 0.6058 -0.3941

k=

7

V^T=

9.6056 5.8172 -3.7881

m=

9.6056

u^T=

1.0000 0.6056 -0.3944

k=

8

V^T=

9.6056 5.8168 -3.7887

m=

9.6056

u^T=

1.0000 0.6056 -0.3944

lambda =

9.6056

vector =

1.0000

0.6056

-0.3944

题目2输出结果

k=

1

V^T=

2 5 7

m=

7

u^T=

0.2857 0.7143 1.0000

k=

2

V^T=

1.0000 6.1429 4.0000

m=

6.1429

u^T=

0.1628 1.0000 0.6512

k=

3

V^T=

-1.5581 7.3023 4.1395

m=

7.3023

u^T=

-0.2134 1.0000 0.5669

k=

4

V^T=

-2.9395 8.5541 2.9268

m=

8.5541

u^T=

-0.3436 1.0000 0.3421

k=

5

V^T=

-4.0045 8.4010 2.3112

m=

8.4010

u^T=

-0.4767 1.0000 0.2751

k=

6

V^T=

-4.6047 8.7320 1.8451

m=

8.7320

u^T=

-0.5273 1.0000 0.2113

k=

7

V^T=

-4.9481 8.7432 1.6293

m=

8.7432

u^T=

-0.5659 1.0000 0.1864

k=

8

V^T=

-5.1387 8.8228 1.4886

m=

8.8228

u^T=

-0.5824 1.0000 0.1687

k=

9

V^T=

-5.2412 8.8359 1.4214

m=

8.8359

u^T=

-0.5932 1.0000 0.1609

k=

10

V^T=

-5.2969 8.8553 1.3814

m=

8.8553

u^T=

-0.5982 1.0000 0.1560

k=

11

V^T=

-5.3265 8.8606 1.3615

m=

8.8606

u^T=

-0.6011 1.0000 0.1537

k=

12

V^T=

-5.3425 8.8655 1.3502

m=

8.8655

u^T=

-0.6026 1.0000 0.1523

k=

13

V^T=

-5.3509 8.8673 1.3445

m=

8.8673

u^T=

-0.6034 1.0000 0.1516

k=

14

V^T=

-5.3555 8.8686 1.3413

m=

8.8686

u^T=

-0.6039 1.0000 0.1512

k=

15

V^T=

-5.3579 8.8692 1.3396

m=

8.8692

u^T=

-0.6041 1.0000 0.1510

k=

16

V^T=

-5.3592 8.8695 1.3387

m=

8.8695

u^T=

-0.6042 1.0000 0.1509

k=

17

V^T=

-5.3599 8.8697 1.3383

m=

8.8697

u^T=

-0.6043 1.0000 0.1509

k=

18

V^T=

-5.3602 8.8698 1.3380

m=

8.8698

u^T=

-0.6043 1.0000 0.1509

lambda =

8.8697

vector =

-0.6043

1.0000

0.1509

相关文章
基于粒子滤波器的电池剩余使用寿命计算matlab仿真
本研究基于粒子滤波器预测电池剩余使用寿命(RUL),采用MATLAB2022a实现。通过非线性动力学模型模拟电池老化过程,利用粒子滤波器处理非线性和非高斯问题,准确估计电池SOH变化趋势,进而预测RUL。系统仿真结果显示了良好的预测性能。
|
1月前
|
运维 算法
基于Lipschitz李式指数的随机信号特征识别和故障检测matlab仿真
本程序基于Lipschitz李式指数进行随机信号特征识别和故障检测。使用MATLAB2013B版本运行,核心功能包括计算Lipschitz指数、绘制指数曲线、检测故障信号并标记异常区域。Lipschitz指数能够反映信号的局部动态行为,适用于机械振动分析等领域的故障诊断。
|
2月前
|
算法
MATLAB符号计算
【10月更文挑战第9天】MATLAB不仅擅长数值计算,还具备强大的符号计算功能,支持代数运算、方程求解、微积分等。本文介绍如何使用MATLAB的符号工具箱进行符号变量定义、方程求解、微分积分及矩阵运算,并通过多个实际应用案例展示了其在机械系统、电路分析、经济优化和物理运动学等领域的应用。此外,文章还提供了符号计算的最佳实践和未来展望。
74 2
|
2月前
|
安全 调度
电力系统的负荷损失和潮流计算matlab仿真,对比最高度数,最高介数以及最高关键度等节点攻击
本课题研究节点攻击对电力系统稳定性的影响,通过模拟最高度数、最高介数和最高关键度攻击,对比不同攻击方式下的停电规模。采用MATLAB 2022a 进行系统仿真,核心程序实现线路断开、潮流计算及优化。研究表明,节点攻击会导致负荷损失和系统瘫痪,对电力系统的安全构成严重威胁。通过分析负荷损失率和潮流计算,提出减少负荷损失的方法,以提升电力系统的稳定性和安全性。
|
2月前
|
Serverless
MATLAB中的矩阵与向量运算
【10月更文挑战第2天】本文全面介绍了MATLAB中的矩阵与向量运算,包括基本操作、加减乘除、转置、逆矩阵、行列式及各种矩阵分解方法。通过丰富的代码示例,展示了如何利用矩阵运算解决线性方程组、最小二乘法拟合、动态系统模拟和电路分析等问题。掌握这些运算不仅提升编程效率,还能在工程计算和科学研究中发挥重要作用。
100 1
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
215 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
算法 数据可视化 数据安全/隐私保护
基于LK光流提取算法的图像序列晃动程度计算matlab仿真
该算法基于Lucas-Kanade光流方法,用于计算图像序列的晃动程度。通过计算相邻帧间的光流场并定义晃动程度指标(如RMS),可量化图像晃动。此版本适用于Matlab 2022a,提供详细中文注释与操作视频。完整代码无水印。
|
3月前
|
机器学习/深度学习 算法
基于心电信号时空特征的QRS波检测算法matlab仿真
本课题旨在通过提取ECG信号的时空特征并应用QRS波检测算法识别心电信号中的峰值。使用MATLAB 2022a版本实现系统仿真,涵盖信号预处理、特征提取、特征选择、阈值设定及QRS波检测等关键步骤,以提高心脏疾病诊断准确性。预处理阶段采用滤波技术去除噪声,检测算法则结合了一阶导数和二阶导数计算确定QRS波峰值。
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
105 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
139 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现