【数值分析】反幂法,matlab实现

反幂法20231226

一种求实矩阵 A {A} A按模最小的特征值,及其对应的特征向量 x i {x_i} xi 的方法,只能求一个
要保证矩阵最小特征值只有一个,有 n {n} n 个线性无关的特征向量,矩阵可逆
可以通过求矩阵 A − 1 {A^{-1}} A1 的按模最大特征值和对应特征向量来求矩阵 A {A} A 的按模最小特征值。
每次乘完之后要规范化,防止上溢或下溢。规范化可以用各种范数。
一般会使用结合原点平移的方法来求最靠近某个数的特征值和特征向量。
步骤:
1. 求 B 矩阵 B = A − p I 2. 求初始向量 u 0 模最大元素的编号 i d , 初始特征值 β 0 = u 0 ( i d ) , 求归一化后的初始向量 y 0 3. 迭代 , k = 0 , 1 , ⋯ u k + 1 = B − 1 y k β k + 1 = u k + 1 ( i d k ) ⋅ sign ( y k ( i d k ) ) 这里要乘模最大元素的符号 y k + 1 = u k + 1 ∣ ∣ u k + 1 ∣ ∣ ∞ i d k + 1 = u k + 1 模最大元素的编号 4. 判断是否满足 β k + 1 − β k < eps , 特征值 = p + 1 β k + 1 \begin{align*}1. & 求B矩阵 \,\,\, B=A-pI \\ \\ 2. &求初始向量u_0模最大元素的编号 id \,\,,\,\, 初始特征值 \beta_0=u_0(id) \,\,,\,\, 求归一化后的初始向量y_0 \\ \\ 3.& 迭代 \,\,,\,\, k=0,1, \cdots \\ \\ & u_{k+1}= B^{-1}y_k \\ \\ & \beta_{k+1}=u_{k+1}(id_k) \cdot \text{sign}(y_k(id_k)) \,\,\, 这里要乘模最大元素的符号 \\ \\ & y_{k+1}= \frac{u_{k+1}}{||u_{k+1}||_\infty}\\ \\ & id_{k+1}=u_{k+1}模最大元素的编号 \\ \\ 4.& 判断是否满足 \,\,\, \beta_{k+1}- \beta_k< \text{eps} \,\,,\,\, 特征值=p+ \frac{1}{\beta_{k+1}} \end{align*} 1.2.3.4.B矩阵B=ApI求初始向量u0模最大元素的编号id,初始特征值β0=u0(id),求归一化后的初始向量y0迭代,k=0,1,uk+1=B1ykβk+1=uk+1(idk)sign(yk(idk))这里要乘模最大元素的符号yk+1=∣∣uk+1uk+1idk+1=uk+1模最大元素的编号判断是否满足βk+1βk<eps,特征值=p+βk+11

[!example]-
A = [ 3 2 1 0 ] , u 0 = [ 0.95 0.25 ] A = \begin{bmatrix} 3 & 2 \\ 1 & 0 \end{bmatrix} \,\,,\,\, u_0= \begin{bmatrix} 0.95\\0.25 \end{bmatrix} A=[3120],u0=[0.950.25]
求靠近 3.5 {3.5} 3.5 的特征值及特征向量,两次迭代。特征真值 ( 3 + 17 ) / 2 { (3+ \sqrt{17})/2} (3+17 )/2
解:
A − 3.5 I = [ − 0.5 2 1 − 3.5 ] A-3.5I= \begin{bmatrix} -0.5 & 2 \\ 1 & -3.5 \end{bmatrix} A3.5I=[0.5123.5]
y 0 = u 0 ∣ ∣ u 0 ∣ ∣ ∞ = [ 1.0000 0.2632 ] y_0= \frac{u_0}{||u_0||_\infty}= \begin{bmatrix} 1.0000\\0.2632 \end{bmatrix} y0=∣∣u0u0=[1.00000.2632]
( A − 3.5 I ) u 1 = y 0 → u 1 = [ 16.1053 4.5263 ] (A-3.5I)u_1= y_0 \to u_1= \begin{bmatrix} 16.1053\\ 4.5263 \end{bmatrix} (A3.5I)u1=y0u1=[16.10534.5263]
u 1 {u_1} u1 y 0 {y_0} y0 1 {1} 1 在上面, β 1 { \beta_1} β1 第一个值为 u 1 {u_1} u1 第一个值,符号与 y 0 {y_0} y0 中的 1 {1} 1 相同。
β 1 = 16.1053 \beta_1= 16.1053 β1=16.1053
y 1 = u 1 ∣ ∣ u 1 ∣ ∣ ∞ = [ 1.0000 0.2810 ] y_1= \frac{u_1}{||u_1||_\infty}= \begin{bmatrix} 1.0000\\0.2810 \end{bmatrix} y1=∣∣u1u1=[1.00000.2810]
( A − 3.5 I ) u 2 = y 1 → u 2 = [ 16.2484 4.5621 ] (A-3.5I)u_2=y_1\to u_2= \begin{bmatrix} 16.2484\\4.5621 \end{bmatrix} (A3.5I)u2=y1u2=[16.24844.5621]
β 2 = 16.2484 \beta_2=16.2484 β2=16.2484
y 2 = u 2 ∣ ∣ u 2 ∣ ∣ ∞ = [ 1.0000 0.2808 ] y_2= \frac{u_2}{||u_2||_\infty}= \begin{bmatrix} 1.0000\\0.2808 \end{bmatrix} y2=∣∣u2u2=[1.00000.2808]
特征值
λ = 3.5 + 1 β 2 = 3.5615447 \lambda=3.5 + \frac{1}{\beta_2}=3.5615447 λ=3.5+β21=3.5615447
对应的特征向量为 y 1 {y_1} y1 或者 y 2 {y_2} y2

