- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
解n元线性方组程的模型
解n元线性方程组的模型
问题的提出:小明妈妈去买白菜,青菜总共花了10元。白菜2.5元一斤,青菜3元一斤,请算出小明妈妈买了几斤白菜及青菜?
尽管这个问题听起来非常熟悉,显得非常简单,但仅仅由这几个数字和约束条件解不出来这个问题的实际解。因为这个问题有白菜和青菜的质量的两个变元,所以还必须需要一组约束,既需要白菜和青菜的总和斤量才能解出这个问题唯一解,否则这个问题会有很多解,这不符合实际要求。
再举一个物理机械运动学有关的简单例子:甲乙两人分别从相距30千米的A、B两地同时相向而行,经过3小时后相距3千米,再经过2小时,甲到B地所剩路程是乙到A地所剩路程的2倍,求甲、乙两人的速度。…n的一个排列指的是由这n个数码组成的一个有序组。
反序:如果一个较大的数码排在一个较小的数码前面,就说这两个数码构成一个反序。我们用∏(j1,j2...jn)表示排列j1,j2...jn的反序数。
行列式:用符号 (1)
表示的n阶行列式指的是n!项的代数和,这些项是一切可能的取自(1)的不同的行与不同的列上的n个元素a1j1a2j2……anjn。项a1j1a2j2……anjn的符号(-1)^(j1,j2...jn),也就是说,当j1,j2...jn是偶排列时,这一项的符号为正,当j1,j2...jn是奇排列时,这一项的符号为负。
行列式的一些性质:
转置行列式:如果把(1)行变为列,就得到一个新的行列式,则称这个行列式位为(1)的转置行列式。
命题一:行列式与它的转置行列式相等。
命题二:交换一个行列式的两行(或两列),行列式改变符号。
命题三:如果一个行列式有两行(或两列)完全相同,则这个行列式等于零。
命题四:一个行列式的某一个行(列)等于零,则这个行列式等于零。
矩阵:由st个数排成的一个s行t列的表叫作一个s行t列(或s*t)矩阵。Cij叫作这个矩阵的元素。
注意: 矩阵与行列式虽然形式上有些类似,但有完全不同的意义。一行列式死一些数的代数和,而矩阵仅仅是一个表。
定义1:矩阵的行(列)初等变换指的是对一个矩阵实行的下列变换:
(i)交换矩阵的两行(列);
(ii)用一个不等于零的数乘矩阵的某一行(列),即用一个不等于零的数乘矩阵某一行(列)所有元素;
(iii)用某一数乘矩阵的某一行(列)后加到另一行(列),即用某一数乘矩阵的某一行(列)的每个元素后加到另一行(列)的对应元素上;
定义2:在一个s行t列矩阵中,任取k行k列(k=s,k=t),位于这些行列交点处的元素(不改变元素的相对位置)所构成的k阶行列式叫作这个矩阵的一个k阶子式。
定义3:一个矩阵中不等于零的子式的最大阶数叫作这个矩阵的秩。
定理1:初等变换不改变矩阵的秩。
模型建立 AX=B。
注:其中A是m*n阶矩阵,X是n*1的变量,B是m*1的常数项列向量。
定理2:这个模型有解的充要条件是:秩A=秩(A,B)。
定理3:当秩A≠秩(A,B)时无解;当秩A=秩(A,B),且等于变量的个数n时有唯一解;当秩A=秩(A,B)<n时有无穷多解;
下面是用计算机实现解这个模型的具体程序:
求解线性方程组AX=b的算法
一、求出矩阵的秩的方法:
(1) 先将矩阵A保存到二维数组A[i][j]中,i=0,1,……m-1,j=0,1,……n-1,并将A[i][j]进行矩阵的初等变换化为三角阵u[i][j]= A[i][j]。
化成三角阵的代码:
int ToTriangle()
{int i,j,k;
double x;
if(SetPrintMatrix) PriontMatrix();
for(k=0;kM;k++)
{x=A[k][k];
For(j=k;jN;j++) A[k][j]/=x;
If(SetPrintMatrix) PriontMatrix();
If(k=M-1) break;
For(i=k+1;iM;i++)
{x=A[i][k];
For(j=k;jN;j++)
A[i][j]-=x*A[k][j;]
}
If(SetPrintMatrix) PriontMatrix()
}
Return 0;
}
(2) 再定义一个求和变量sum和一个指针变量*P,其中p指向 最后一行的每一个元素U[m-1][j], j=0,1,……n-1,判断p所指向的元素的值是否为0,如果是0,则sum++,P++,若不为0,则结束程序;
(3) 得出sum的值,若sumn,结束程序,秩为n;否则若果sum=n,则指针P指向倒数第二行u[m-2][j], j=0,1,……n-1,作同第2步的处理……,秩为m-k,k=1,2,……m-1;
这样可以得出矩阵A的秩,并用同样的方法,在算出增广矩阵的(A,b)秩,然后就可以将线性方程组AX=b的系数矩阵的秩与正广矩阵的秩进行比
文档评论(0)