线性代数方程组的数值解法 【实验目的】 1
学会用MATLAB 软件数值求解线性代数方程组,对迭代法的收敛性和解的稳定性作初步分析; 2
通过实例学习用线性代数方程组解决简化的实际问题
【实验内容】 【题目1】 通过求解线性方程组11bxA和22bxA,理解条件数的意义和方程组的性态对解的影响
其中1A 是n 阶范德蒙矩阵,即 1A =112111121110200111nnnnnnxxxxxxxxx,kxk1
01 ,1,
,1,0nk 2A 是n 阶希尔伯特矩阵,1b ,2b 分别是1A ,2A 的行和
(1)编程构造1A (2A 可直接用命令产生)和1b ,2b ;你能预先知道方程组11bxA和22bxA的解吗
令n=5,用左除命令求解(用预先知道的解可检验程序)
(2)令n=5,7,9,…,计算1A ,2A 的条件数
为观察它们是否病态,做以下试验:1b ,2b不变,1A 和2A 的元素),(1nnA, ),(2nnA分别加扰动 后求解;1A 和2A 不变,1b ,2b 的分量)(1 nb,)(2 nb分别加扰动 求解
分析A 和b 的微小扰动对解的影响
取1010,810 ,610
(3)经扰动得到的解记做x~ ,计算误差xxx~,与用条件数估计的误差相比较
1 构造1A ,2A 和1b ,2b 首先令n=5,构造出1A ,2A 和1b ,2b
首先运行以下程序,输出1A
function A1=fdm(n) k=[]; n=5 o=ones(n,1); for i=1:n a(i)=1+0
1*(i-1); end for i=1:n k=[k,a(i)]; end k=k'; for i=1:n-1 o=[o,k
*o(:,i)]