matlab程序求解含有边界条件的线性方程组
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编写程序,求解含有边界条件(本质)的线性方程组
一、编写程序思路:拟编写一MATLAB 程序函数,来处理边界条件(a x k =), 将原线性方程组转化为形如:
⎥⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎣⎡----=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡a A b a A b a A b a a A b x x x x x A A A A A A A A A A A A A A A A 5254243231215432155545351454443
41
3534333115141311000000100 (边界条件为a x =2), 然后调用作业(一)中解线性方程组函数x=gauss(A,b),求解该线性方程组。
一、变量说明:
解含边界条件(a x k =)线性方程组Ax=b ,其中:
A -线性方程组系数矩阵;b -列向量
n -系数矩阵行数; m -系数矩阵列数; x -未知解向量 i -系数矩阵的行变量; k -解向量x 的下标变量;
三、基于MATLAB 软件平台编写程序,如下:
function tr=boundary(A,b,k,a) %定义边界条件处理函数
[n,m]=size(A); %获得系数矩阵A 的行、列数 A(k,:)=0; %系数矩阵第k 行化为0
for i=1:n %使向量b 转化为[b(i)-A(i,k)*a]向量 b(i)=b(i)-A(i,k)*a;
end
A(:,k)=0; %系数矩阵第k 列化为0
A(k,k)=1;b(k)=a; %使k x 所对应系数矩阵中主对角元
素化为1
disp(A); %显示边界条件经处理后的A 和b disp(b);
x=gauss(A,b) %调用作业一中高斯消元函数解方
程组
四、程序应用
例如:解线性方程组:
5
201210943422333372842452532154321
54215432543211⎪⎪⎪⎩⎪⎪⎪⎨⎧=====+-++++++++-++++++-x x x x x x x x x x x x x x x x x x x x x x x 其中,边界条件为32=x >> A=[2,-1,5,1,1;4,2,4,8,-1;1,2,0,7,3;3,1,3,3,2;2,4,-3,0,4]; >> b=[9;10;12;20;5];
>> tr=boundary(A,b,2,3)
输出结果为:
4
03-022
3303370010001
01150
2
7
-17
63
12
x =
6.5249
3.0000
0.3481
1.9613
-4.7514