博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
matlab求解特征向量程序逆迭代法,有没有大神能用MATLAB做一个迭代法求矩阵的特征值和特征向量的程序呀...
阅读量:7000 次
发布时间:2019-06-27

本文共 850 字,大约阅读时间需要 2 分钟。

匿名用户

1级

2014-11-06 回答

雅可比迭代

function [x,n]=jacobi2(A,b,x0,eps,M)

% Jacobi迭代

%A=[9 1 1;1 8 1;1 1 9];

%b=[1;1;1];

%x0=[0;0;0];

%[x,n]=jacobi(A,b,x0)

if nargin==3

eps=1.0e-6;

M=10000;

elseif nargin==4

M=10000;

end

D=diag(diag(A));L=-tril(A,-1);

U=-triu(A,1);B=inv(D)*(L+U);

f=inv(D)*b;x=x0;n=0;

tol=1;

while tol>eps

x=B*x0+f;

n=n+1;

tol=norm(x-x0);%极大范数 等同于tol=max(abs(x-x0))但不能这样用

x0=x;

if(n>=M)

disp('Warning:迭代次数太多,可能不收敛');

break;

end

end

高斯赛德尔迭代

function[x,n]=gauseidel2(A,b,x0,eps,M )

% Detailed explanation goes here

% 解的精度:eps% 迭代步数控制:M

% 解 x% 求解所需的实际步数迭代:n

%[x,n]=gauseidel(A,b,x0)

if nargin==3

eps=1.0e-6;

M=10000;

elseif nargin==4

M=10000;

end

D=diag(diag(A));

L=-tril(A,-1);

U=-triu(A,1);

G=(D-L)\U;

f=(D-L)\b;

x=x0;

n=0;

tol=1;

while tol>=eps

x=G*x0+f;

n=n+1;

tol=norm(x-x0);%算矩阵sup范数

x0=x;

if(n>=M)

disp('Warning:迭代次数太多可能不收敛')

break

end

end

转载地址:http://rdevl.baihongyu.com/

你可能感兴趣的文章
前站 - 前端导航,搜索社区,阅读文章,提升技术
查看>>
【树结构2】树打印
查看>>
Traps of Computed in Vue
查看>>
推荐一款可以多平台上使用的控制台工具
查看>>
搞不清边缘计算几款产品差异?动动小手点这里!
查看>>
Java基础【三】 - 常用类库:java.lang.Enum
查看>>
jsonp跨域实现百度首页联想功能
查看>>
推荐一个php7+ mongodb三方类
查看>>
JDK8安装与环境变量配置
查看>>
Grafana文档(配置)
查看>>
前端异步那些年
查看>>
mac 下使用PHPSTROM连接docker的xdebug
查看>>
JS 里的类型
查看>>
监听浏览器的后退事件
查看>>
opencv python 基于KNN的手写体识别
查看>>
能在编码时做的事,就不要推迟到运行时
查看>>
【Chrome】对ios-safari移动端的H5页面进行调试(ios-webkit-debug-proxy)
查看>>
JavaScript之变量提升
查看>>
简单实现 ES6 Promise
查看>>
配置mail使用SMTP发送邮件
查看>>