当前位置:首页 > 数值分析实验和程序
itmax=100; end
if nargin<2 ep=1e-5; end
n=length(A); u=ones(n,1);
index=0;k=0;m1=0; invA=inv(A); while k<=itmax
v=invA*u;[vmax,i]=max(abs(v)); m=v(i);u=v/m; if abs(m-m1) m1=m;k=k+1; end 第二步:将所给矩阵代入程序得出结果。 ??121??,λ1=-6.4210,X1=(-0.0462 -0.3749 1.0000)T;λ3=3.4723, A??2?41????11?6??x3=(1.0000 0.5229 0.2422)。 ?4?2??25??71A???31??14???87T T 73?18?1147??,λ1=21.3053,X1=(0.8724 0.5401 0.9973 0.5644 0.4972 7235??2651?3532??5124??1.0000);λ6=1.6214。 五、实验结论 求n阶方阵A的特征值和特征向量,也是实际中常常碰到的问题。通过此次实验掌握了用幂法和反幂法求一个方阵的最大特征值和特征向量,绝对值最小的特征值和特征向量。 实验八 常微分方程初值问题数值解法 一、问题提出 科学计算中经常遇到微分方程(组)初值问题,需要利用Euler法,改进Euler法,Rung-Kutta方法求其数值解,诸如以下问题: (1) ??4x?xy?y?y??y?0??0 ? 0?x?2 分别取h=0.1,0.2,0.4时数值解。 初值问题的精确解y?(2) 4?5e?x2。 用r=3的Adams显式和预 - 校式求解 ?y??x2?y2??y??1??0 ?1?x?0 取步长h=0.1,用四阶标准R-K方法求值。 (3) 0?x?1 用改进Euler法或四阶标准R-K方法求解 取步长0.01,计算y(0.0y5),??y2?y1????y1?y2?y???y3?3??0???1y1y2?0??0y3?0??1y(0.数1值解,参考结果 y1(0.15)??0.9880787,y2(0.15)?0.1493359,y3(0.15)?0.8613125。 (4)利用四阶标准R- K方法求二阶方程初值问题的数值解 (I) (II) ?y???3y??2y?0??y?0??0,y??0??1 0?x?1,h?0.02 ?y???0.11?y2y??y?0?y?0??1,y??0??0 ? 0?x?1,h?0.1 ??(III) y??y??x?e?1?y?0??1,y??0??0 ? 0?x?2,h?0.1 (IV) ? ?y???siny?0?? ?y?0??1,y?0??0 0?x?4,h?0.2 二、要求 1、 根据初值问题数值算法,分别选择二个初值问题编程计算; 2、 试分别取不同步长,考察某节点处xj数值解的误差变化情况; 3、 试用不同算法求解某初值问题,结果有何异常; 4、 分析各个算法的优缺点。 三、目的和意义 1、 熟悉各种初值问题的算法,编出算法程序; 2、 明确各种算法的精度与所选步长有密切关系; 3、 通过计算更加了解各种算法的优越性。 四、实验步骤 function [x,y]=euler(fun,x0,xfinal,y0,n); if nargin<5,n=50; end h=(xfinal-x0)/n; x(1)=x0;y(1)=y0; for i=1:n; x(i+1)=x(i)+h; y(i+1)=y(i)+h*feval(fun,x(i),y(i)); end 实验程序及分析 (Ⅰ) (1)、算法程序 function E =Euler_1(fun,x0,y0,xN,N) % Euler向前公式,其中 % fun为一阶微分方程的函数 % x0,y0为初始条件 % xN为取值范围的一个端点 % h为区间步长 % N为区间个数 % x为Xn构成的向量 % y为yn构成的向量 x=zeros(1,N+1);y=zeros(1,N+1); x(1)=x0;y(1)=y0; h=(xN-x0)/N; for n=1:N x(n+1)=x(n)+h; y(n+1)=y(n)+h*feval(fun,x(n),y(n)); end T=[x',y'] function z=f(x,y) z=4*x/y-x*y; (2)、运行程序 >> Euler_1('f',0,3,2,20) 结果 : >> Euler_1('f',0,3,2,20) T = 0 3.0000 0.1000 2.9836 0.2000 2.9517 0.3000 2.9058 0.4000 2.8481 0.5000 2.7810 0.6000 2.7073 0.7000 2.6297 0.8000 2.5511 0.9000 2.4739 1.0000 2.4004 1.1000 2.3325 1.2000 2.2714 1.3000 2.2177 1.4000 2.1717 1.5000 2.1332 1.6000 2.1017 1.7000 2.0765 1.8000 2.0567 1.9000 2.0414 2.0000 2.0299 五、实验结论 很多科学技术和工程问题常用微分方程的形式建立数学模型,因此微分方程的求解是很有意义的,但对于绝大多数的微分方程问题很难或者根本不可能得到它的解析解,因此,研究微分方程的数值方法是非常有意义的。
共分享92篇相关文档