Gauss消去法实验报告
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
end
end
x=zeros(n,1);
x(n)=b(n)/a(n,n);
for k=n-1:-1:1
s=b(k);
for j=k+1:n
s=s-a(k,j)*x(j);
end
x(k)=s/a(k,k);
end
x
%调用M文件gauss. m
%形成增广矩阵
%计算乘子
% 对k+1~n项进行消元
%增广矩阵第i行减去第k行的乘子倍目的是将该矩阵中的第k列中a(k,k)以下的元素全部消为零
end
end
%回代
if a(n,n)==0
return
end
x(n)=a(n,n+1)/a(n,n);
for i=n-1:-1:1
x(i)=(a(i,n+1)-sum(a(i,i+1:n).*x(i+1:n)))/a(i,i);
end
x
%调用M文件gauss. m
%形成增广矩阵
%选出每列中绝对值最大的数
4.输入矩阵时的分行符号是英文分号而不是中文分号,否则会出现运行错误。
实验二、列主元法解线性方程组
一、实验目的:
1、学习使用matlab编写数值计算程序。
2、了解列主元消去法的基本原理和解法思路及相应的编程方法。
3、根据列主元法的原理编写matlab程序,并运行出相应的结果,提高matlab编程能力。
if abs(a(i,k))==maxa
y=a(i,k:n+1);a(i,k:n+1)=a(k,k:n+1);a(k,k:n+1)=y;
break;
end
end
for i=k+1:n
l(i,k)=a(i,k)/a(k,k);
a(i,k+1:n+1)=a(i,k+1:n+1)-l(i,k).*a(k,k+1:n+1);
2、实验步骤:首先,在电脑上安装matlab,然后,启动matlab,新建一个M文件。
程序代码
程序代码说明
function x=gauss(A,b)
n=length(A);
a=[A,b];
for k=1:n-1
maxa=max(abs(a(k:n,k)));
if maxa==0
return;
end
for i=k:n
0.2814
0.3279
五、实验分析:
1.在本次实验中要先新建M文件并存储,以便实验中多次调试,减少每次输入的麻烦
2.在本次实验中,很容易把矩阵中各元素的下标写错,因为编程技术还不够熟练,所以在使用数学指令上还不够全面,这在以后的实验中是应该加强训练的。
3.通过本次实验也增强了我对matlab这个软件的了解,尤其是循环语句的使用。
3、根据gauss消去法的原理编写matlab程序,并运行出相应的结果,提高matlab编程能力。
二、实验原理:
消元过程:
设 ,令乘数 ,做(消去第i个方程组的 )操作 ×第1个方程+第i个方程(i=2,3,.....n)
则第i个方程变为
这样消去第2,3,。。。,n个方程的变元 后。原线性方程组变为:
程序代码
程序代码说明
function x=gauss(A,b)
n=length(A);
a=[A,b];
for k=1:nຫໍສະໝຸດ 1for i=k+1:n
a(i,k)=a(i,k)/a(k,k);
for j=k+1:n
a(i,j)=a(i,j)-a(i,k)*a(k,j);
end
b(i)=b(i)-a(i,k)*b(k);
%回代求解
%此循环用来求a(j,k)*x(j)由k+1~n项的和
%输出最终的解X
四、实验数据及结果:
1、实验送的初值为:
A=[0.729,0.810,0.900;1.000,1.000,1.000;1.331,1.210,1.100]
b=[0.6867;0.8338;1.0000]
2、实验结果为:
X =0.2245
这样就完成了第1步消元。
回代过程:
在最后的一方程中解出 ,得:
再将 的值代入倒数第二个方程,解出 ,依次往上反推,即可求出方程组的解:
其通项为
三、实验内容与步骤:
1、实验内容:依照实验原理编写gauss消去法的程序。
2、实验步骤:首先,在电脑上安装matlab,然后,启动matlab,新建一个M文件。
Gauss消去法实验报告
Gauss消去法实验报告
学院:教师教育学院专业:数学与应用数学(师范)
实验名称
使用matlab编写gauss消去法程序
指导教师
孙老师
姓名
郑碧玉
年级
2011
学号
22110631
成绩
实验一、gauss消去法解线性方程组
一、实验目的:
1、学习使用matlab编写数值计算程序。
2、了解gauss消去法的基本原理和解法思路及相应的编程方法。
实验结果为:
X=0.2246
0.2812
0.3280
五、实验分析:
1.在本次实验中要先新建M文件并存储,以便实验中多次调试,减少每次输入的麻烦
2.在本次实验中,很容易把maxa=max(abs(a(k:n,k)))的多个小括号给漏掉,造成运行中的语法错误这在以后的实验中是应该加强训练的。
3.通过本次实验也增强了我对matlab这个软件的了解,尤其是循环语句的使用。
二、实验原理:
由一般线性方程组在使用Gauss消去法求解时,从求解过程中可以清楚地看到,若 ,必须施以行交换的手续,才能使消去过程继续下去。有时既使 ,但其绝对值很小,由于舍入误差的影响,消去过程也会出现不稳定现象。因此,为使这种不稳定现象发生的可能性减至最小,在施行消去过程时每一步都要选主元素,即要寻找行 ,使
%如果最大的数为零,则矩阵奇异,停机退出
%进行行变换
%计算乘子
% 对k+1~n项进行消元
%回代求解
%输出最终的解X
实验程序如下:
四、实验数据及结果:
1、实验送的初值为:
A=[0.729,0.810,0.900;1.000,1.000,1.000;1.331,1.210,1.100]
b=[0.6867;0.8338;1.0000]
并将第 行与第 行交换,以使 的当前值(即 的数值)远大于0。
这种列主元消去法的主要步骤如下:
1.消元过程
对 ,做
1º选主元,记
若 ,说明方程组系数矩阵奇异,则停止计算,否则进行2º。
2º交换 (增广矩阵)的 两行元素
3º计算
2.回代过程
对 ,计算
三、实验内容与步骤:
1、实验内容:依照实验原理编写列主元消去法的程序。
4.输入矩阵时的分行符号是英文分号而不是中文分号,否则会出现运行错误。
5.在没有语法错误及其他提示的情况下,运行结果错误,可以进行动态定点定位查询,方便检查错误
end
x=zeros(n,1);
x(n)=b(n)/a(n,n);
for k=n-1:-1:1
s=b(k);
for j=k+1:n
s=s-a(k,j)*x(j);
end
x(k)=s/a(k,k);
end
x
%调用M文件gauss. m
%形成增广矩阵
%计算乘子
% 对k+1~n项进行消元
%增广矩阵第i行减去第k行的乘子倍目的是将该矩阵中的第k列中a(k,k)以下的元素全部消为零
end
end
%回代
if a(n,n)==0
return
end
x(n)=a(n,n+1)/a(n,n);
for i=n-1:-1:1
x(i)=(a(i,n+1)-sum(a(i,i+1:n).*x(i+1:n)))/a(i,i);
end
x
%调用M文件gauss. m
%形成增广矩阵
%选出每列中绝对值最大的数
4.输入矩阵时的分行符号是英文分号而不是中文分号,否则会出现运行错误。
实验二、列主元法解线性方程组
一、实验目的:
1、学习使用matlab编写数值计算程序。
2、了解列主元消去法的基本原理和解法思路及相应的编程方法。
3、根据列主元法的原理编写matlab程序,并运行出相应的结果,提高matlab编程能力。
if abs(a(i,k))==maxa
y=a(i,k:n+1);a(i,k:n+1)=a(k,k:n+1);a(k,k:n+1)=y;
break;
end
end
for i=k+1:n
l(i,k)=a(i,k)/a(k,k);
a(i,k+1:n+1)=a(i,k+1:n+1)-l(i,k).*a(k,k+1:n+1);
2、实验步骤:首先,在电脑上安装matlab,然后,启动matlab,新建一个M文件。
程序代码
程序代码说明
function x=gauss(A,b)
n=length(A);
a=[A,b];
for k=1:n-1
maxa=max(abs(a(k:n,k)));
if maxa==0
return;
end
for i=k:n
0.2814
0.3279
五、实验分析:
1.在本次实验中要先新建M文件并存储,以便实验中多次调试,减少每次输入的麻烦
2.在本次实验中,很容易把矩阵中各元素的下标写错,因为编程技术还不够熟练,所以在使用数学指令上还不够全面,这在以后的实验中是应该加强训练的。
3.通过本次实验也增强了我对matlab这个软件的了解,尤其是循环语句的使用。
3、根据gauss消去法的原理编写matlab程序,并运行出相应的结果,提高matlab编程能力。
二、实验原理:
消元过程:
设 ,令乘数 ,做(消去第i个方程组的 )操作 ×第1个方程+第i个方程(i=2,3,.....n)
则第i个方程变为
这样消去第2,3,。。。,n个方程的变元 后。原线性方程组变为:
程序代码
程序代码说明
function x=gauss(A,b)
n=length(A);
a=[A,b];
for k=1:nຫໍສະໝຸດ 1for i=k+1:n
a(i,k)=a(i,k)/a(k,k);
for j=k+1:n
a(i,j)=a(i,j)-a(i,k)*a(k,j);
end
b(i)=b(i)-a(i,k)*b(k);
%回代求解
%此循环用来求a(j,k)*x(j)由k+1~n项的和
%输出最终的解X
四、实验数据及结果:
1、实验送的初值为:
A=[0.729,0.810,0.900;1.000,1.000,1.000;1.331,1.210,1.100]
b=[0.6867;0.8338;1.0000]
2、实验结果为:
X =0.2245
这样就完成了第1步消元。
回代过程:
在最后的一方程中解出 ,得:
再将 的值代入倒数第二个方程,解出 ,依次往上反推,即可求出方程组的解:
其通项为
三、实验内容与步骤:
1、实验内容:依照实验原理编写gauss消去法的程序。
2、实验步骤:首先,在电脑上安装matlab,然后,启动matlab,新建一个M文件。
Gauss消去法实验报告
Gauss消去法实验报告
学院:教师教育学院专业:数学与应用数学(师范)
实验名称
使用matlab编写gauss消去法程序
指导教师
孙老师
姓名
郑碧玉
年级
2011
学号
22110631
成绩
实验一、gauss消去法解线性方程组
一、实验目的:
1、学习使用matlab编写数值计算程序。
2、了解gauss消去法的基本原理和解法思路及相应的编程方法。
实验结果为:
X=0.2246
0.2812
0.3280
五、实验分析:
1.在本次实验中要先新建M文件并存储,以便实验中多次调试,减少每次输入的麻烦
2.在本次实验中,很容易把maxa=max(abs(a(k:n,k)))的多个小括号给漏掉,造成运行中的语法错误这在以后的实验中是应该加强训练的。
3.通过本次实验也增强了我对matlab这个软件的了解,尤其是循环语句的使用。
二、实验原理:
由一般线性方程组在使用Gauss消去法求解时,从求解过程中可以清楚地看到,若 ,必须施以行交换的手续,才能使消去过程继续下去。有时既使 ,但其绝对值很小,由于舍入误差的影响,消去过程也会出现不稳定现象。因此,为使这种不稳定现象发生的可能性减至最小,在施行消去过程时每一步都要选主元素,即要寻找行 ,使
%如果最大的数为零,则矩阵奇异,停机退出
%进行行变换
%计算乘子
% 对k+1~n项进行消元
%回代求解
%输出最终的解X
实验程序如下:
四、实验数据及结果:
1、实验送的初值为:
A=[0.729,0.810,0.900;1.000,1.000,1.000;1.331,1.210,1.100]
b=[0.6867;0.8338;1.0000]
并将第 行与第 行交换,以使 的当前值(即 的数值)远大于0。
这种列主元消去法的主要步骤如下:
1.消元过程
对 ,做
1º选主元,记
若 ,说明方程组系数矩阵奇异,则停止计算,否则进行2º。
2º交换 (增广矩阵)的 两行元素
3º计算
2.回代过程
对 ,计算
三、实验内容与步骤:
1、实验内容:依照实验原理编写列主元消去法的程序。
4.输入矩阵时的分行符号是英文分号而不是中文分号,否则会出现运行错误。
5.在没有语法错误及其他提示的情况下,运行结果错误,可以进行动态定点定位查询,方便检查错误