文档详情

数值分析Matlab作业..doc

发布:2017-01-09约1.25万字共18页下载文档
文本预览下载声明
数值分析编程作业 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
显示全部
相似文档