收藏 分享(赏)

材料0901班杨东麟0604090113(Page41).doc

上传人:dreamzhangning 文档编号:2341457 上传时间:2018-09-11 格式:DOC 页数:15 大小:246.50KB
下载 相关 举报
材料0901班杨东麟0604090113(Page41).doc_第1页
第1页 / 共15页
材料0901班杨东麟0604090113(Page41).doc_第2页
第2页 / 共15页
材料0901班杨东麟0604090113(Page41).doc_第3页
第3页 / 共15页
材料0901班杨东麟0604090113(Page41).doc_第4页
第4页 / 共15页
材料0901班杨东麟0604090113(Page41).doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、、编程实现以下科学计算算法,并举一例应用之。 (参考书籍精通科学计算 ,王正林等著,电子工业出版社,年)“Gauss-Seidel 迭代法线性方程组求解”(1)迭代解法的基本思想:根据给定方程组,设计出一个迭代公式,构造一数组的序列 xi0,代入迭代公式,计算出 xi1,在代入迭代公式,经过 k 次迭代运算后得到 xik,若 xik 收敛于某一极限数组 xi,则 xi 就是方程组的近似解。迭代过程本质上就是计算极限的过程,一般不能得到精确解。但迭代的优点是程序简单,适合大型方程组求解,然而,缺点是要判断迭代是否收敛和收敛速度的问题。(2)算法说明:Gauss-Seidel 迭代法与简单迭代法类

