文档介绍:数值解析实验报告
数值解析实验报告
1/25
数值解析实验报告
学生实验报告
实验课程名称
开课实验室
;
end
ifm~=size(b)
error('b的大小必须和A的行数或A的列数相同');
return;
end
%再检查方程是否存在唯一解
ifrank(A)~=rank([A,b])
error('A矩阵的秩和增广矩阵的秩不相同,方程不存在唯一解');
return;
数值解析实验报告
数值解析实验报告
4/25
数值解析实验报告
.
数值解析实验报告
数值解析实验报告
25/25
数值解析实验报告
精品文档
end
%这里采用增广矩阵行变换的方式求解
c=n+1;
A(:,c)=b;
%%消元过程
fork=1:n-1
A(k+1:n,k:c)=A(k+1:n,k:c)-(A(k+1:n,k)/A(k,k))*A(k,k:c);
end
%%回代结果
x=zeros(length(b),1);
x(n)=A(n,c)/A(n,n);
fork=n-1:-1:1
x(k)=(A(k,c)-A(k,k+1:n)*x(k+1:n))/A(k,k);
end
%显示计算结果
%disp('x=');
%disp(x);
y=x;
%%%%%%%%%%%%高斯列主元消元法求解线性方程组Ax=b%%%%%%%%%%%%%%
%A为输入矩阵系数,b为方程组右端系数
%方程组的解保留在x变量中
functiony=Gauss_line(A,b)
formatlong;%设置为长格式显示,显示15位小数
[m,n]=size(A);
%先检查系数正确性
ifm~=n
error('矩阵A的行数和列数必须相同');
return;
end
ifm~=size(b)
error('b的大小必须和A的行数或A的列数相同');
return;
end
%再检查方程是否存在唯一解
ifrank(A)~=rank([A,b])
error('A矩阵的秩和增广矩阵的秩不相同,方程不存在唯一解');
return;
end
c=n+1;
A(:,c)=b;%(增广)
fork=1:n-1
[r,m]=max(abs(A(k:n,k)));%选主元
m=m+k-1;%修正操作行的值
数值解析实验报告
数值解析实验报告
6/25
数值解析实验报告
.
数值解析实验报告
数值解析实验报告
25/25
数值解析实验报告
精品文档
if(A(m,k)~=0)
if(m~=k)
A([km],:)=A([mk],:);%换行
end
A(k+1:n,k:c)=A(k+1:n,k:c)-(A(k+1:n,k)/A(k,k))*A(k,k:c);%消去
end
end
x=zeros(length(b),1);%回代求解
x(n)=A(n,c)/A(n,n);
fork=n-1:-1:1
x(k)=(A(k,c)-A(k,k+1:n)*x(k+1:n))/A(k,k);
end
y=x;
formatshort;%设置为默认格式显示,显示5位
2)成立MATLAB界面
利用MATLAB的GUI成立如下界面求解线性方程组:
详见程序。
五、计算实例、数据、结果、解析
下面我们对以上的结果进行测试,求解:
数值解析实验报告
数值解析实验报告
8/25
数值解析实验报告
.
数值解析实验报告
数值解析实验报告
25/25
数值解析实验报告
精品文档
2
10
0
3
x1
10
3
4
12
13
x2
5
1
2
3
4
x3
2
4
14
9
13
x4
7
输入数据后点击
和