基于Rn中变分原理的迭代法的研究与实例_第1页
基于Rn中变分原理的迭代法的研究与实例_第2页
基于Rn中变分原理的迭代法的研究与实例_第3页
基于Rn中变分原理的迭代法的研究与实例_第4页
基于Rn中变分原理的迭代法的研究与实例_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验1 基于Rn中变分原理的迭代法的研究与实例分析一、实验目的研究基于变分原理以及相应问题空间的特征来设计数值求解算法这一比较普遍的数值求解技术。二、实验内容1、从理论上讨论与总结基于Rn中变分原理推出求解线性代数方程组迭代法的关键步骤以及从一般迭代法到按不同特征形成几个特殊具体的迭代法的形成过程;2、分析松弛因子与下降方向的影响;3、按不同特征选择几个线性代数方程组求解示例进行算法设计;4、用Matlab进行程序设计与运行实验。三、实验原理、方法和手段3.1 Rn中的变分原理设为一个n阶对称正定矩阵,bRn .则其中x=x, Ax-2x,b该定理把求解Ax=b等价于将一个多元二次函数(也称泛

2、函)极小化的问题。松弛法的任务是取向量序列xk,使(xk)收敛于x的极小值。给定初值x(0),选取c(k-1),求使得x在向量xk= xk-1+ c(k-1)上达极小。分析可得最小的为k-1= rk-1,ck-1 /Ack-1,ck-1 为保证序列(xk)从总体上收敛最快,令= k-1k-1可得迭代格式xk= xk-1+ k-1k-1c(k-1)当0k-12时收敛。当k取不同范围时对应的迭代可分为亚松弛0k1完全松弛k=1超松弛1k2实践表明,对某些矩阵用超松弛迭代比完全松弛收敛快。3.2 坐标松弛在一般松弛法中,取c(k-1)=ei, k-1= i则第i个分量的迭代格式为xi(k)= xi(

3、k-1)+ i(bi- j=1i-1aijxjk- j=inaijxjk-1)/aiii=k-1mod n+1, k=1,2,最佳松弛因子为opt=21+1-HJ2其中HJ为雅克比迭代矩阵。3.3 最优斜量法取c(k-1)=r(k-1)得最优斜量法迭代公式如下xk= xk-1+ k-1k-1c(k-1)k-1= rk-1,rk-1 /Ark-1,rk-1 r(k-1)=b-Ax(k-1)可验证gradx|x(k-1)= -2r(k-1)。即r(k-1)是(x)在xk-1点梯度方向的反方向。3.4 实验方法选取实例研究松弛因子和迭代方向c对结果的影响。四、实验条件台式计算机,Matlab软件试验

4、平台。五、实验步骤5.1 理论分析根据变分原理的定义,推导迭代形式的关键在于找到使x达到极小值的条件。为了使收敛最快,加入松弛因子,对某些矩阵用超松弛比完全松弛收敛快,具体见3.1节的分析。当下降方向c(k)取不同值时对结果影响不同。在一般松弛法中取c(k-1)=ei,每步迭代使二次函数x(k)在ei方向下降最多,其过程类似赛德尔迭代,一般可达到较快的收敛速度。当取c(k-1)=r(k-1)构成最优斜量法,使x(k)沿在x(k)的梯度反向,此时可达到最快的下降速度。具体见3.2和3.3节的分析。5.2 算法设计为了具体研究松弛因子和和下降方向对迭代过程的影响,设计坐标松弛法和最优斜量法的计算机

5、实现算法。坐标迭代算法: 输入A, b,初始值x(0),松弛因子,容许误差err,容许最大迭代次数maxN. 对i=1,2,n, 循环T = aii对j=1,2,i-1,循环al = al + A(i,j) * x(j,k+1);对j=1,2,n,循环au = au + A(i,j) * x(j,k); 迭代:对i=1,2,n,计算x(k+1)=x(k)+ w *( b(i) - al - au )/A(i,i); 若xk+1-x(k)err,输出x,否则, 若k100764030221317296512最优斜量算法中,当达到容许精度err时不同的松弛因子对应的迭代次数见表5-2。可见下降方向

6、改变了松弛因子与迭代次数的对应关系。最少迭代次数比坐标松弛的最少迭代次数多,且起伏不是很大。表5-1 最优斜量算法松弛因子与迭代次数对应关系松弛因子0.20.40.60.81.01.21.41.61.81.24迭代次数n64433024444546476445六、实验总结通过该实验,从理论上讨论与总结基于Rn中变分原理推出求解线性代数方程组迭代法的关键步骤以及从一般迭代法到按不同特征形成几个特殊具体的迭代法的形成过程,分析了松弛因子与下降方向的影响;并用matlab编程实现了坐标松弛迭代和最优斜量算法,通过实例研究验证了松弛因子和下降方向对结果的影响。附录1 实验1代码% filename:

7、RelaxationIteration.m% 实验1 基于Rn中变分原理的迭代法的研究与实例分析% 实验例子:4 3 0; 3 4 -1; 0 -1 4*x1; x2; x3 = 24; 30; -24;% 松弛因子取0.2,0.4,.,1.8,w0,其中w0是最优迭代松弛因子,通过调用OptimalW(A)求得% 初始条件是x=1 1 1 ,控制最多迭代次数为100次,maxN =100; 容许误差err =10(-5).% 调用Iterate(A,b,x0,w,err,maxN)实现坐标迭代并输出结果% 调用Grade(A,b,x0,w,err,maxN)实现最优斜量迭代并输出结果clea

8、r;clc;% 系数矩阵A= 4 3 0; 3 4 -1; 0 -1 4;% 系数bb= 24 30 -24;% 初始条件x0=1 1 1;% 松弛因子 w w0=OptimalW(A);w = 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 w0;%容许误差 errerr = 10(-5);% 最大迭代次数设为100次maxN = 100;%Iterate(A,b,x0,w,err,maxN);Grade(A,b,x0,w,err,maxN);%filename:Itirate.m%坐标松弛迭代函数function f=Iterate(A,b,x0,w,err,max

9、N)% 维数m,nm,n = size(A);% 对每个松弛因子迭代for h=1:length(w) x= x0; k=1; errMeetFlag = 0; % 迭代次数不大于maxN且误差不小于err时一直迭代 while( k =1 for j=1:i-1 al = al + A(i,j) * x(j,k+1); end end for j=i:n au = au + A(i,j) * x(j,k); end x(i,k+1)=x(i,k)+ w(h) *( b(i) - al - au )/A(i,i); end if(normest(x(:,k+1) - x(:,k) err) e

10、rrMeetFlag = 1; end k=k+1; end % 输出迭代过程值 disp(w=); disp(w(h); disp(steps=); disp(length(x(1,:)-1); disp( x(1) x(2) x(3); format long; disp(x);end%filename: Grade.m%最优斜量法迭代函数function Grade(A,b,x0,w,err,maxN)% 维数m,nm,n = size(A);% 对每个松弛因子迭代for h=1:length(w) x= x0; k=1; errMeetFlag = 0; % 迭代次数不大于maxN且误

11、差不小于err时一直迭代 while( k = maxN & errMeetFlag) % 对每次进行初始化x(:,j) y=x(:,k); r = b-A*y; alpha=dot(r,r)/dot(A*r,r); y=y+w(h)*alpha*r; x=x y; %检查容许误差 if(normest(x(:,k+1) - x(:,k) err) errMeetFlag = 1; end k=k+1; end % 输出迭代过程值 disp(w=); disp(w(h); disp(steps=); disp(length(x(1,:)-1); disp( x(1) x(2) x(3); format long; disp(x);end

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论