没有合适的资源?快使用搜索试试~ 我知道了~
jacobi迭代法线性方程组求解汇编.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 54 浏览量
2023-09-13
12:59:12
上传
评论
收藏 502KB PDF 举报
温馨提示
试读
13页
jacobi迭代法线性方程组求解汇编.pdf
资源推荐
资源详情
资源评论
《MATLAB 课程设计实践》课程考核
1、 编程实现以下科学计算算法,并举一例应用之。 (参考书籍《精通 MATLAB 科学计算》,
王正林等著,电子工业出版社,2009 年)
“jacobi 迭代法线性方程组求解”
算法说明:
如果系数矩阵的主对角元全不为 0,在上节 A 的分解中取
Q=D
C=D-A
其中 D 是由 A 的主对角元素组成的对角阵,则有
bDrADIB
11
,
,迭代公式为:
bDxADIx
kk
11
1
)(
这种迭代方法称为 Jacobi 迭代法。
在 MATLAB 中编程实现的 Jacobi 迭代法函数为:jacobi。
功能:用 Jacobi 迭代法求线性方程组 Ax=b 的解
调用格式:〔x,n〕=jacobi(A,b,x0,eps,varargin)
其中,A 为线性方程组的系数矩阵;
b 为线性方程组中常数向量;
x0 为迭代初始向量;
eps 为解的精度控制(此参数可选);
varargin 为迭代步数控制(此参数可选);
x 为线性方程组的解;
n 为求出所需精度的解实际的迭代步数。
流程图:
Jacobi 迭代法的 MATLAB 程序代码:
function[x,n]=jacobi(A,b,x0,eps,varargin)
%采用 Jacobi 迭代法求线性方程组 Ax=b 的解
%线性方程组的系数矩阵:A
%线性方程组的常数向量:b
%迭代初始向量:x0
%解的精度控制:eps
%迭代步数控制:varargin
nargin==3
nargin==5
N
nargin<3
error
N
eps=1.0e-6;
M=200;
Y
Function [x,n]=jacobi(A,b,x0,eps,varargin)
输入矩阵a,b
D=diag(diag(A)) L=-tril(A,-1)
L,U为上下三角矩阵
x=B*x0+f n=1
x-x0>=
eps
x0=x x=B*x0+f
n =n+1
Y
输出‘
Warning:迭
代次数太多,可能
不收敛!’
结束
n>M
输出 x.n
N
N
Y
Y
%线性方程组的解:x
%求出所需精度的解实际的迭代步数:n
if nargin==3
eps=1.0e-6;
M=200;
elseif nargin<3
return
elseif nargin==5
M=varargin{1};
end
D=diag(diag(A)): %求 A 的对角矩阵
L=-tril(A,-1); %求 A 的下三角阵
U=-triu(A,1); %求 A 的上三角阵
f=D;
x=B*x0+f;
n=1; %迭代次数
%迭代过程
while norm(x-x0)>=eps
x0=x;
x=B*x0+f;
n=n+1;
if(n>=M)
disp(‘warning:迭代次数太多,可能不收敛!’);
return;
end
end
例题:
Jacobi 迭代法求解线性方程组实例。用 Jacobi 迭代法求解以下线性方程组,
解:用 jacobi 迭代法求解,在 MATLAB 命令窗口中输入求解程序:
>>A=[0.9889 -0.0005 -0.0002;
-0.0046 0.9946 0.0077;
-0.0002 0.0092 0.9941];
>>b=[1 0 1]’;
剩余12页未读,继续阅读
资源评论
hhappy0123456789
- 粉丝: 58
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功