学院:理学院。
班级:统计11-1
姓名:吴。学号:201111051026
实验1一、问题的提出。
已知方程组,其中,定义为。
通过迭代法求解方程组。
1)选取不同的初始向量,和不同的方程组右端向量,给定迭代误差要求,用雅克比和高斯赛德尔迭代法计算,观察得到的迭代向量序列是否收敛?
2)取定右端向量和初始向量,将的主对角元素成倍增长若干次,非主对角元素不变,每次用雅克比迭代法计算,要求迭代误差满足,比较收敛速度。
二、问题分析。
问题(1)要求针对不同的初始向量,和不同的方程组右端向量,在迭代误差一定的情况下,分别用用雅克比和高斯赛德尔迭代法计算方程组,并分析迭代向量序列的收敛性与迭代次数。
问题(2)要求在右端向量和初始向量一定的条件下,将的主对角元素成倍增长若干次,非主对角元素不变。在迭代误差满足的条件下,用雅克比迭代法比较不同的收敛速度。
三、模型建立。
对于一般的线性方程组,假设,雅克比迭代公式是。
如果将分解为,,
迭代公式等价于如下的矩阵形式:
或。类似地,线性方程组的高斯赛德尔迭代公式是:
等价于如下的矩阵形式:
依据分析可知问题(2)要求迭代误差满足,在此,不妨问题(1)也采用相同的迭代误差。
针对问题(1),出于简化模型的目的,不妨初始向量分别取和,方程组右端向量也分别取和。
针对问题(2),出于简化模型的目的,分别取原的主对角元素的1到5倍,初始向量和方程组右端向量分别取和,在迭代误差满足的条件下,比较五次得到的迭代结果进行分析。
四、模型求解。
针对问题(1),依据模型在初始向量为,方程组右端向量为时编写如下程序:
a=zeros(20);
for i=1:20
for j=1:20
if i==j
a(i,j)=3;
endif i==j-1
a(i,j)=-1/2;
endif j==i-1
a(i,j)=-1/2;
endif i==j-2
a(i,j)=-1/4;
end if j==i-2
a(i,j)=-1/4;
endend
endl=-tril(a,-1);
u=-triu(a,1);
d=diag(diag(a));
b=ones(20,1); 右端向量以下的程序对此出做相应的改动。
雅克比。b1=d\(l+u);
f1=d\b;
x0=zeros(20,1); 初始向量以下的程序对此出做相应的改动。
i=1;x=b1*x0+f1;
while norm(x-x0,inf)>=1e-6 x0=x; %设置迭代精度为10e-5
x=b1*x0+f1;
i=i+1;
endx i
高斯赛德尔。
b2=(d-l)\u;
f2=(d-l)\b;
y0=zeros(20,1); 初始向量以下的程序对此出做相应的改动。
j=1;y=b2*y0+f2;
while norm(y-y0,inf)>=1e-6 y0=y; %设置迭代精度为10e-5
y=b2*y0+f2;
j=j+1;
endy j
运行程序得到雅克比算法为了达到的迭代精度,迭代次数为20。高斯赛德尔算法为了达到的迭代精度,迭代次数为13。其结果为:
改变初始向量为,保持方程组右端向量不变为,得到雅克比算法为了达到的迭代精度,迭代次数为19。高斯赛德尔算法为了达到的迭代精度,迭代次数为13。
保持初始向量为不变,改变方程组右端向量为时,得到雅克比算法为了达到的迭代精度,迭代次数为1。高斯赛德尔算法为了达到的迭代精度,迭代次数为1。从结果看该取值很有可能使得方程组出现了病态解。
同时改变初始向量()和方程组右端向量()时,得到雅克比算法为了达到的迭代精度,迭代次数为20。高斯赛德尔算法为了达到的迭代精度,迭代次数为14。
当初始向量和方程组右端向量同时为时,方程求解的出现了特殊情况。因此在方程组右端向量为时,改变初始向量为,得到克比算法为了达到的迭代精度,迭代次数为21。高斯赛德尔算法为了达到的迭代精度,迭代次数为14。
综合上述程序运行结果,可以看出,在相同的精度要求下,高斯赛德尔的收敛性更好一些。
针对问题(2),依据模型编写如下程序:
a=zeros(20);
for i=1:20
for j=1:20
if i==j
a(i,j)=3;
endif i==j-1
a(i,j)=-1/2;
endif j==i-1
a(i,j)=-1/2;
endif i==j-2
a(i,j)=-1/4;
end if j==i-2
a(i,j)=-1/4;
endend
endt=cell(1,5);
for k=1:5
for i=1:20
for j=1:20
if i==j
a(i,j)=3*k;
t=a;end
endend
end取原对角元素的1到5倍。
for i=1:5
l=-tril(t,-1);
u=-triu(t,1);
d=diag(diag(t));
b=ones(20,1);
b=d\(l+u);
f=d\b;
x0=zeros(20,1);
i=1;x=b*x0+f;
while norm(x-x0,inf)>=1e-6 x0=x; %设置迭代精度为10e-5
x=b*x0+f;
i=i+1;
endx i
end 运行程序得到在迭代误差满足的要求下,原系数矩阵的主对角元素的1到5倍的迭代次数分别为20,10,8,7,6。由此可以看出当迭代精度不变时,主对角元素成倍增大,达到精度所需的迭代次数逐渐下降。
五、模型的评价与改进。
该模型充分运用了分解,充分体现了雅克比迭代与高斯赛德尔迭代的特征。在相互对照的模式下,体现了雅克比迭代与高斯赛德尔迭代的收敛速度。也体现出了在系数矩阵的主对角元素增大的情况下雅克比迭代的收敛性。
实验2一、问题的提出。
设国民经济由农业、制造业和服务业三个部门构成,已知某年他们之间的投入产出关系、外部需求、初始投入等如表1所示。根据表回答下列问题:
表1:国民经济三个部门之间的投入产出表。
1)如果今年对农业、制造业和服务业的外部需求分别为50,150,100亿元,问这三个部门的总产出应分别为多少?
2)如果三个部门的外部需求分别增加一个单位,问他们的总产出应分别增加多少?
二、问题分析。
题目中给出了农业、制造业、服务业之间的投入产出关系、外部需求、初始投入等。描述了国民经济三个部门之间的生产消耗和投入产出的数量关系。要求建立投入产出的数学模型,并运用模型求出。
1)农业、制造业和服务业的外部需求分别为50,150,100亿元时三个部门的总产出。
2)三个部门的外部需求分别增加一个单位时他们的总产出应分别增加多少。
三、模型建立。
首先,依据题目所给的数据可以求出消耗系数(第个部门1单位的产出对第个部门的世界消耗量)
在技术水平没有明显提高的情况下,假设直接消耗系数不变,在这个假设下建立投入产出的数学模型。
设有n个部门,记一定时期内第个部门的总产出为,其中对第个部门的投入为,外部需求为,则。
由于每个部门的总产出等于总投入,所以可以将(1)式中的视为第列的总投入,由(1)、(2)式得到。
记直接消耗系数矩阵,产出向量,需求向量,则式(3)可以写作(其中是单位矩阵):
或 从方程组看得出,表明总产出对外部需求是线性的,所以当增加一个单位(记作)时的增量为。
四、模型求解。
当农业、制造业和服务业的外部需求分别为50,150,100亿元时,运用建立的模型编写以下程序:
a=[15 20 30;30 10 45;20 60 0];
b=[100 200 150];
for i=1:3
for j=1:3
a(i,j)=a(i,j)/b(1,j);
endend
d=[50;150;100];
b=eye(3)-a;
x=b\d运行得到当农业、制造业和服务业的外部需求分别为50,150,100亿元时三个部门的总产出分别为139.2801,267.6056,208.1377。
三个部门的外部需求分别增加一个单位时,承接上面程序用矩阵求逆命令计算:
dx=inv(b)
得到三个部门的外部需求分别增加一个单位时他们的总产出应分别增加1.3459,0.5634,0.4382。
五、模型的评价与改进。
该模型中充分运用了题目中已知的数据,考虑到消耗系数在投入产出关系中的作用,并以消耗系数为起点建立了相应的模型。合理分析了矩阵元素所代表的实际经济意义,恰当的采用了逆矩阵使得运算大大简化。
数学实验作业
练习5.3 1.设x u 1,11 求该均匀分布的均值与方差。解 输入命令 m,v unifstat 1,11 结果为 m 6,v 8.3333 所以所求均匀分布的均值和方差分别为 6,8.3333。2 设x n 0,16 求该正态分布的均值 标准差和方差。解 输入命令 m,v normstat 0...
数学实验作业
撰写人姓名 陈金伟撰写时间 2010 11 审查人姓名 实验全过程记录。一 实验目的。1 掌握利用matlab处理简单的概率问题 2 掌握利用matlab处理简单的数理统计问题。二 实验内容 1 熟练掌握几种常用的离散型 连续型随机变量的函数命令 2 熟练掌握常用的描述样本数据特征的函数命令 如最值...
数学实验作业
练习一。1.1例1.2中,将3名体育生分配到同一班级的概率是多少?解属于古典概率问题。将60名大学生随机分配给一班15名,二班22名三班23名的分法共有。将三名体育特长生分配到一个班级的分法共有三种。将其余57名新生分配到三个班级共有,那么一个班级有三名特长生的分法共有。k 所以一个班级分有三名特长...