数值分析上机实验指导书

相关MATLAB函数提示: zeros(m,n) 生成m行,n列的零矩阵 ones(m,n) 生成m行,n列的元素全为1的矩阵 eye(n) 生成n阶单位矩阵 rand(m,n) 生成m行,n列(0,1)上均匀分布的随机矩阵 diag(x) 返回由向量x的元素构成的对角矩阵 tril(A) 提取矩阵A的下三角部分生成下三角矩阵 triu(A) 提取矩阵A的上三角部分生成上三角矩阵 rank(A) 返回矩阵A的秩 det(A) 返回方阵A的行列式 inv(A) 返回可逆方阵A的逆矩阵 [V,D]=eig(A) 返回方阵A的特征值和特征向量 norm(A,p) 矩阵或向量的p范数 cond(A,p) 矩阵的条件数 [L,U,P]=lu(A) 选列主元LU分解 R=chol(X) 平方根分解 Hi=hilb(n) 生成n阶Hilbert矩阵 13

实验六 解线性方程组的迭代法

实验6.1(病态的线性方程组的求解)

问题提出:理论的分析表明,求解病态的线性方程组是困难的。实际情况是否如此,会出现怎样的现象呢?

实验内容:考虑方程组Hx=b的求解,其中系数矩阵H为Hilbert矩阵,

H?(hi,j)n?n,hi,j?1,i?j?1i,j?1,2,?,n

这是一个著名的病态问题。通过首先给定解(例如取为各个分量均为1)再计算出右端b的办法给出确定的问题。

实验要求:

(1)选择问题的维数为6,分别用Gauss消去法、列主元Gauss消去法、J迭代法、GS迭代法和SOR迭代法求解方程组,其各自的结果如何?将计算结果与问题的解比较,结论如何?

(2)逐步增大问题的维数(至少到100),仍然用上述的方法来解它们,计算的结果如何?计算的结果说明了什么?

(3)讨论病态问题求解的算法

实验6.2 书上P211计算实习题2,其中N=100,第二小问改为用Jacobi迭代、G-S迭代、红黑排序的G-S迭代求解,并比较他们之间的收敛速度;进一步,用BSOR迭代求解,试找出最优松弛因子。

14

实验七 非线性方程求根

实验7.1(迭代法、初始值与收敛性)

实验目的:初步认识非线性问题的迭代法与线性问题迭代法的差别,探讨迭代法及初始值与迭代收敛性的关系。

问题提出:迭代法是求解非线性方程的基本思想方法,与线性方程的情况一样,其构造方法可以有多种多样,但关键是怎样才能使迭代收敛且有较快的收敛速度。

实验内容:考虑一个简单的代数方程

x2?x?1?0

针对上述方程,可以构造多种迭代法,如

2xn?1?xn?1(7.1)

(7.2)

xn?1?1?1xnxn?1?xn?1(7.3)

在实轴上取初始值x0,请分别用迭代(7.1)-(7.3)作实验,记录各算法的迭代过程。

实验要求:

(1)取定某个初始值,分别计算(7.1)-(7.3)迭代结果,它们的收敛性如何?重复选取不同的初始值,反复实验。请自选设计一种比较形象的记录方式(如利用MATLAB的图形功能),分析三种迭代法的收敛性与初值选取的关系。

(2)对三个迭代法中的某个,取不同的初始值进行迭代,结果如何?试分析迭代法对不同的初值是否有差异?

(3)线性方程组迭代法的收敛性是不依赖初始值选取的。比较线性与非线性问题迭代的差异,有何结论和问题。

相关MATLAB函数提示: x=fzero(fun,x0) 返回一元函数fun的一个零点,其中fun为函数句柄,x0为标量时,返回在x0附近的零点;x0为向量[a,b]时,返回函数在[a,b]中的零点 [x,f,h]=fsolve(fun,x0) 返回一元或多元函数x0附近fun的一个零点,其中fun为函数句柄,x0为迭代初值;f返回fun在x的函数值,应该接近0; h返回值如果大于0,说明计算结果可靠,否则不可靠 15

实验八 常微分方程初值问题数值解法

实验8.1(Lorenz问题与混沌) 问题提出:考虑著名的Lorenz方程

?dx?dt?s(y?x)??dy(8.1) ??rx?y?xz?dt?dz?xy?bz??dt其中s,r,b为变化区域有一定限制的实参数。该方程形式简单,表面上看并无惊人之处,但由该方程提示出的许多现象,促使“混沌”成为数学研究的崭新领域,在实际应用中也产生了巨大的影响。

实验内容:先取定初值y0=(0,0,0),参数s=10,r=28,b=8/3,用MATLAB的数值求常微分方程函数ods45编程对(8.1)进行求解

实验要求:

(1)对目前取定的参数值s,r和b,选取不同的初值y0进行运算,观察计算的结果有什么特点?解的曲线是否有界?解的曲线是不是周期的或趋于某个固定点?

(2)在问题允许的范围内适当改变其中的参数值s,r,b,再选取不同的初始值y0进行运算,观察并记录计算的结果有什么特点?是否发现什么不同的现象?

思考题一:考虑如下常微分方程

()?k0?k1cosmt() x''?rx'?bsinax先固定其中参数:r=0.9,b=3,a=1,k0=0,m=1,初始值为原点,t的范围为0-500

分别取不同的k1,如1,1.5,2,2.5,3,3.5等,绘图观察相位图(x,x')的变化情况,能找到其中的规律吗?

试试改变其它参数呢?

16

联系客服:779662525#qq.com(#替换为@)