2、似,只是迭代公式有所改进。简单迭代法: ;kjnijiki xABx,11Gauss-Seidel 迭代法: ;kjnijkjiijiki xA1设方程组 Axb,其中 A 和 b 中的元素都为常数,且 A 为非奇异,则 A 分可写成:A=D-L-U。其中 D 上网意义同 Jacobi 迭代法,L 为下三角矩阵,U 为上三角矩阵,他的迭代公式为:Uxxkk 111 )()(在 MATLAB 中编程实现的 Gauss-Seidel 迭代法函数为:gauseidel。功能:用 Gauss-Seidel 迭代求线性方程组 ax=b 的解。调用格式:x,n=gauseidel(A,b,x0,eps,M

3、).其中,A 为线性方程组的系数矩阵;b 为线性方程组中的常数向量;x0 为迭代初始向量;eps 为解的精度控制(此参数可选) ;M 为迭代步数控制(此参数可选) ;x 为线性方程组的解;n 为求出所需精度的解实际迭代步数。(3)Gauss-Seidel 迭代法的 MATLAB 程序代码如下:function x,n=gauseidel(A,b,x0,eps,M)%采用Gauss-Seidel迭代法求线性方程组Ax=b的解%线性方程组的系数矩阵:A%线性方程组的常数向量:b%迭代初始向量:x0%解的精度控制:eps%迭代步数控制:M%线性方程组的解:x%求出所需精度的解实际的迭代步数:nif

4、nargin =3eps=1.0e-6; %eps表示迭代精度M=200; %M表示迭代步数的限制值elseif nargin =4M=200;elseif nargin epsx0=x;x=G*x0+f;n=n+1; %n为最终求出解时的迭代步数if n=Mdisp(Warning:迭代次数太多,可能不收敛!);endend(4)进行实例分析:A=1.4449 0.7948 0.8801;0.6946 1.9568 0.1730;0.6213 0.5226 1.9797; b=1 0 1; x0=zeros(3,1); x,n=gauseidel(A,b,x0)x = %输出结果0.5929

5、-0.24440.3836n = 11 %输出迭代次数 n(5)运行图以即流程图:运行图:流程图:x=G*x0+fnorm(x-x0)eps?n=200?Warning:迭代次数太多,可能不收敛x0=x;n=n+1最大步数M 为 200是开始读取数据nargin=3?输出结果n=1eps=10-6 , 最大步数 M=200否否是是否例题流程图:输入系数矩阵 A输入常数向量 b和初始向量 x0x,n=gauseidel(A,b,x0)输出计算结果输出迭代次数结束一、分析电路:(RC 充电电路)(1) 当 t0 时,i c(0 +)=-U c(0 +)/(R 2*R3/(R 2+R3) ),达到稳

6、态后,电容中将无电流icf=0A,电流源的全部电流将在两个电阻之间分配,保证端电压相同( 也就是电容上的终电压)。即:U R3= Ucf=12V。(3) 由一阶响应电路可用三要素法得到电压公式:,时间常数 。 tff euut )0()( RC,且 Req=12*6/18=4, =4(s)。同时,以tcfcfct)相同的方法得到电流公式:, =4(s)。tfccfcc eiiiti )0()( C(4) 可以得到电阻 R2 的表达式: 。322)(RtiItIcsR二、源程序设计: r1=3; r2=12; r3=6; us=18; is=3; c=1; uc0=-12; %电容 C 的初始电

7、压值 ucf=12; %电容 C 的最终稳态电压值 icf=0; %电容 C 的最终稳态电电流值 T=r2*r3/(r2+r3); %电路时间常数 t=0:0.01:25; %时间变量 uct=ucf+(uc0-ucf)*exp(-t./T); %计算电容 C 的响应电压 ic0=-uc0/(r2*r3/(r2+r3); %电容 C 的初始电流值 ict=icf+(ic0-icf)*exp(-t./T); %计算电容 C 的响应电流 ir20=3;%电阻 R2 的初始稳态电流 ir2t=(is-ict)*r3/(r2+r3); %计算电阻 R2 的响应电流 subplot(3,1,1); pl

8、ot(t,uct,-r); title(Uc(t); subplot(3,1,2); plot(t,ict,-g); title(Ic(t); subplot(3,1,3); plot(t,ir2t,-b); title(Ir2(t);%输出 Uc(t)和 IR2(t)的响应图像三、波形图:四、流程图:开始读取已知数据计算稳态电流电压数据运用响应电路三要素构造函数uct=ucf+(uc0-ucf)*exp(-t./T)、ict=icf+(ic0-icf)*exp(-t./T)和ir2t=(is-ict)*r3/(r2+r3)结束输出 Uc(t) 、 Ic(t)和 IR2(t)的响应图像1.分别

9、用五点和九点等距插值:Lagrange 插值多项式原理: 1n 次插值就是利用 n+1 个插值节点构造的 n 次的插值多项式,根据差值函数条件,可以得到: 011.)( axxaxynn设有 n+1 个互异节点 ,且 ,i 为整数,构造 Ln(x),使 Ln(xj)n10 )(ixfy=yj,j 为整数。定义,若 n 次多项式 lj(x)在 n+1 个节点 上满足条件 ,为 1 时,n.10 0)(jkxlj=k;为 0 时,j=k;则称这 n+1 个 n 次多项式 l0(x),l1(x),ln(x)为节点 x0,x1,xn 上的 n 次插值基函数。即为: ,k=(0,1,2,n);kiikx

10、xl0)()(故满足插值条件多项式为: ,称其为 Lagrange 插nn yxlyxllL)(.)(10值多项式。n-1 阶拉格朗日插值 matlab 源程序: 2function y=lagrange(x0,y0,x)% 计算n次lagrange 多项式插值% x0,y0输入插值节点向量% x以向量形式输入的插值点% y输出的插值点函数数值n=length(x0);m=length(x);for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j=kp=p*(z-x0(j)/(x0(k)-x0(j);endends=p*y0(k)+s;endy(i

11、)=s;end流程图: 3输入:z输入:x0, y0开始s=0k=1p=1j=1p=p*(z-x0(j)/(x0(k)-x0(j)(j=k)j=j+1j=n?s=p*y0(k)+sk=n?=n?输出:z, s结束k=k+1是是否否(1)五点等距插值的四阶 Lagrange 多项式源程序: 1 d=2*pi/4; x=0:d:2*pi; y=sin(x); x0=0:0.1:2*pi; y0=lagrange(x,y,x0); y1=sin(x0); plot(x0,y1,-r,x0,y0,-b,x,y,o)legend(sin(x),四阶插值多项式,lagrange 插值点)运行图: 2流程图

12、: 3输入:x,y=sin(x)得到插值点用 Lagrange 进行四阶五点差值计算输入:等距插值点步长 d=2*pi/4开始绘图比较 sin(x)与 Lagrange 插值图像比较两图误差结束(2)九点等距插值的四阶 Lagrange 多项式源程序: 1 d=2*pi/8; x=0:d:2*pi; y=sin(x); x0=0:0.1:2*pi; y0=lagrange(x,y,x0); y1=sin(x0); plot(x0,y1,-r,x0,y0,-b,x,y,+)legend(sin(x),八阶插值多项式,lagrange 插值点)运行图: 2流程图: 3结束绘图比较 sin(x)与

13、Lagrange 插值图像比较两图误差输入:等距插值点步长 d=2*pi/8输入:x,y=sin(x)得到插值点用 Lagrange 进行八阶九点差值计算开始2.四阶 Lagrange 插值多项式近似:(1)源程序:d=5/4;x=0:d:5;y=(1+x)./(1+2*x+3*x.2);x0=0:0.05:5;y0=lagrange(x,y,x0);y1=(1+x0)./(1+2*x0+3*x0.2);x1=0:0.2:5;y2=(1+x1)./(1+2*x1+3*x1.2);y3=lagrange(x,y,x1);e=y2-y3;plot(x,y,o,x0,y1,-r,x0,y0,-b,x

14、1,e,+)legend(插值点, 原函数图象,四阶 Lagrange 插值多项式,误差分布图)(2)插值点:x =0 1.2500 2.5000 3.7500 5.0000y =1.0000 0.2748 0.1414 0.0937 0.0698(3)Lagrange 差值多项式:Ln(x)=l0(x)*y0+ l1(x)*y1+ l2(x)*y2+ l3(x)*y3+ l4(x)*y4(4)间隔 0.2 计算的误差值:e =Columns 1 through 90 -0.0209 -0.0405 -0.0406 -0.0294 -0.0152 -0.0026 0.0063 0.0111Co

15、lumns 10 through 180.0122 0.0104 0.0067 0.0023 -0.0021 -0.0057 -0.0078 -0.0082 -0.0066Columns 19 through 26-0.0034 0.0012 0.0065 0.0115 0.0150 0.0155 0.0112 0(5)函数图象以及误差分布图:(6)流程图:开始输入:等距插值点步长 d=5/4输入:x,y=(1+x)./(1+2*x+3*x.2)确定插值点确定 Lagrange 多项式的 y(i)值,i=04 ,即得到多项式用 Lagrange 进行四阶 5 点差值计算绘图比较 Lagrange 插值多项式图像与原函数图 y2=(1+x1)./(1+2*x1+3*x1.2)以 0.2 为步长,计算每隔 0.2 的点的误差值 e=y2-y3绘出 e=y2-y3 的误差分布图结束

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报