网站大量收购独家精品文档,联系QQ:2885784924

matlab经典算法程序---代数方程组的解法实验.ppt

matlab经典算法程序---代数方程组的解法实验.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
matlab经典算法程序---代数方程组的解法实验

if (rem(k,5)==0) str=sprintf(X%d= %g %g %g %g\n,k,x1); disp(str) end k=k+1; %计算x2(i) for i=1:n s=0; for j=1:n s=s+a(i,j)*x1(j); end x2(i)=(b(i)-s)/a(i,i)+x1(i); end %计算误差向量 e=x2-x1; %把x2作为新的迭代初值 x1=x2; end %返回迭代步数 sp=k; %返回迭代值 x=x2; 例3、利用Jacobian迭代法求解方程组: 2、高斯-塞德尔(Gauss-Seidel)迭代法公式: 4、超松弛(Successive Over Relaxation method)迭代法 例4、用SOR迭代法求解方程组: 一、求解非线性方程的方法 1、根的隔离-----二分法 2、切线法 3、割线法 二、求解非线性方程组的牛顿法 三、迭代过程中的收敛性、分枝与混沌 y o x P0 P1 P2 P3 P4 y=x y= 迭代过程收敛 y o x P0 P1 P2 P3 y= y=x P4 迭代过程不收敛 * 数学实验 Experiments in Mathematics 重庆邮电学院基础数学教学部 代数方程组的解法 实验目的 实验内容 MATLAB 2、通过实例练习用(非)线性方程组求解实际 问题. 实验软件 1、用Matlab软件掌握(非)线性方程组的解法,对迭代法的收敛性和解的稳定性作初步分析. 1、向量和矩阵的范数. 2、解线性方程组的方法介绍. 3、解非线性方程(组)的方法介绍. 向 量 范 数 1、定义 2、常用的向量范数 3、范数性质 矩 阵 范 数 1、定义 2、矩阵范数 与向量范数的相容性条件: 4、常用的矩阵范数 5、矩阵范数与谱半径的关系: 6、条件数与误差估计: 1)定义 2)、条件数的性质: 3)、误差估计: 注:矩阵的条件数可视为矩阵病态程度的一种度量,条件数越大,病态越严重,引起方程组解的误差可能越大。 1、高斯消元法 一、直接法 高斯消元法矩阵表示 高斯消元法的MATLAB程序 %顺序gauss消去法,gauss函数 function [A,u]=gauss(a,n) for k=1:n-1 %消去过程 for i=k+1:n for j=k+1:n+1 %如果a(k,k)=0,则不能消去 if abs(a(k,k))1e-6 %计算第k步的增广矩阵 a(i,j)=a(i,j)-a(i,k)/a(k,k)*a(k,j); else %a(k,k)=0,顺序gauss消去失败 disp(顺序gauss消去失败); pause; exit; end end end end %回代过程 x(n)=a(n,n+1)/a(n,n); for i=n-1:-1:1 s=0; for j=i+1:n s=s+a(i,j)*x(j); end x(i)=(a(i,n+1)-s)/a(i,i); end %返回gauss消去后的增广矩阵 A=triu(a); %返回方程组的解 u=x; 例1 用高斯消元法求解方程组: 2、列主元素消元法 列主元素消元法的MATLAB程序 %列主元gauss消去函数 function [A,u]=gauss(a,n) %消去过程 for k=1:n-1 %选主元 c=0; for q=k:n if abs(a(q,k))c c=a(q,k); l=q; end end %如果主元为0,则矩阵A不可逆 if abs(c)1e-10 disp(error); pause; exit; end %如果l不等于k,则交换第l行和第k行 if l~=k for q=k:n+1 temp=a(k,q); a(k,q)=a(l.q); a(l,q)=temp; end end %计算第k步的元素值 for i=k+1:n for j=k+1:n a(i,j)=a

您可能关注的文档

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档