反幂法matlab实现

%% 反幂法例子
A = [-12 3 3; 3 1 -2; 3 -2 7];
u0 = [1.0, 1.0, 1.0]';
% A = [3 2 ;1 0]; 
% u0 = [0.95 ; 0.25004];
% format long
[beta1, v, i] = inversePowerMethod(A, u0, -13, 1e-6, 100)%% 反幂法求模最小特征值和特征向量
% 输入矩阵、初始迭代向量、某个特征值最靠近的数、精度、最大迭代次数
% 输出特征值、无穷范数归一化后的特征向量、迭代次数
function [lbd, y1, i] = inversePowerMethod(A, u0, p, eps, max_iter)B = A-p*eye(size(A)); % B矩阵[u0norm, id] = max(abs(u0)); % 取无穷范数和其所在行beta0 = u0(id);y0 = u0/ u0norm;for i = 1:max_iteru1 = B^(-1)*y0; % 反幂法逻辑beta1 = u1(id)*sign(y0(id)); % !![u1norm, id] = max(abs(u1));y1 = u1/u1norm;if abs(beta1 - beta0)<epslbd = p+1/beta1;break;endy0 = y1;beta0 = beta1;end
end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/579268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Web API系列】使用getDisplayMedia来实现录屏功能

文章目录 前言一、认识getD该处使用的url网络请求的数据。二、使用步骤1.使用方法一实现录屏2.使用方法二实现录屏3. 运行效果 延伸 前言 Web API经过长期的发展&#xff0c;尤其是最近&#xff0c;发展相当迅猛&#xff0c;现在已经支持很多功能了&#xff0c;一些原生就支持…

[Linux]——彻底学通权限

学习权限 一、权限概念二、权限管理2.1文件访问者分类&#xff08;人&#xff09;2.2文件类型和访问权限&#xff08;事物的属性&#xff09;2.3 文件访问权限的相关设置方法 三、目录的权限3.1、进入目录的权限3.2、粘滞位 四、关于权限的总结 一、权限概念 Linux下有两种用户…

【AI】Langchain-Chatchat搭建本地知识库-未完,先记录踩的坑

事先说一下&#xff0c;我本地的显卡4070只有12G显存&#xff0c;无法运行本地知识库&#xff0c;我把自己折腾的过程和遇到的坑先记录一下吧&#xff0c;后续如果有算力的话就再跑一遍试试。后续来了&#xff1a;【AI】使用阿里云免费服务器搭建Langchain-Chatchat本地知识库 …

阿赵UE学习笔记——4、新建关卡

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   之前介绍了虚幻引擎的常用窗口功能&#xff0c;这次开始创建游戏内的世界了。首先先从创建关卡开始。 一、创建新关卡 在使用UE引擎制作游戏&#xff0c;首先要有一个场景作为基础&#xff0c;这个场景在UE里面成为关卡。…

PHP面向对象基础之类、对象和基本特点

类就是同一类事物的划分&#xff0c;比如车&#xff0c;当然车还可以划分其他类&#xff0c;比如小轿车、大卡车等。通俗点&#xff0c;类就是指由变量和作用于变量的函数组成的集合。 对象是类的一个实例&#xff0c;比如车牌固定的一辆车。 面向对象编程的三个特点&#xff1…

带你认识 WIDGET、WINDOW 、FRAME和 FRAMEGROUP

1、概述 在 YonBuilder 移动开发中&#xff0c;开发者需要了解一些常用的概念术语&#xff0c;其中和App整体框架结构及页面层级组成相关最重要几个重要概念&#xff0c;就是 Widget、 Window 和 Frame、frameGroup。掌握了这几个概念&#xff0c;对于开发者开发 App 时的 API…

docker container 指定gpu设备

1&#xff0c; 在yaml中 Turn on GPU access with Docker Compose | Docker Docs Example of a Compose file for running a service with access to 1 GPU device: services:test:image: nvidia/cuda:12.3.1-base-ubuntu20.04command: nvidia-smideploy:resources:reserva…

