数值计算方法实验报告(共18页).docx





《数值计算方法实验报告(共18页).docx》由会员分享,可在线阅读,更多相关《数值计算方法实验报告(共18页).docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数值分析实验报告实验一、解线性方程组的直接方法梯形电阻电路问题利用追赶法求解三对角方程组的方法,解决梯形电阻电路问题:电路中的各个电流,须满足下列线性方程组:设,运用追赶法,求各段电路的电流量。问题分析:上述方程组可用矩阵表示为:问题转化为求解,8阶方阵A满足顺序主子式,因此矩阵A存在唯一的Doolittle分解,可以采用解三对角矩阵的追赶法!追赶法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;Matlab程序function x=
2、zhuiganfa( a,b,c,d )%追赶法实现要求:|b1|C1|0,|bi|=|ai|+|ci| n=length(b); u=ones(1,n); L=ones(1,n); y=ones(1,n);u(1)=b(1);y(1)=d(1);fori=2:nL(i)=a(i)/u(i-1);u(i)=b(i)-c(i-1)*L(i);y(i)=d(i)-y(i-1)*L(i);endx(n)=y(n)/u(n);for k=n-1:-1:1x(k)=(y(k)-c(k)*x(k+1)/u(k);endendMATLAB命令窗口输入:a=0 -2 -2 -2 -2 -2 -2 -2;b=2
3、 5 5 5 5 5 5 5;c=-2 -2 -2 -2 -2 -2 -2 0d=220/27 0 0 0 0 0 0 0;x= zhuiganfa(a,b,c,d )运行结果为:x =8.1478 4.0737 2.0365 1.0175 0.5073 0.2506 0.1194 0.0477存在问题根据电路分析中的所讲到的回路电流法,可以列出8个以回路电流为独立变量的方程,课本上给出的第八个回路电流方程存在问题,正确的应该是;或者可以根据电路并联分流的知识,同样可以确定。正确的处理结果应为:x =8.1481 4.0741 2.0370 1.0185 0.5093 0.2546 0.127
4、3 0.0637实验二、线性方程组的迭代方法不同迭代法解线性方程组的对比分别用(1)Jacobi迭代法;(2)Gauss-Seidel迭代法;(3)共轭梯度法解线性方程组迭代初始向量取;(1)Jacobi迭代法专心-专注-专业function x,k = jacobi(A,b,x)%x为迭代初始向量e=input(请输入绝对误差限:n);D=diag(diag(A);n=size(b);I=eye(n,n);B=I-DA;g=Db;for k=1:50;%最大迭代次数为50次 x=B*x+g; error=norm(b-A*x);%2-范数if (errore)break;endendspri
5、ntf(迭代次数:nk= %d,k)sprintf(方程组的解为:n )xendMatlab命令窗口输入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;x=0 0 0 0 0;x,k = jacobi(A,b,x);运行结果请输入绝对误差限:10(-3)迭代次数:k= 42ans =方程组的解为:x = 1.0002 -2.0002 2.9997 -1.99990.9998(2)Gauss-Seidel迭代法function x,k = gau_sei(A,b,x)D=diag(
6、diag(A);L=D-tril(A);U=D-triu(A);e=input(请输入绝对误差限:n);for k=1:50; x=(D-L)U*x+(D-L)b;error=norm(b-A*x);if (error10(-3)break;endendsprintf(迭代次数:nk= %d,k)sprintf(方程组的解为:n )xendMatlab命令窗口输入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;x=0 0 0 0 0;x,k = gau_sei(A,b,x);运行
7、结果请输入绝对误差限:10(-3)迭代次数:k= 24方程组的解为:x = 1.0002 -2.0002 2.9997 -2.0000 0.9998(3)共轭梯度法function x,k = gongetidu( A,b,x ) e=input(请输入绝对误差限:n); d=b-A*x; r=d; l=(d*r)./(A*d)*d); x=x+l*d;for k=1:50 r=b-A*x; t=-(A*d)*r)./(A*d)*d); d=r+t*d; l=(d*r)./(A*d)*d); x=x+l*d;error=norm(b-A*x);if (errore)break;endendsp
8、rintf(迭代次数:nk= %d,k)sprintf(方程组的解为:n )xendMatlab命令窗口输入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;x=0 0 0 0 0;x,k = gongetidu(A,b,x );运行结果请输入绝对误差限:10(-3)迭代次数:k= 4方程组的解为:x = 1.0000 -2.0000 3.0000 -2.00001.0000结果分析在选择相同的误差容限时,使用以上三种不同的方法来解方程组,对比迭代次数上的不同(1)Jacboi迭代
9、法42次(2)Gauss-Seidel24次(3)共轭梯度法4次,可以看出在收敛速度上共轭梯度法最快,Jacobi迭代法最慢,对比方程组的精确解x=1 -2 3 -2 1,可以看出在收敛效果上共轭梯度法最好!实验三、插值法龙格现象在代数插值中,为了提高插值多项式对函数的逼近层度,常常增加节点个数,级提高多项式的次数,但由于高次多项式插值不收敛,会产生Runge现象,本实验使用函数为y=11+x2,通过对比Lagrange插值法和分段线性插值法可以观察到Runge现场的产生与消失。实验程序函数fxfunction y = fx( x ) y=1./(1+x*x);endlagrange插值方法f
10、unction = lagrangechazhi( )n=input(区间等分份数:n);s=-5+10/n*0:n;%给定的定点,fx为给定的函数x=-5:0.01:5;f=0;for q=1:n+1; l=1;%求插值基函数for k=1:n+1;if k=q; l=l.*(x-s(k)./(s(q)-s(k);else l=l;endend f=f+feval(fx,s(q)*l;%求插值函数endy=1./(1+x.*x);e=y-f;%误差subplot(211);plot(x,f,r,x,y,k)%作出插值函数曲线legend(拟合曲线,实际曲线);gridon;subplot(2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 计算方法 实验 报告 18

限制150内