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

数值分析Matlab作业概论.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值分析编程作业 2012年12月 第二章 14.考虑梯形电阻电路的设计,电路如下: 电路中的各个电流{i1,i2,…,i8}须满足下列线性方程组: 这是一个三对角方程组。设V=220V,R=27,运用追赶法,求各段电路的电流量。 Matlab程序如下: function chase () %追赶法求梯形电路中各段的电流量 a=input(请输入下主对角线向量a=); b=input(请输入主对角线向量b=); c=input(请输入上主对角线向量c=); d=input(请输入右端向量d=); n=input(请输入系数矩阵维数n=); u(1)=b(1); for i=2:n l(i)=a(i)/u(i-1); u(i)=b(i)-c(i-1)*l(i); end y(1)=d(1); for i=2:n y(i)=d(i)-l(i)*y(i-1); end x(n)=y(n)/u(n); i=n-1; while i0 x(i)=(y(i)-c(i)*x(i+1))/u(i); i=i-1; end x 输入如下: chase 请输入下主对角线向量a=[0,-2,-2,-2,-2,-2,-2,-2]; 请输入主对角线向量b=[2,5,5,5,5,5,5,5]; 请输入上主对角线向量c=[-2,-2,-2,-2,-2,-2,-2,0]; 请输入方程组右端向量d=[220/27,0,0,0,0,0,0,0]; 请输入系数矩阵阶数n=8 运行结果如下: x = 8.1478 4.0737 2.0365 1.0175 0.5073 0.2506 0.1194 0.0477 第三章 14.试分别用(1)Jacobi迭代法;(2)Gauss-Seidel迭代法解线性方程组 迭代初始向量。 (1)雅可比迭代法程序如下: function jacobi() %Jacobi迭代法 a=input(请输入系数矩阵a=); b=input(请输入右端向量b=); x0=input(请输入初始向量x0=); n=input(请输入系数矩阵阶数n=); er=input(请输入允许误差er=); N=input(请输入最大迭代次数N=); for i=1:n for j=1:n if i==j d(i,j)=a(i,j); else d(i,j)=0; end end end m=eye(5)-d\a; %迭代矩阵 g=d\b; x=m*x0+g; k=1; while k=N %进行迭代 for i=1:5 if max(abs(x(i)-x0(i))) er x=m*x+g; k=k+1; else x return end end continue end x 程序执行如下: jacobi 请输入系数矩阵a=[10 1 2 3 4;1 9 -1 2 -3;2 -1 7 3 -5;3 2 3 12 -1;4 -3 -5 -1 15] 请输入右端向量b=[12 -27 14 -17 12] 请输入初始向量x0=[0 0 0 0 0] 请输入系数矩阵阶数n=5 请输入允许误差er=1.0e-6 请输入最大容许迭代次数N=60 x = 1.0000 -2.0000 3.0000 -2.0000 1.0000 (2)高斯-赛德尔迭代法程序如下: function gs_sdl() %gauss-seiddel迭代法 a=input(请输入系数矩阵a=); b=input(请输入右端向量b=); x0=input(请输入初始向量x0=); n=input(请输入系数矩阵阶数n=); er=input(请输入允许误差er=); N=input(请输入最大迭代次数N=); for i=1:n for j=1:n if i=j l(i,j)=0; else l(i,j)=-a(i,j); end end end for i=1:n for j=1:n if ij u(i,j)=-a(i,j); else u(i,j)=0; end

文档评论(0)

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

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

1亿VIP精品文档

相关文档