资源描述:
《西安交通大学2014年计算方法a上机大作业》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算方法A上机大作业张晓璐硕4011班学号:31140090971.共辘梯度法求解线性方程组算法原理:曲定理3.4.1可知系数矩阵A是对称正定矩阵的线性方程组Ax=b的解与求解二次函数f(x)=^xTAx-bTx极小点具有等价性,所以可以利用共轨梯度法求解f(x)=^xTAx-hTx的极小点来达到求解Ax二b的冃的。共轨梯度法在形式上具有迭代法的特征,在给定初始值情况下,根据迭代公式:兀(呦=卅+吸护产生的迭代序列兀⑴,兀⑵,兀⑶,...在无舍入误差假定下,最多经过n次迭代,就可求得/(兀)的最小值,也就是方程Ax二b的
2、解。首先导出最佳步长畋的计算式。假设迭代点少和搜索方向卅)己经给定,便可以通过0(。)=/(严+如⑹)的极小化min0(a)=/*(兀⑷+如伙))來求得,根据多元复合函数的求导法则得:(/)a)=Vf(xa)^ad(k))Td(k)令0(。)=0,得到:•其屮r(k}=b-Ax(k)然后确定搜索方向d(k)o给定初始向量兀⑼后,由于负梯度方向是函数卜•降最快的方向,故第一次迭代取搜索方向严=严=-号(严)=—A严o令/("』())出发的搜索方向不再取严其中购=爲裂(。)。第二次迭代时,从兀⑴dAd是选取〃⑴二厂⑴+0。
3、/°),使得d⑴与泸)是关于矩阵A的共辘向量,由此可求得参数0°:_严缶严)仇"d⑼TAd⑼然后从兀⑴出发,沿d⑴进行搜索得到兀⑵=X(1)+W⑴设已经求出兀(Z=卅)+钦/⑹,计算严+D=b-Ax(M)。令严=严+0严,选取几,使得d如)和d⑹是关于A的共轨向量,可得:_r(k+[)TAd(k)Pk=~d(k)TAd(k)具体编程计算过程如下:(1)给定初始近似向量+°)以及精度£>0;(2)计算严"-A/°),取护二严;(3)Fork二0tonTdo_ra)Td(k)1久=c/wAd閃;(ii)兀曲)=*)+$〃⑹;
4、(iii)=b-Ax{M}•,(iv)若
5、
6、^+,)
7、
8、<£或k=n-1,则输出近似解严I),停止;否则,转(V);厂伙+1)2(VI)严=严+0严;Enddo程序框图:开始结朿程序使用说明:本共轨梯度法求解线性方程的程序是一个两数Gongctidu2(A,b,xO,epsa),在求解线性方程组Ax=b(A是对称正定矩阵)的时候,首先给定初始向量xO和误差epsa,然后直接调用该函数Gongetidu2(A,b,xO,epsa)即可,其中A,b,xO和epsa都是可变的,虽然该函数是通用的,但是对于矩阵A和向量b的输入,
9、需要使用者根据A和b的特点自行输入。算例3.2计算结果:对题113页3.2,首先编程将矩阵A,b,xO,epsa读入系统,然后再调用函数Gongetidu2(A,b,xO,epsa);程序如下:clearAbxO%程序运行前首先清除A,b和XO的数值,以免影响计算clcn=input('请输入对称正定矩阵A的阶数n二');epsa二input('请输入误差二');fork=l:(n-1)%读取题目3.2的矩阵AA(k,k)=-2;A(k,k+1)二1;A(k+1,k)=l;endA(n,n)=-2;A;b(l,1)二-1
10、;%读取题口3.2的矩阵bb(n,1)二T;b;xO(l,l)=inputC假定初始向量各元素相同,均为:’);%给题目3.2的迭代过程赋初值forkk=2:nxO(kk,l)=xO(l,1);endx=Gongetidu2(A,b,xO,epsa)%调用共轨梯度法求线性方程组的函数functionx二Gongetidu2(A,b,xO,epsa)n二size(A,1);x=xO;r二b-A*x;d=r;fork二0:(n~l)alpha二(r‘*r)/(d,*A*d);x=x+alpha*d;r2=b-A*x;if((
11、norm(r2)<=epsa)
12、(k==n-l))x;break;endbeta=norm(r2)2/norm(r)2;d=r2+beta*d;r=r2;end计算结果:当n=100时,x=[l;l;l;l;l;l;l;・・・..l;l;l;l]当n=200时,x二[1;1;1;1;1;1;1;・・・..1;1;1;1;1;1;1]当n=400时,x二[1;1;1;1;1;1;1;….1;1;1;1;1;1;1;1;1;1]1.三次样条差值算法原理(三次样条插值函数的导出):(i)・导出在子区间[也,珀上的S(x)的表达
13、式由于S(x)的二阶导数连续,设S(x)再节点兀处的二阶导数值S''(xi)二Mi,其屮Mi为未知的待定参数。由S(x)是分段的三次多项式知,S,'(x)是分段线性函数,S''(x)在子区间氏十兀丄上可表示为Sx)=X~XiM,
14、+兀_仏Mj兀-i一兀兀一兀1X—XX—X-.hi其中hi=xi--x(i-l),对上