linux离线安装jdk11

1. 下载java11&#xff0c;Java Downloads | Oracle 2. 文件安装 jdk11&#xff1a; mkdir /usr/lib/jvm/ 将下载的文件&#xff0c;解压到/usr/lib/jvm/下 tar -zxf jdk-11.0.21_linux-x64_bin.tar.gz -C /usr/lib/jvm/ 3. 将以下命令写入bashrc文件 export JAVA_HOME/us…

ARAM 中断实验

思路&#xff1a;按键->EXTI->GIC->CPU->异常向量表 //使能GPIOF时钟 //设置PF9管脚为输入(KEY1) //设置PF9作为EXTI9事件的输入(事件编号对应管脚号) //设置下降沿使能检测EXTI9事件 (也可设置上升沿没有下降沿严谨方便,不同场景不同选择) //设置EXTI9事件不…

26、湾湾国立阳明交通大学、湾湾长庚纪念医院提出:ALL Attention U-Net,独属头部CT分割的[玛格丽特]

本文由台湾国立阳明交通大学、台湾长庚纪念医院于2023年12月16日在arXiv<Image and Video Processing>发表。 论文地址&#xff1a; 2312.10483.pdf (arxiv.org) 0、Abstract 脑出血在 Head CT扫描中作为第一线工具&#xff0c;帮助专家诊断不同类型的出血。然而&…

云端的DevOps之旅:深入了解AWS Code系列工具

对于开发者和IT专业人员来说&#xff0c;理解这些工具如何帮助我们从代码编写、编译、测试到部署的完整流程将极其重要。今天&#xff0c;我将详细介绍 AWS CodeCommit, CodeBuild, CodeDeploy, 和CodePipeline 这一系列以“Code”命名的开发和部署工具 AWS CodeCommit&#x…

Tomcat面试题(10道含答案),由浅入深

请解释Tomcat的基本概念和作用 Tomcat是一个开源的Java Web服务器和Servlet容器&#xff0c;用于提供基于Java的应用程序运行环境。它支持Java Servlet规范&#xff0c;使得开发者能够快速构建和部署基于Web的应用程序。 请描述Tomcat的目录结构&#xff0c;并解释各个目录的…

cmd启动Java项目提示:jar中没有主清单属性

1、问题 2、原因 在IDEA中开发SpringBoot项目并打成jar包&#xff0c; 需要添加springboot打包插件&#xff0c;如果不添加&#xff0c;仅仅用maven进行打包&#xff0c;打成包里面是少文件的。 <build><plugins><!--springboot打包插件--><plugin>&…

ElasticSearch之RestClient笔记

1. ElasticSearch 1.1 倒排索引 1.2 ElasticSearch和Mysql对比 1.3 RestClient操作 导入依赖 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.15.…

枚举(蓝桥杯备赛系列)acwing版

枚举 前言 hello&#xff0c;大家好&#xff0c;前面一段时间已经是把acwing Linux基础课讲完了&#xff0c;其实那些内容完全可以带领小白入门Linux我说过如果有人留言要Linux和Windows server 配置DNS Web ftp 的内容我就做一期&#xff0c;但是没人留言我也就先不自作多情了…

【HeyGen】让照片开口说话 —— 登录和使用:详细指南!

【HeyGen】让照片开口说话 关于HeyGen登录HeyGenStep1. 点击”免费开始使用“Step2. 账号注册Step3. 再次点击”Get Started“Step4. 常规个人信息调查Step5. 登录成功 使用HeyGenStep1. 上传Avatar&#xff08;头像&#xff09;Step2. 选定Avatar&#xff08;头像&#xff09;…

漏洞复现-泛微OA xmlrpcServlet接口任意文件读取漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

Java基础回顾——JDBC

文章目录 介绍使用JDBC事务JDBC BatchJDBC连接池 介绍 Java为关系数据库定义了一套标准的访问接口&#xff1a;JDBC&#xff08;Java Database Connectivity&#xff09; JDBC是Java程序访问数据库的标准接口 好处&#xff1a; 各数据库厂商使用相同的接口&#xff0c;Java…

【DevOps 工具链】搭建 项目管理软件 禅道

文章目录 1、简介2、环境要求3、搭建部署环境3.1. 安装Apache服务3.2. 安装PHP环境&#xff08;以php7.0为例 &#xff09;3.3. 安装MySQL服务 4、搭建禅道4.1、下载解压4.2、 配置4.2.1、 启动4.2.2、自启动4.2.3、确认是否开机启动 5、成功安装 1、简介 禅道是国产开源项目管…

Java——基本数据类型

Java基本数据类型 一、 整型1. byte2. short3. int4. long 二、浮点型1. float2. double 三、 字符型(char)四、 布尔型&#xff08;boolean&#xff09; 总结 算下刚转Java到现在也有三个多月了&#xff0c;所以打算对Java的知识进行汇总一下&#xff0c;本篇文章介绍一下Java…