应用MATLAB求线性方程组的Cramer法则
应用MATLAB求线性方程组的,ramer法则方法探讨
[1][2]周 均 韩乐文
([1] 涪陵师范学院数学系 重庆 涪陵408003
[2]重庆交通学院大坪校区基础部 重庆 渝中区400042)
摘要:本文分析了几种用MATLAB求解线性方程组的Cramer法则的方法,并指出这些方法的改进过程及其教学价值。
关键词:MATLAB;线性方程组;Cramer法则;方法
0. 引言 [1]从有关文献知道MATLAB主要就是解决矩阵的计算问题,并知由此推广应用到求解线性代数的许[2]多问题,本文将着重讨论应用它求解线性方程组的Cramer法则的几种形式,并由此获得启示,从而提高MATLAB的应用技巧。
1(应用形式之一——直接法 [2]直接法就是直接应用其功能求线性方程组,这与线性代数的Cramer法则一样,求解方程组
[3]3x,x,5x,3,123,x,x,2x,1具体步骤如下: ,123
,x,2x,x,2123,
>>A=[3 -1 5;1 -1 2 ;1 -2 -1] ; %输入矩阵的数据
>>B=[3 1 2]'; %输入线性方程组的常数项
>>A1=A;
>>A1(:,1)=B; %用常数项替代系数矩阵第一列
>>x1=det(A1)/det(A) %应用Cramer法则求第一个未知量
>>A2=A;
>>A2(:,2)=B; %用常数项替代系数矩阵第二列
>>x2=det(A2)/det(A) %应用Cramer法则求第二个未知量
>>A3=A;
>>A3(:,3)=B; %用常数项替代系数矩阵第三列
>>x3=det(A3)/det(A) %应用Cramer法则求第三个未知量
输出结果就是三个未知量
x1 = 10/7
x2 =-1/7
x3 =-2/7
这个方法实质就是完全按照线性代数中的法则按部就班完成Cramer法则,此法有这样的优点,方法直观简单,可操作性强,可直接在MATLAB工作窗口中一步一步完成,也可以将以上各步全部编成M文件完成。
2(应用形式之二——循环语句M文件法
从1的第三步求Ai开始,求x(i=1,2,3),显然是一种重复使用了一种操作,即满足使用循环语句的i
条件。如果使用循环语句同样可以得到方程的解,具体步骤如下:
A=[3 -1 5;1 -1 2;1 -2 -1]; %输入矩阵的数据
B=[3 1 2]'; %输入线性方程组的常数项
S=[0,0,0]; %输入一个解的初值
for i=1:3 %计算Ai和解向量的分量S(i)
C=A;
C(:,i)=B;
S(i)=det(C)/det(A);
end
format rat
S' %输出解向量
将以上语句保存为名字为cramer2的M文件后,在MATLAB的M文件编辑器、编译器窗口中选择Debug菜单,再选择Save and Run项(或直接按F5)即可实现对该M文件的编译运行;运行结果为:
1
ans =
10/7
-1/7
-2/7
从上面的过程可发现用这种方法求解线性方程组时语句精练了,同1方法一样直观方便,可操作性强,如果要改变系数矩阵A和常数项B只消修改前4个语句中的矩阵元素和矩阵阶数(方程组未知数的个数)就可以实现此方法的移植性;也正是这一点也是该方法的缺点,每求解一个新方程组就要重新修改M文件后。重新编译运行,使用起来还是不很方便,如果将此M文件改为M函数移植性就更好了,这正是笔者将在3中讨论的。
3(应用形式之三——M函数法
function S=cramer(A,B,S,N)
for i=1:N
C=A;
C(:,i)=B;
S(i)=det(C)/det(A);
end
format rat
S';
[4]2x,x,3x,2x,6,1234,3x,3x,3x,2x,5,1234函数编译后,例求解线性方程组操作步骤如下: ,3x,x,x,2x,31234,
,3x,x,3x,x,4,1234
>>A=[2 -1 3 2;3 -3 3 2 ;3 -1 -1 2;3 -1 3 -1] ; %输入矩阵的数据
>>B=[6 5 3 4]'; %输入线性方程组的常数项
>>S=[0,0,0,0];
>> N=4;
>> cramer(A,B,S,N)
运行结果为:
ans =
1 1 1 1 显然,这种方法的可移植性就更好了,它不仅对多个未知量适用,而且对不同的系数矩阵也适用。在求解其它方程组时不必重新编译M函数,只要直接输入A,B,S,N及cramer(A,B,S,N)即可。
不过这里还得补充说明一下,这个M函数在使用过程还有些不尽人意的地方,如果我们对M函数进行适当的修改,如函数的参数设置可否只要A,B,不要S,N。事实上,N是所求知量的个数(或解向量维数)可否通过MATLAB内部函数length(B)[5]调用赋值。而S在函数执行过程中通过S(i)赋值不需要初始化S=[0,0,0,0]。改进后的cramer函数如下:
function S=cramer(A,B)
for i=1:length(B)
C=A;
C(:,i)=B;
S(i)=det(C)/det(A);
end
format rat
S';
这时在求解新的线性方程组时只消输入矩阵A,B即可.例如求解线性方程组:
[2]2x,x,5x,x,8,1234,x,3x,6x,9,124 ,2x,8x,3x,,5234,
,x,4x,7x,6x,0,1234
具体过程如下:
>> A=[2 1 –5 1;1 –3 0 –6;0 2 8 3 ;1 4 –7 6];B=[8 9 –5 0]’;
2
Cramer(A,B)
结果为:
ans =
75/19 -14/19 -5/19 -9/19 4(结束语
从上面探索求解方程组的Cramer法则的过程,可以看出应用MATLAB求解线性方程组的方法是在逐渐改进的,这一改进过程不仅是方法本身越来越简单,更重要的是在这一教学过程中,通过巧设问题,创造问题情境,启发学生独立思考,从而培养学生的程序设计能力,比单纯进行高级语言程序设计教学培养学生程序设计的能力更深动、更形象、更实用,达到的教学效果会更好。
参考文献:
[1]苏金明等.MATLAB6.1应用指南[M]北京:电子工业出版社,2002.1。
[2]北京大学数学力学组.高等代数[M]北京:高等教育出版社,1982.
[3]电子科技大学应用数学系.数学实验简明教程[M]成都:电子科技大学出版社,
[4]杨子胥等.高等代数习题集[M]济南:山东科学技术出版社,1984.329
[5]萧树铁等.数学实验[M]北京:高等教育出版社,1999.7 9
Probing In the Methods of Cramer Principle of Linear Equations’ Solution
By Using MATLAB
ZHOU jun
(Mathematical Department In Fuling teachers college Fuling Chongqing 408003)
Abstract: The article analyses several methods of linear equations’ solution by using MATLAB software.
Meanwhile it put forward their development process and their education value.
Keywords: MATLAB; linear equations; Cramer principle; methods
第一作者简介:周 均,数学高级讲师;生于1968年7月,祖籍重庆市涪陵区。1989年毕业于四川师范大学数学系,取得理学学士学位,1993年12月参加四川外国语学院英语专科自考专科毕业,2001年毕业于西南农业大学基础科学院计算机应用专业,取得工学学士学位。曾在涪陵工业学校任教,现工作于涪陵师范学院数学系,数学高级讲师,从事《高等数学》、《计算方法》、《中学数学教材教法》、《计算机导论》、《C语言程序设计》《数学建模与数学实验》等多门课程大学本、专科
nalim
n,,n!教学工作,研究方向为计算机应用与数学教学。曾撰写发表过《从极限求解谈起》(重庆教育学院学报(自然科学版)2002(6);《开放式教学在高职数学教学中的应用》职业技术教育2003(7)、《Cauchy分布及其作为反例在概率中的应用讨论》(吉林职业师范学院学报2003(9)、《新股申购中的几个概率问题探讨》重庆教育学院学报2003(3),《应用Excel进行数学实验的探索》(实验科学与技术2003(1)),参编过由重庆大学出版社出版发行的《中专数学教程》第一册、《高职数学》中册。
联系电话:(023)72243036(家) E-mail :lmzjzgoi@sohu.com
通信地址:重庆市涪陵区涪陵师范学院数学系 邮政编码:408003
第二作者简介:韩乐文,数学副教授;生于1965年5月,工作于重庆交通学院大坪校区基础部,从事高职数学教学改革与研究。邮政编码:400042
3
本文档为【应用MATLAB求线性方程组的Cramer法则】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。