解n元线性方组程的模型.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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)

ggdxyz3 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档