幂法 Euler法

一、实验原理

根据幂法,Euler法的相关知识和算法编程完成本实验

二、实验内容

见第7 章PPT :用规范化幂法计算下面矩阵的按模最大特征值及对应的特征向量

见第8 章PPT :分别用简单欧拉法和改进欧拉法对如下初值问题作验证性计算

三、实验过程 (可以文字说明 + 运行结果截图)

1 )规范化幂法

实验说明:

数据说明

1.矩阵A:

一个 3×3 的系数矩阵,表示为 array[N][N]。

2.初始向量

一个长度为 3 的初始猜测向量,表示为 a0[N]。

3.迭代次数:

count:迭代次数。

收敛条件:

ϵ=0.000001:绝对误差阈值,当特征值的相对变化小于该值时停止迭代。

代码说明

1.GetMax函数:

获取数组中的最大值。

  1. matrixMulti函数:

对矩阵 A 和初始向量

进行矩阵相乘,得到迭代后的向量。

  1. main函数:

定义矩阵 A 和初始向量

在迭代过程中,对初始向量

进行规范化,然后进行矩阵相乘,得到迭代后的向量。

计算特征值的相对变化,若小于收敛条件 ϵ,则停止迭代。

输出迭代次数和最大特征值。

算法说明

幂法:用于估计矩阵的最大特征值和对应的特征向量。

在每次迭代中,先对当前向量进行规范化,然后进行矩阵与向量的乘积。

通过计算每次迭代后向量中的最大元素,来估计最大特征值的大小。

当最大特征值的相对变化小于给定的绝对误差阈值时,停止迭代。

运行截图:

2 )简单欧拉法和改进欧拉法

实验说明:

数据说明

1.初始点

2.步长 h

3.迭代次数 n。

代码说明

  1. Euler类:

实现了简单欧拉法。

包括成员函数 fun 用于定义微分方程。

成员函数 Eulerfun 执行简单欧拉法迭代计算。

2.EulerPro类继承自 Euler:

实现了改进的欧拉法。

在 EulerProfun 函数中使用了改进的公式进行迭代计算。

  1. main函数:

创建了简单欧拉法和改进欧拉法的对象,并调用相应的函数进行计算。

打印了计算结果。

算法说明

1.简单欧拉法:

使用简单欧拉法逐步逼近微分方程的数值解。

在每一步中,通过计算当前点的斜率,然后使用步长 h进行线性近似,从而得到下一个点的近似值。

2.改进欧拉法:

改进欧拉法在简单欧拉法的基础上,通过使用改进的公式来提高精度。

在每一步中,不仅仅使用当前点的斜率,还使用了下一个点的斜率,然后取两者平均值作为斜率,从而得到下一个点的近似值。

运行截图:

相关推荐
SweetCode8 分钟前
裴蜀定理:整数解的奥秘
数据结构·python·线性代数·算法·机器学习
ゞ 正在缓冲99%…22 分钟前
leetcode76.最小覆盖子串
java·算法·leetcode·字符串·双指针·滑动窗口
xuanjiong22 分钟前
纯个人整理,蓝桥杯使用的算法模板day2(0-1背包问题),手打个人理解注释,超全面,且均已验证成功(附带详细手写“模拟流程图”,全网首个
算法·蓝桥杯·动态规划
惊鸿.Jh42 分钟前
【滑动窗口】3254. 长度为 K 的子数组的能量值 I
数据结构·算法·leetcode
明灯L42 分钟前
《函数基础与内存机制深度剖析:从 return 语句到各类经典编程题详解》
经验分享·python·算法·链表·经典例题
碳基学AI1 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义免费下载方法
大数据·人工智能·python·gpt·算法·语言模型·集成学习
补三补四1 小时前
机器学习-聚类分析算法
人工智能·深度学习·算法·机器学习
独好紫罗兰1 小时前
洛谷题单3-P5718 【深基4.例2】找最小值-python-流程图重构
开发语言·python·算法
正脉科工 CAE仿真1 小时前
基于ANSYS 概率设计和APDL编程的结构可靠性设计分析
人工智能·python·算法
Dovis(誓平步青云)2 小时前
【数据结构】排序算法(中篇)·处理大数据的精妙
c语言·数据结构·算法·排序算法·学习方法