《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
查看: 8274|回复: 18
收起左侧

[样章] 第七章 线性方程组的迭代解法

    [复制链接]
发表于 2011-5-15 23:18:16 | 显示全部楼层 |阅读模式
第七章 线性方程组的迭代解法
7.1   线性方程组的迭代法概述
工程上有时会产生大型的稀疏矩阵方程组
7.1.1   迭代法概述及压缩原理
7.1.2   迭代法基本概念
在研究迭代法的收敛性之前,需要明确几个相关的概念。
1. 向量范数的概念与性质
定义7.1(向量的范数) ……………………
定义7.2(向量的内积) …………….
2. 矩阵范数的概念与性质
类似于向量范数,矩阵范数是衡量 中矩阵“大小”的量。
定义7.3(矩阵的范数) …………..
定义7.4(矩阵的算子范数) …….
3. 谱半径
谱半径是研究迭代法收敛性的重要概念,所谓谱半径实际上就是矩阵特征值的最大绝对值(模)。
……..
4. 矩阵条件数
…………..
7.1.3   MATLAB的相关命令
1. 范数
Matlab语言中求矩阵或向量范数的命令为norm,其中norm(X)或norm(X,2)用来求矩阵或向量X的…………..
2. 谱半径
由于谱半径是特征值的最大绝对值,因此可以通过Matlab中的求特征值的命令eig(A)来得到谱半径的值,即max(abs(eig(A))).
3. 条件数
矩阵的条件数取决于所定义的范数,因此Matlab中求矩阵条件数的命令cond的使用分四种情况:cond(A)或cond(A,2)(2-范数),cond(A,1)(列范数),cond(A,inf)(行范数),cond(A,'fro')( Frobenius范数).
7.2   常见的线性方程组的迭代法
前面介绍了求解线性方程组的迭代法中的重要概念,下面介绍如何将方程组7.1转化为迭代形式7.2,常用的方法有Jacobi迭代法,Gauss-Seidel迭代法以及超松弛迭代法。

7.2.1   Jacobi迭代法
  1. function solution=Jacobi(Ab,epsilon)
  2. %%Ab为用户输入的增广矩阵
  3. %%epsilon为用户所输入的精度要求

  4. %%输入参数检查
  5.    if nargin==1
  6.         disp('请输入精度要求epsilon')
  7.         return
  8.    end   

  9.     row=size(Ab,1);
  10.     col=size(Ab,2);
  11.     if ndims(Ab)~=2 | col-row~=1
  12.         disp('矩阵的大小有误,不能使用Jacobi迭代法')
  13.         return
  14.     end
  15.    
  16.     A=Ab(:,1:row);
  17.     b=Ab(:,col);
  18.    
  19.     ddet=abs(det(A));
  20.     ddiag=abs(det(diag(diag(A))));
  21.     if ddet<eps  | ddiag<eps
  22.         disp('该方程的系数矩阵行列式为零,方程组无解或有无穷多解,或系数矩阵的对角线有零元,不能使用Jacobi迭代法')
  23.         return
  24.     end
  25.    
  26.     %%提取上下三角矩阵及对角矩阵
  27.     U=-triu(A,1);
  28.     L=-tril(A,-1);
  29.     Dinv=diag(diag(A).^(-1));
  30.    
  31.     B=Dinv*(L+U);
  32.     f=Dinv*b;
  33.     if max(abs(eig(B)))>=1
  34.         disp('迭代法不收敛!!!')
  35.         return
  36.     end

  37.     %%迭代过程
  38.     error=10;
  39.     start=zeros(row,1);
  40.     xk=start;
  41.     xknext=B*xk+f;
  42.     error=norm(xk-xknext);
  43.     while error>epsilon
  44.         xk=xknext;
  45.         xknext=B*xk+f;
  46.         error=norm(xk-xknext);
  47.     end
  48.     solution=xknext;
复制代码
7.2.2   Gauss-Seidel迭代法
7.2.3   SOR迭代法
2. SOR迭代法的Matlab实现
………….
7.3   迭代法的收敛性
7.3.1   迭代法的收敛性定理
关于7.1.1中的迭代法的收敛性有
定理7.1(迭代法基本定理)  ……….
定理7.2(迭代法收敛的充分条件)  …….
7.3.2   主对角优势
在很多工程问题中,都可以归结为系数矩阵具有主对角优势的线性方程组,比如在三次样条插值问题中,最终归结为三对角方程组的求解,而该方程组的系数矩阵具有对角优势。
定义7.6(主对角优势)  ……….
定义7.7(可约矩阵)  …………
定理7.2  ………….
7.3.3   SOR迭代法的收敛性
显然SOR迭代法的收敛性与 的取值有关,由定理7.1,SOR法收敛的充要条件是……………..
定理7.3(SOR迭代法的收敛性) ……………..
发表于 2017-6-24 07:31:19 来自手机 | 显示全部楼层
有价值,收藏了。
回复 支持 反对

使用道具 举报

发表于 2017-6-24 07:30:09 来自手机 | 显示全部楼层
好资源,谢共享。
回复 支持 反对

使用道具 举报

发表于 2017-6-24 07:35:01 来自手机 | 显示全部楼层
下了慢慢学。
回复 支持 反对

使用道具 举报

发表于 2011-12-10 11:03:12 | 显示全部楼层
我发现在我写代码的能力太差劲了,太差劲了
发表于 2011-12-11 14:28:43 | 显示全部楼层
菲零传说 发表于 2011-12-10 11:03
我发现在我写代码的能力太差劲了,太差劲了

可以参考一些比较经典的程序,并多写多练,注意编写规范。
欢迎购买该书,并就书中具体内容进行交流讨论。
发表于 2012-3-28 13:26:04 | 显示全部楼层
发表于 2012-6-11 19:21:40 | 显示全部楼层
发表于 2012-6-30 11:22:24 | 显示全部楼层
不错,本章的其他源代码能否提供?
发表于 2012-9-19 20:43:08 | 显示全部楼层
发表于 2012-11-3 22:52:14 | 显示全部楼层
学习学习 谢谢
发表于 2013-1-8 10:29:05 | 显示全部楼层
  1. y_i=inline('na-nb-(we+3*n*J2*Re^2.*cos(i)/(2*a^2*(1-e^2)^2))*(asin(sin(fb)./sin(i))+asin(sin(fa)./sin(i)))/n-asin(tan(fb)./tan(i))+asin(tan(fa)./tan(i))',...
  2.            'na','nb','we','n','J2','Re','i','e','fb','fa','a');

  3. na=118/180*pi;fa=32/180*pi;
  4. nb=112.6/180*pi;fb=37.5/180*pi;

  5. e=0;
  6. Re=6378.124;
  7. J2=1.08263e-3;
  8. a=6700;
  9. u=3.986006e5;
  10. n=(u/a^3)^0.5;

  11. we=0.0042;

  12. i=(110:0.01:111)/180*pi;

  13. y_char=vectorize(y_i);
  14. Y=feval(y_char,na,nb,we,n,J2,Re,e,fb,fa,a,i);

  15. clf,plot(i/180*pi,Y,'r');
  16. hold on;
  17. plot(i/180*pi,zeros(size(i)),'k');
  18. xlabel('i');ylabel('y(i)'),hold off;
复制代码
这样的方程怎样求解啊,我的程序算不出来~~大家指点一下
发表于 2013-2-3 13:20:37 | 显示全部楼层
楼主   怎么看到原文啊?
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 蜀ICP备19014457号 

GMT+8, 2019-12-7 19:46 , Processed in 0.100578 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表