c 解线性方程组的几种方法

c 解线性方程组的几种方法
c 解线性方程组的几种方法

//解线性方程组

#include

#include

#include

//----------------------------------------------全局变量定义区

const int Number=15; //方程最大个数

double a[Number][Number],b[Number],copy_a[Number][Number],copy_b[Number];

//系数行列式

int A_y[Number]; //a[][]中随着横坐标增加列坐标的排列顺序,如a[0][0],a[1][2],a[2][1]...则A_y[]={0,2,1...};

int lenth,copy_lenth; //方程的个数

double a_sum; //计算行列式的值

char * x; //未知量a,b,c的载体

//----------------------------------------------函数声明区

void input(); //输入方程组

void print_menu(); //打印主菜单

int choose (); //输入选择

void cramer(); //Cramer算法解方程组

void gauss_row(); //Gauss列主元解方程组

void guass_all(); //Gauss全主元解方程组

void Doolittle(); //用Doolittle算法解方程组

int Doolittle_check(double a[][Number],double b[Number]); //判断是否行列式>0,若是,调整为顺序主子式全>0

void xiaoqu_u_l(); //将行列式Doolittle分解

void calculate_u_l(); //计算Doolittle结果

double & calculate_A(int n,int m); //计算行列式

double quanpailie_A(); //根据列坐标的排列计算的值,如A_y[]={0,2,1},得sum=a[0][ A_y[0] ] * a[1][ A_y[1] ] * a[2][ A_y[2] ]=a[0][0]*a[1][2]*a[2][1];

void exchange(int m,int i); //交换A_y[m],A_y[i]

void exchange_lie(int j); //交换a[][j]和b[];

void exchange_hang(int m,int n); //分别交换a[][]和b[]中的m和n 两行

void gauss_row_xiaoqu(); //Gauss列主元消去法

void gauss_all_xiaoqu(); //Gauss全主元消去法

void gauss_calculate(); //根据Gauss消去法结果计算未知量的值

void exchange_a_lie(int m,int n); //交换a[][]中的m和n列

void exchange_x(int m,int n); //交换x[]中的x[m]和x[n]

void recovery(); //恢复数据

//主函数

void main()

{

int flag=1;

input(); //输入方程

while(flag)

{

print_menu(); //打印主菜单

flag=choose(); //选择解答方式

}

}

//函数定义区

void print_menu()

{

system("cls");

cout<<"------------方程系数和常数矩阵表示如下:\n";

for(int j=0;j

cout<<"系数"<

cout<<"\t常数";

cout<

for(int i=0;i

{

for(j=0;j

cout<

cout<<"\t"<

}

cout<<"-----------请选择方程解答的方案----------";

cout<<"\n 1. 克拉默(Cramer)法则";

cout<<"\n 2. Gauss列主元消去法";

cout<<"\n 3. Gauss全主元消去法";

cout<<"\n 4. Doolittle分解法";

cout<<"\n 5. 退出";

cout<<"\n 输入你的选择:";

}

void input()

{ int i,j;

cout<<"方程的个数:";

cin>>lenth;

if(lenth>Number)

{

cout<<"It is too big.\n";

return;

}

x=new char[lenth];

for(i=0;i

x[i]='a'+i;

//输入方程矩阵

//提示如何输入

cout<<"====================================================\n";

cout<<"请在每个方程里输入"<

cout<<"例:\n方程:a";

for(i=1;i

{

cout<<"+"<

}

cout<<"=10\n";

cout<<"应输入:";

for(i=0;i

cout<

cout<<"10\n";

cout<<"==============================\n";

//输入每个方程

for(i=0;i

{

cout<<"输入方程"<

for(j=0;j

cin>>a[i][j];

cin>>b[i];

}

//备份数据

for(i=0;i

for(j=0;j

copy_a[i][j]=a[i][j];

for(i=0;i

copy_b[i]=b[i];

copy_lenth=lenth;

}

//输入选择

int choose()

{

int choice;char ch;

cin>>choice;

switch(choice)

{

case 1:cramer();break;

case 2:gauss_row();break;

case 3:guass_all();break;

case 4:Doolittle();break;

case 5:return 0;

default:cout<<"输入错误,请重新输入:";

choose();

break;

}

cout<<"\n是否换种方法求解(Y/N):";

cin>>ch;

if(ch=='n'||ch=='N') return 0;

recovery();

cout<<"\n\n\n";

return 1;

}

//用克拉默法则求解方程.

void cramer()

{

int i,j;double sum,sum_x;char ch;

//令第i行的列坐标为i

cout<<"用克拉默(Cramer)法则结果如下:\n";

for(i=0;i

A_y[i]=i;

sum=calculate_A(lenth,0);

if(sum!=0)

{

cout<<"系数行列式不为零,方程有唯一的解:";

for(i=0;i

{ ch='a'+i;

a_sum=0;

for(j=0;j

A_y[j]=j;

exchange_lie(i);

sum_x=calculate_A(lenth,0);

cout<

exchange_lie(i);

}

}

else

{

cout<<"系数行列式等于零,方程没有唯一的解.";

}

cout<<"\n";

}

double & calculate_A(int n,int m) //计算行列式{ int i;

if(n==1) {

a_sum+= quanpailie_A();

}

else{for(i=0;i

{ exchange(m,m+i);

calculate_A(n-1,m+1);

exchange(m,m+i);

}

}

return a_sum;

}

double quanpailie_A() //计算行列式中一种全排列的值

{

int i,j,l;

double sum=0,p;

for(i=0,l=0;i

for(j=0;A_y[j]!=i&&j

if(A_y[j]>i) l++;

for(p=1,i=0;i

p*=a[i][A_y[i]];

sum+=p*((l%2==0)?(1):(-1));

return sum;

}

//高斯列主元排列求解方程

void gauss_row()

{

int i,j;

gauss_row_xiaoqu(); //用高斯列主元消区法将系数矩阵变成一个上三角矩阵for(i=0;i

{

for(j=0;j

cout<

cout<

}

if(a[lenth-1][lenth-1]!=0)

{

cout<<"系数行列式不为零,方程有唯一的解:\n";

gauss_calculate();

for(i=0;i

{

cout<

}

}

else

cout<<"系数行列式等于零,方程没有唯一的解.\n";

}

void gauss_row_xiaoqu() //高斯列主元消去法

{

int i,j,k,maxi;double lik;

for(k=0;k

{

j=k;

for(maxi=i=k;i

if(a[i][j]>a[maxi][j]) maxi=i;

if(maxi!=k)

exchange_hang(k,maxi);//

for(i=k+1;i

{

lik=a[i][k]/a[k][k];

for(j=k;j

a[i][j]=a[i][j]-a[k][j]*lik;

b[i]=b[i]-b[k]*lik;

}

}

}

//高斯全主元排列求解方程

void guass_all()

{

int i,j;

gauss_all_xiaoqu();

for(i=0;i

{

for(j=0;j

cout<

cout<

}

if(a[lenth-1][lenth-1]!=0)

{

cout<<"系数行列式不为零,方程有唯一的解:\n";

gauss_calculate();

for(i=0;i

{

for(j=0;x[j]!='a'+i&&j

cout<

}

}

else

cout<<"系数行列式等于零,方程没有唯一的解.\n"; }

void gauss_all_xiaoqu() //Gauss全主元消去法{

int i,j,k,maxi,maxj;double lik;

for(k=0;k

{

for(maxi=maxj=i=k;i

{

for(j=k;j

if(a[i][j]>a[maxi][ maxj])

{ maxi=i;

maxj=j;

}

}

if(maxi!=k)

exchange_hang(k,maxi);

if(maxj!=k)

{

exchange_a_lie(maxj,k); //交换两列

exchange_x(maxj,k);

}

for(i=k+1;i

{

lik=a[i][k]/a[k][k];

for(j=k;j

a[i][j]=a[i][j]-a[k][j]*lik;

b[i]=b[i]-b[k]*lik;

}

}

}

void gauss_calculate() //高斯消去法以后计算未知量的结果{

int i,j;double sum_ax;

b[lenth-1]=b[lenth-1]/a[lenth-1][lenth-1];

for(i=lenth-2;i>=0;i--)

{

for(j=i+1,sum_ax=0;j

sum_ax+=a[i][j]*b[j];

b[i]=(b[i]-sum_ax)/a[i][i];

}

}

void Doolittle() //Doolittle消去法计算方程组

{

double temp_a[Number][Number],temp_b[Number];int i,j,flag;

for(i=0;i

for(j=0;j

temp_a[i][j]=a[i][j];

flag=Doolittle_check(temp_a,temp_b);

if(flag==0) cout<<"\n行列式为零.无法用Doolittle求解.";

xiaoqu_u_l();

calculate_u_l();

cout<<"用Doolittle方法求得结果如下:\n";

for(i=0;i

{

for(j=0;x[j]!='a'+i&&j

cout<

}

}

void calculate_u_l() //计算Doolittle结果

{ int i,j;double sum_ax=0;

for(i=0;i

{

for(j=0,sum_ax=0;j

sum_ax+=a[i][j]*b[j];

b[i]=b[i]-sum_ax;

}

for(i=lenth-1;i>=0;i--)

{

for(j=i+1,sum_ax=0;j

sum_ax+=a[i][j]*b[j];

b[i]=(b[i]-sum_ax)/a[i][i];

}

}

void xiaoqu_u_l() //将行列式按Doolittle分解

{ int i,j,n,k;double temp;

for(i=1,j=0;i

a[i][j]=a[i][j]/a[0][0];

for(n=1;n

{ //求第n+1层的上三角矩阵部分即U

for(j=n;j

{ for(k=0,temp=0;k

temp+=a[n][k]*a[k][j];

a[n][j]-=temp;

}

for(i=n+1;i

temp+=a[i][k]*a[k][n];

a[i][n]=(a[i][n]-temp)/a[n][n];

}

}

}

int Doolittle_check(double temp_a[][Number],double temp_b[Number]) //若行列式不为零,将系数矩阵调整为顺序主子式大于零

{

int i,j,k,maxi;double lik,temp;

for(k=0;k

{

j=k;

for(maxi=i=k;i

if(temp_a[i][j]>temp_a[maxi][j]) maxi=i;

if(maxi!=k)

{ exchange_hang(k,maxi);

for(j=0;j

{ temp=temp_a[k][j];

temp_a[k][j]=temp_a[maxi][j];

temp_a[maxi][j]=temp;

}

}

for(i=k+1;i

{

lik=temp_a[i][k]/temp_a[k][k];

for(j=k;j

temp_a[i][j]=temp_a[i][j]-temp_a[k][j]*lik;

temp_b[i]=temp_b[i]-temp_b[k]*lik;

}

}

if(temp_a[lenth-1][lenth-1]==0) return 0;

return 1;

}

void exchange_hang(int m,int n) //交换a[][]中和b[]两行

{

int j; double temp;

for(j=0;j

{ temp=a[m][j];

a[m][j]=a[n][j];

a[n][j]=temp;

}

temp=b[m];

b[m]=b[n];

b[n]=temp;

}

void exchange(int m,int i) //交换A_y[m],A_y[i]

{ int temp;

temp=A_y[m];

A_y[m]=A_y[i];

A_y[i]=temp;

}

void exchange_lie(int j) //交换未知量b[]和第i列

{ double temp;int i;

for(i=0;i

{ temp=a[i][j];

a[i][j]=b[i];

b[i]=temp;

}

}

void exchange_a_lie(int m,int n) //交换a[]中的两列

{ double temp;int i;

for(i=0;i

{ temp=a[i][m];

a[i][m]=a[i][n];

a[i][n]=temp;

}

}

void exchange_x(int m,int n) //交换未知量x[m]和x[n]

{ char temp;

temp=x[m];

x[m]=x[n];

x[n]=temp;

}

void recovery() //用其中一种方法求解后恢复数据以便用其他方法求解

{

for(int i=0;i

for(int j=0;j

a[i][j]=copy_a[i][j];

for(i=0;i

b[i]=copy_b[i];

for(i=0;i

x[i]='a'+i;

a_sum=0;

lenth=copy_lenth;

}

线性方程组解的几何意义

设有三元非齐次线性方程组 线性方程组解的几何意义 ???????=++=++=++,,,)1(22221111m m m m d z c y b x a d z c y b x a d z c y b x a 我们来讨论一下三元非齐次线性方程组解的几何意义.

2) 有唯一解这时方程组(1) 中的m 个方?? ???=+--=--=+,423, 32,123z y x y x z x 该方程组有唯一解.817,21,4 7??? ??--则方程组(1) 的解有以下三种情况: 1) 无解这时方程组(1) 中的m 个方程所表示的平面既不交于一点, 也不共线、共面. 程所表示的平面交于一点. 例如

其几何意义如图3 -11 所示. 2x-y=-3 3x+2z=-1 x-3y+2z=4 图3-11

交直线所确定.3) 有无穷多组解 这时又可分为两种情形:情形一自由变量, 基础解系中有两个向量,其一般解的形式为 γ=c 1η1+ c 2η2+ γ0(c 1, c 2为任意常数).这时方程组的所有解构成一个平面, 而这个平面是由过点γ0且分别以η1、η2为方向向量的两条相A 的秩=A 的秩= 1 .此时,有两个γ=c 1η1+ c 2η2+ γ0 称为平面的参数方程.

例如, 设保留方程组为 x + y + z = 3, 则可求得其通解为 . 11110101121???? ? ??+????? ??-+????? ??-=c c x

则过点P (1,1,1) 分别以(1,-1,0)T , (1,0,-1)T 为方向,1 10111:,0 11111:21--=-=--=--=-z y x L z y x L 则这两条相交直线L 1, L 2所确定的平面的方程即向量的两直线的方程分别为 为x + y + z = 3 . 如图3-12

浅析线性方程组的解法及应用

目录 摘要 ........................................................................ I Abstract.................................................................... II 第一章绪论 (1) 1.1 引言 (1) 第二章行列式与线性方程组求解 (1) 2.1 标准形式的二元线性方程组 (1) 2.2 标准形式的三元线性方程组 (2) 2.3 克莱姆法则 (3) 2.3.1逆序数 (3) 2.3.2 克莱姆法则 (4) 第三章线性方程组的理论求解 (6) 3.1 高斯消元法 (6) 3.2 线性方程组解的情况 (7) 3.3 将非齐次方程组化为齐次方程组求解方法 (8) 第四章求解线性方程组的新方法 (9) 第五章线性方程组的应用 (11) 5.1 投入产出数学模型 (11) 5.2 齐次线性方程组在代数中的应用 (14) 第六章结论 (16) 参考文献 (17) 致谢 (18)

浅析线性方程组的解法及应用 学生:陈晓莉指导教师:余跃玉 摘要:线性方程组的求解方法在代数学中有着极其重要的作用.本文介绍了有关线性方程组的一些基本求解方法,由二元到三元的线性方程组,再到n姐线性方程组,其中详细介绍了克莱姆法则。然后是对于齐次方程组和非齐次线性方程组,介绍了线性方程组的理论解法,里面介绍了消元法、解的情况、将非线性化成线性方程组来求解。并且给出了相关的例题,可以加深对线性方程组求解的方法的认识。对于线性方程组还有什么解法,本文也将有探讨。介绍了这么多解线性方程组的求解,相信在今后解线性方程组会更加方便。最后还有关于线性方程组的应用,主要介绍了关于投入产出的数学模型,在经济分析与管理中会经常用到。 关键词:线性方程组; 高斯消元法;行列式

【免费下载】线性方程组的解空间

第六章 向量空间 6.1 定义和例子 6.2 子空间 6.3 向量的线性相关性 6.4 基和维数 6.5 坐标 6.6 向量空间的同构 6.7 矩阵的秩齐次线性方程组的解空间返回教案总目录6.7矩阵的秩,齐次线性方程组的解空间一、教学思考 1、矩阵的秩与线性方程组解的理论在前面已经有过讨论,本节运用向量空间的有关理论重新认识矩阵的秩的几何意义,讨论线性方程组解的结构。2、注意:齐次线性方程组(含n 个未知量)的解的集合构成n F 的子空间,而非齐次线性方程组的解的集合非也。3、注意具体方法:1)证矩阵的行空间与列空间的维数相等;2)求齐次线性方程组的基础解系。 二、内容要求 1、内容:矩阵的秩的几何意义,齐次线性方程组的解空间。 2、要求:理解掌握矩阵的秩的几何意义,齐次线性方程组的基础解系的求法。三、教学过程 1、矩阵的秩的几何意义几个术语:设)(F M A n m ?∈,????? ??=mn m n a a a a A 1111,A 的每一行看作n F 的一个元素,叫做A 的行向量,用),2,1(m i i =α表示;由),2,1(m i i =α生成的n F 的子空间),,(1m L αα 叫做矩阵A 的行空间。 类似地,A 的每一列看作m F 的一个元素,叫做A 的列向量;由A 的n 个列向量生成的m F 的子空间叫做矩阵A 的列空间。注:)(F M A n m ?∈的行空间与列空间一般不同,分别是n F 与m F 的子空间;下证其维数相同。 引理6.7.1设)(F M A n m ?∈,1)若PA B =,P 是一个m 阶可逆矩阵,则B 与A 有相同的行空间;2)若AQ C =,Q 是一个n 阶可逆矩阵,则C 与A 有相同的列空间。分析:设()()()m m ij n m ij n m ij p P b B a A ???===,,,),2,1(m i i =α是A 的行向量,),2,1(m j j =β是B 的行向量;只需证这两组向量等价。

直接法解线性方程组

直接法解线性方程组 实习题目: 仿照三对角方程组的追赶法解五对角方程组,其中系数矩阵为A,右端向量为:r。将A分解为LU。其中L为下三角,U为单位上三角。A为7*7阶的矩阵,其中对角元为4 5 6 7 8 9 10。上下次三角对角线元素为1 2 3 4 5 6 ;上下第二条对角线元素为1 2 3 4 5;右端项为:1 2 3 4 5 6 7. 要求:输出系数矩阵A,右端向量r,下三角矩阵L,单位上三角矩阵U,下三角矩阵Ly=b 的解向量y,单位上三角方程组Ux=y的解(即最终的解向量。保留七位小数。 实现方法:通过MATLAB编程实现。建立MATLAB脚本文件。 首先通仿照三对角方程组的追赶法得到五对角矩阵的实现算法。 然后又MATLAB编程实现。 实验结果(MATLAB截图):

结果分析: 通过提供的计算数据得到最终的解向量x及中间过程产生的下三角矩阵L,单位上三角矩阵U,下三角矩阵Ly=b 的解向量y。 同时为了确保算法的正确性,我还通过MATLAB的左除运算检验得使用此算法的计算结果正确。 这里由于是用MATLAB,最终结果为分数形式,考虑到精确解一般比近似解更好,因此未化成七位小数形式。 算法实现分析: 首先计算L和U的元素。由于已知L和U的特定形式(及除了对角线和上下次对角线和上下第二条对角线外,其余为0。故通过矩阵的乘法即可得到LU中元素的计算公式。(具体算法见MATLAB程序) 算法优劣点:

1.解此题时看上去要用较多的存储单元,但实际上只需存储系数矩阵A的不为0的元素。 2.A分解为LU计算完成后,后续计算x和y的“追赶过程”运算量一般来说计算量比较小。 3.此题也可用之前的LU算法求解。但此处算法与一般的LU分解的解线性方程组的算法,相比计算量小了不少。 4.对于此处特定的对称的系数矩阵A,算法还可以进一步优化。 5.由于我在此算法中A.L U的各对角值均用一个列向量表示,一个缺点在于输出A,L,U时要重新组成矩阵形式。不过优点在于减少了存储单元。 6.另一缺点是,未能将结果封装成一个文件。 后附MATLAB代码: c=[4,5,6,7,8,9,10];d=[1,2,3,4,5,6,0];b=[0,1,2,3,4,5,6];e=[1,2,3,4,5,0,0];a=[0,0,1,2,3,4,5]; r=[1 2 3 4 5 6 7]; w=zeros(7,1);x=zeros(7,1);y=zeros(7,1);m=zeros(7,1);n=zeros(7,1);h=zeros(7,1); w(1)=c(1);m(1)=d(1)/c(1);n(1)=e(1)/c(1); h(2)=b(2);w(2)=c(2)-h(2)*m(1);m(2)=(d(2)-b(2)*n(1))/w(2);n(2)=e(2)/w(2); for k=3:5 h(k)=b(k)-a(k)*m(k-2); w(k)=c(k)-a(k)*n(k-2)-h(k)*m(k-1); m(k)=(d(k)-h(k)*n(k-1))/w(k); n(k)=e(k)/w(k); end h(6)=b(6)-a(6)*m(4); w(6)=c(6)-a(6)*n(4)-h(6)*m(5); m(6)=(d(6)-h(6)*n(5))/w(6); h(7)=b(7)-a(7)*m(5); w(7)=c(7)-a(7)*n(5)-h(7)*m(6); y(1)=r(1)/w(1);y(2)=(r(2)-h(2)*y(1))/w(2); for k=3:7 y(k)=(r(k)-a(k)*y(k-2)-h(k)*y(k-1))/w(k); end x(7)=y(7); x(6)=y(6)-x(7)*m(6);

解线性方程组的直接解法

解线性方程组的直接解法 一、实验目的及要求 关于线性方程组的数值解法一般分为两大类:直接法与迭代法。直接法是在没有舍入误差的情况下,通过有限步运算来求方程组解的方法。通过本次试验的学习,应该掌握各种直接法,如:高斯列主元消去法,LU分解法和平方根法等算法的基本思想和原理,了解它们各自的优缺点及适用范围。 二、相关理论知识 求解线性方程组的直接方法有以下几种: 1、利用左除运算符直接求解 线性方程组为b x\ =即可。 A Ax=,则输入b 2、列主元的高斯消元法 程序流程图: 输入系数矩阵A,向量b,输出线性方程组的解x。 根据矩阵的秩判断是否有解,若无解停止;否则,顺序进行; 对于1 p :1- =n 选择第p列中最大元,并且交换行; 消元计算; 回代求解。(此部分可以参看课本第150页相关算法) 3、利用矩阵的分解求解线性方程组 (1)LU分解 调用matlab中的函数lu即可,调用格式如下: [L,U]=lu(A) 注意:L往往不是一个下三角,但是可以经过行的变换化为单位下三角。 (2)平方根法

调用matlab 中的函数chol 即可,调用格式如下: R=chol (A ) 输出的是一个上三角矩阵R ,使得R R A T =。 三、研究、解答以下问题 问题1、先将矩阵A 进行楚列斯基分解,然后解方程组b Ax =(即利用平方根法求解线性方程组,直接调用函数): ??????? ??--------=19631699723723312312A ,?????? ? ??-=71636b 解答: 程序: A=[12 -3 2 1;-3 23 -7 -3;2 -7 99 -6;1 -3 -6 19]; R=chol(A) b=[6 3 -16 7]'; y=inv(R')*b %y=R'\b x=inv(R)*y %x=R\y 结果: R =3.4641 -0.8660 0.5774 0.2887 0 4.7170 -1.3780 -0.5830 0 0 9.8371 -0.7085 0 0 0 4.2514 y =1.7321 0.9540 -1.5945 1.3940 x =0.5463 0.2023 -0.1385 0.3279 问题 2、先将矩阵A 进行LU 分解,然后解方程组b Ax =(直接调用函数): ?????????? ??----=8162517623158765211331056897031354376231A ,????????? ? ??-=715513252b

解线性方程组直接解法

第2章 解线性方程组的直接解法 §0 引言 11112211211222221122n n n n n n nn n n a x a x a x b a x a x a x b a x a x a x b +++=??+++=??? ?+++=?L L L L 1112121 22212112,(,,,),()n n T T n n n n nn a a a a a a A x x x x b b b a a a ??????===??? ??? ? ?L L L L L L L Ax b = 若A 非奇异,即det()0A ≠,方程组Ax b =有唯一解。由 Cramer 法则,其解 det(),1,2,,det() i i A x i n A = =L 其中i A 为用b 代替A 中第i 列所得的矩阵。当n 大时, 1n +个行列式计算量相当大,实际计算不现实。 121212(,)12det()(1)n n n i i i i i i n i i i A a a a τ=-∑L L L §1 Gauss 消去法 (I )Gauss 消去法的例子 (1)1231123 212336 ()123315()18315() x x x E x x x E x x x E ++=??-+=??-+-=-? 2131()12(),()(18)()E E E E -?--? (2) 12312342356 ()15957()211793()x x x E x x E x x E ++=?? --=-??+=?

方程组13()()E E -与方程组145(),(),()E E E 同解 541 ()21( )()15 E E --得 (3)1231234366()15957()3() x x x E x x E x E ++=?? --=-??=? 由(3)得3 213,2,1x x x === 123(,,)(1,2,3)T T x x x = (3)的系数矩阵为11 10159001????--?????? ,上三角 矩阵。 (II )Gauss 消去法,矩阵三角分解 Ax b = 1112 11,12122 22,112 ,1 n n n n n n nn n n a a a a a a a a A b a a a a +++????????=?????????? L M L M L L M M L M 令(1) ,1,2,,;1,2,,,1ij ij a a i n j n n ===+L L (1)(1)A b A b ??=?? ???? 第1次消去 (1) 110a ≠, 令 (1)1 1(1)11 , 2,3,,i i a l i n a ==L 作运算:11()()i i i l E E E -+→ i E 表示第i 个方程(第i 行) 2,3,,i n =L (2)(1)(1) 111110 2,3,,i i i a a l a i n =-==L

线性方程组解的判定

1 / 3 第四节 线性方程组解的判定 从本节开始,讨论含有n 个未知量、m 个方程的线性方程组的解. 11112211211222221122n n n n m m mn n m a x a x a x b a x a x a x b a x a x a x b +++=??+++=????+++= ? (13—2) 主要问题是要判断出方程组(13-2)何时有解?何时无解?有解时解有多少?如何求出方程组的解。 线性方程组有没有解,以及有怎样的解,完全决定于方程组的系数和常数项。因此,将线性方程组写成矩阵形式或向量形式,以矩阵或向量作为讨论线性方程组的工具,将带来极大的方便。 方程组(13-2)中各未知量的系数组成的矩阵111212122212n n m m mn a a a a a a A a a a ??????=?????? 称为方程组(13-2)的系数矩阵.由各系数与常数项组成的矩阵,称为增广矩阵,记作A ,即 11121121 222212n n m m mn m a a a b a a a b A a a a b ??????=?????? 方程组(13-2)中的未知量组成一个n 行、1列的矩阵(或列向量),记作X ;常数项组成一个m 行、1列 的矩阵(或列向量),记作b ,即12n x x X x ??????=??????,12m b b b b ??????=?????? 由矩阵运算,方程组(13—2)实际上是如下关系111212122212 n n m m mn a a a a a a a a a ????????????12n x x x ????????????=12m b b b ???????????? 即 AX=b

第三章 解线性方程组的直接方法

习题 3.1 1. 求下列方阵的秩: (1)??? ?? ??--340313021201;(2)????? ??----174034301320;(3)??????? ? ?---------12433023221453334 311 ;(4)??????? ??------34732038234202173132. 2. 求下列方阵的逆矩阵: (1) ?? ? ?? ? ?323513123; (2) ????? ?? ??-----1210232112201023. 3. 解下列矩阵方程 (1) 设 ???? ? ??--=????? ??--=1322 31,113122214B A ,求X 使B AX =; (2) 设 ??? ? ??-=? ???? ??---=132 321,433312120B A ,求X 使B XA =; (3) ?? ??? ??-=????? ??-=????? ??-=112510324, 123011113,1120111111C B A ,求X 使C AXB =. 4. 求下列行列式 (1)? ? ? ??? ??????71 1 0251020214214 ;(2)????????????-260523211213 141 2;(3)?? ? ???????---ef cf bf de cd bd ae ac ab ; (4) ????????????---d c b a 100110011001. 5. 判断下列线性方程组解的情况,如果有唯一解,则求出解. ???????=+++-=----=+-+=+++;01123,2532,242,5)1(432143214 3214321x x x x x x x x x x x x x x x x ? ? ???????=+=++=++=++=+;15,065,065,065,165)2(545434323212 1x x x x x x x x x x x x x (3) ? ?? ??=-++=-+-=-+-;3222, 2353, 132432143214321x x x x x x x x x x x x (4) ?????=---=--+=+++.034,0222,022432143214321x x x x x x x x x x x x 习题 3.2 1. 用回代法解上三角形线性方程组 (1)??? ????==+-=-+=++;63,3,6333,8484443432321x x x x x x x x x (2)?? ???? ?-=-=+--=+--=-+.63,1032,92,9244343242 1x x x x x x x x x 2. 用回代法解下三角形线性方程组

线性方程组解的情况及其判别准则

摘要:近年来,线性代数在自然科学和工程技术中的应用日益广泛,而线性方程组求解问题是线性代数的基本研究内容之一,同时它也是贯穿线性代数知识的主线。本文探究了线性方程组一般理论的发展,用向量空间和矩阵原理分析了线性方程组解的情况及其判别准则。介绍了线性方程组理论在解决解析几何问题中的作用,举例说明了线性方程组解的结构理论在判断空间几何图形间位置关系时的便利之处。 关键字:线性方程组;解空间;基础解系;矩阵的秩 Abstract:In recent years, linear algebra in science and engineering application, and wide linear equations solving problems is the basic content of linear algebra, at the same time, it is one of the main knowledge of linear algebra.This article has researched the development of system of linear equations theory,discussed the general theory of linear equations, vector space with the development and matrix theory to analyze the linear equations and the criterion of the situation. Introduces the theory of linear equations in solving the problem of analytic geometry, illustrates the role of linear equations of structure theory in judgment space relation between the geometry of the convenience of position. space geometric figure between time the position relations with theory of the system of linear equation with examples. Key words: linear equations, The solution space, Basic solution, Matrix rank

线性方程组解决实际问题项目

线性方程组解决实际问题项 目 -标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

项目名称应用线性方程组解决实际问题项目 【项目内容】营养食谱问题 高考前期一个饮食专家给即将踏入高考大门的学子准备了一份膳食计划,以此来帮助同学们提高和调节身体所摄入的大量营养,提供一定量的维生素C、钙和镁。其中用到3种食物,它们的质量用适当的单位计量。这些食品提供的营养以及食谱需要的营养如下表给出 【相关知识点】 1.线性方程组间的代数运算; 2.线性相关性之间的关系; 3.矩阵与增广矩阵之间的行最简化法; 4.其次线性方程组与非齐次线性方程组的解法; 5.向量组的线性组合以及线性相关性; 【模型假设与分析】

【解】设X1、X2、X3分别表示这三种食物的量。对每一种食物考虑一个向量,其分量依次表示每单位食物中营养成分维生素C、钙和镁的含量: 食物1:1= 食物2:2= 食物3:3=食物4:4= 需求: 【模型建立】 则X11、X22、X33、X44分别表示三种食物提供的营养成分,所以,需要的向量方程为 X11+X22+X33+X4 4 = 则有= 【模型求解】 利用矩阵与增广矩阵之间的行最简化法; = ~

则线性相关 R(A)=4=R(A,b)该线性方程组有唯一解。 【结论及分析】 解此方程组 得到: X1= X2= X3= X4=-5 因此食谱中应该包含个单位的食物1,个单位的食物2,个单位的食物3。个单位的食物4。 由此可得合理的膳食与线性方程组息息相关,由方程可知合理膳食的特解,即在一定的条件下,食物的摄入量是相对稳定的,过多或过少都不利于生理所需,唯有达到一个特解时,营养与体能的搭配才是最完美的。 【心得与体会】 通过生活中的这个小例子,我们小组总结以下发现,线性方程组在生活中的运用是普遍而广泛的,通过学习和查阅资料,让我们更真切的理解和体会到线性方程在身边的实用性,如果合理的运用,不仅对我们身体健康有所帮助,而且有益于我们全面的理解数学世界观,对我们人生有重大的指导和参考意义,线性方程组在科学研究等诸多方面有更广泛深入的应用。希望通过这次的实践和应用,努力将其联系到实际中,真正的做到领会到数学的真谛。【参考文献】 【1】刘振兴,浅谈线性代数在生活中的应用 【2】Loveyuehappy,浅析线性方程组的解法及应用 【3】

线性方程组的平方根解法

浅析线性方程组的平方根解法 在求解线性方程组时, 直接解法有顺序高斯消元法、列主元高斯消元法、全主元高斯消元法、高斯约当消元法、消元形式的追赶法、LU分解法、矩阵形式的追赶法,当我们遇到对称正定线性方程组时,我们就要用到平方根法(对称LLT 分解法)来求解,为了熟悉和熟练运用平方根法求解线性方程组,下面对运用平方根法求解线性方程组进行解析。一、运用平方根法求解线性方程组涉及到的定理及定义 我们在运用平方根法求解线性方程组时,要判定线性方程组Ax=b 的系数矩阵A 是否是对称正定矩阵,那么我们就要了解正定矩阵的性质和如下定理及定义: 1、由线性代数知,正定矩阵具有如下性质: 1)正定矩阵A 是非奇异的 2)正定矩阵A的任一主子矩阵也必为正定矩阵 3)正定矩阵A的主对角元素均为正数 4)正定矩阵A 的特征值均大于零 5)正定矩阵A的行列式必为正数 定义一线性方程组Ax=b的系数矩阵A是对称正定矩阵,那么Ax=b是对称正定线性方程组。 定义二如果方阵A满足A=AT那么A是对称阵。 2.1.4 平方根法和改进的平方根法 如果A是n阶对称矩阵,由定理2还可得如下分解定理: 定理2若A为n阶对称矩阵,且A的各阶顺序主子式都不为零,则A可惟一分解为:A= LDLT,其中L为单位下三角阵,D为对角阵。 证明因为A的各阶顺序主子式都不为零,所以A可惟一分解为:A= LU 因为,所以可将U 分解为:

i DU i 其中D 为对角矩阵,Ui 为单位上三角阵?于是:A = LDU 仁L(DUI) 因为A 为对称矩阵,所以,A = AT = UITDTL 七U 仃(DLT),由A 的LU 分解的惟一 性即得:L = UIT,即 Ui = LT ,故 A = LDLT 工程技术中的许多实际问题所归结出的线性方程组,其系数矩阵常有对称正定 性,对于具有此类特殊性质的系数矩阵,利用矩阵的三角分解法求解是一种较好 的有效方法,这就是对称正定矩阵方程组的平方根法及改进的平方根法, 这种方 法目前在计算机上已被广泛应用。 定理3对称矩阵A 为正定的充分必要条件是A 的各阶顺序主子式大于零。 2对称正定矩阵的三角分解 定理(Cholesky 分解)设A 为n 阶对称正定矩阵,则存在惟一的主对角线元素 都是正数的下三角阵L ,使得:A = LLT 。 分解式A = LLT 称为正定矩阵的Cholesky 分解,利用Cholesky 分解来求解系数 矩阵为对称正定矩阵的方程组AX ^ b 的方法称为平方根法。 设A 为4阶对称正定矩阵,则由定理 4 知,A = LLT ,即: a ii a i2 a i3 a i4 l ii 0 0 0 l ii l 2i l 3i l 4i a 21 a 22 a 23 a 24 l 2i l 22 0 0 0 l 22 l 32 l 42 a 3i a 32 a 33 a 34 l 3i l 32 l 33 0 0 l 33 l 43 a 4i a 42 a 43 a 44 l 4i l 42 l 43 144 l 44 将右端矩阵相乘, 并令两端矩阵的元素相等, 于是不难算得矩阵 L 的元素的计算 公式为: 平方根法的计算框图见图 用平方根法求解系数矩阵对称正定的线性方程组时,计算过程是数值稳定 U ii U 22 U l2 U in U ii 1 U nn U 2n U 22 U nn

线性方程组解的判定与解的结构

***学院数学分析课程论文 线性方程组解的判定与解的结构 院系数学与统计学院 专业数学与应用数学(师范) 姓名******* 年级 2009级 学号200906034*** 指导教师 ** 2011年6月

线性方程组解的判定与解的结构 姓名****** (重庆三峡学院数学与计算机科学学院09级数本?班) 摘 要:线性方程组是否有解,用系数矩阵和增广矩阵的秩来刻画.在方程组有解且有 多个解的情况下,解的结构就是了解解与解之间的关系. 关键词:矩阵; 秩; 线性方程组; 解 引言 通过系数矩阵和增广矩阵的秩是否相同来给出判定线性方程组的解的判别条件.在了解了线性方程组的判别条件之后,我们进一步讨论解的结构.对于齐次线性方程组,解的线性组合还是方程组的解.在线性方程组有无穷个解时可用有限多个解表示出来.另外以下还涉及到线性方程组通解的表达方式. 1 基本性质 下面我们分析一个线性方程组的问题,导出线性方程组有解的判别条件. 对于线性方程组 1111221121122222 1122n n n n s s sn n s a x a x a x b a x a x a x b a x a x a x b ++???+=??++???+=???????++???+=? (1) 引入向量 112111s αααα??????=?????????,122222s αααα??????=?????????,…12n n n sn αααα??????=????????? ,12s b b b β?? ?? ??=??????? ?? 方程(1)可以表示为 1122n n x x x αααβ++???+= 性质 线性方程组⑴有解的充分必要条件为向量β可以表成向量组α1,α2,…,αn 的线性组合. 定理1 线性方程组⑴有解的充分必要条件为它的系数矩阵

解线性方程组直解法

第2章 解线性方程组的直接解法 §0 引言 11112211211222221122n n n n n n nn n n a x a x a x b a x a x a x b a x a x a x b +++=??+++=????++ +=? 1112121 22212112,(,,,),()n n T T n n n n nn a a a a a a A x x x x b b b a a a ??????===???????? Ax b = 若A 非奇异,即det()0A ≠,方程组Ax b =有唯一解。由 Cramer 法则,其解 det(),1,2,,det()i i A x i n A == 其中i A 为用b 代替A 中第i 列所得的矩阵。当n 大时, 1n +个行列式计算量相当大,实际计算不现实。 121212(,)12det()(1)n n n i i i i i i n i i i A a a a τ=-∑ §1 Gauss 消去法 (I )Gauss 消去法的例子 (1)1231123212336()123315()18315()x x x E x x x E x x x E ++=??-+=??-+-=-? 2131()12(),()(18)()E E E E -?--? (2) 12312342356()15957()211793()x x x E x x E x x E ++=??--=-??+=?

方程组13()()E E -与方程组145(),(),()E E E 同解 541 ()21()()15E E --得 (3)1231234366 () 15957() 3() x x x E x x E x E ++=??--=-??=? 由(3)得3213,2,1x x x === 123(,,)(1,2,3)T T x x x = (3)的系数矩阵为11 10159001?? ?? --?????? ,上三角 矩阵。 (II )Gauss 消去法,矩阵三角分解 Ax b = 111211,1 212222,1 12,1 n n n n n n nn n n a a a a a a a a A b a a a a +++????????=?????????? 令(1) ,1,2,,;1,2,,,1 ij ij a a i n j n n ===+ (1)(1)A b A b ??=?????? 第1次消去 (1) 110a ≠, 令 (1) 1 1(1)11 ,2,3,,i i a l i n a == 作运算:11()()i i i l E E E -+→ i E 表示第i 个方程(第i 行) 2,3,,i n = (2)(1)(1) 1111102,3,,i i i a a l a i n =-==

常系数线性方程组基解矩阵的计算

常系数线性方程组基解矩阵的计算

常系数线性方程组基解矩阵的计算 董治军 (巢湖学院数学系,安徽巢湖238000) 摘要:微分方程组在工程技术中的应用时非常广泛的,不少问题都归结于它的求解问题,基解矩阵的存在和具体寻求是不同的两回事,一般齐次线性微分方程组的基解矩阵是无法通过积分得到的,但当系数矩阵是常数矩阵时,可以通过方法求出基解矩阵,这时可利用矩阵指数exp A t,给出基解矩阵的一般形式,本文针对应用最广泛的常系数线性微分方程组,结合微分方程,线性代数等知识,讨论常系数齐次线性微分方程的基解矩阵的几个一般的计算方法. 关键词;常系数奇次线性微分方程组;基解矩阵;矩阵指数 Calculation of Basic solution Matrix of

Linear Homogeneous System with Constant Coefficients Zhijun Dong (Department of Mathematics, Chaohu College Anhui, Chaohu) Abstract: Differential equations application in engineering technology is very extensive, when many problems are attributable to its solving problem, base solution matrix existence and specific seek is different things, general homogeneous linear differential equations is not the base solution matrix by integral get, but when coefficient matrix is constant matrix, can pass out the base solution matrix method, then are available matrix exponential t, the general form base solution matrix, the paper discusses the most widely used differential equations with constant coefficients, combined with differential equations, linear algebra, discuss knowledge of homogeneous linear differential equation with constant coefficients of base solution matrix several general calculation method. Keyword: linear homogeneous system with constant coefficients; matrix of basic solutions; matrix exponent 引言: 线性微分方程组的求解历来是常微分方程的重点,根据线性微分方程组的解的结构理论,求解线性微分方程组的关键在于求出对应齐次线性微分方程组的基解矩阵,本文主要讨论齐次线性微分方程组 X ’=AX ★ 的基解矩阵的计算问题,这里A 是n n ?常数矩阵. 一.矩阵指数exp A 的定义和性质: 1.矩阵范数的定义和性质 定义:对于n n ?矩阵A =ij a ???? n ×n 和n 维向量X =()1,...,T n X X 定义A 的范数为A =,1 n ij i j a =∑ ,X =1 n i i x =∑ 设A ,B 是n ×n 矩阵,x ,y 是n 维向量,易得下面两个性质:

线性方程组的公共解

线性方程组的公共解 问题:如何求解线性方程组的公共解? 线性方程组是高代学习的一个重点内容,它的一般形式为 ???????=+++=+++=+++bs asnxn x as x as b nxn a x a x a b nxn a x a x a ...2211... ,22...222121,11...212111 而线性方程组的求解也是这部分学习的重点和难点。其中求解线性方程组的公共解也是高等代数学习所必须掌握的一个知识点。 例1、证明:对于n 元齐次线性方程组(Ⅰ)AX=0与(Ⅱ)BX=0,有非零公共解的充要条件是r(B A )

???=-=+0 42031x x x x 又已知某齐次线性方程组(Ⅱ)的通解为 k1(0,1,1,0)’+k2(-1,2,2,1)’ 问(Ⅰ)与(Ⅱ)是否有非零公共解?若有,则求出所有公共解,若没有,则说明理由。(出自2005年中科院) 解:方法一:将(Ⅱ)的通解代入方程组(Ⅰ)得 ???=+=+0 21021k k k k 解得k1=-k2,故方程组(Ⅰ)与(Ⅱ)有非零公共解,所有非零公共解为k (1,1,1,1)’,k ≠0为任意常数 方法二:令方程组(Ⅰ)与(Ⅱ)的通解相同,即 k1(0,1,1,0)’+k2(-1,2,2,1)’=k3(-1,0,1,0)’+k4(0,1,0,1)’ 得到关于k1,k2,k3,k4的一个方程组 ???????=-=-+=-+=-0 420 422103221032k k k k k k k k k k 可求其通解为(k1,k2,k3,k4)’=k(-1,1,1,1)’ 将k1=-1,k2=k 代入(Ⅰ)的通解可得所有非零公共解为k (1,1,1,1)’,k ≠0为任意常数 方法三:方程组(Ⅱ)可以是 ? ??=+=+-041032x x x x 解(Ⅰ)与(Ⅱ)的联立方程组可得所有非零公共解为k (1,1,1,1)’,k ≠0为任意常数 韩梦雪 20132113429

本章介绍了线性方程组有解的充要条件和求解的方法

本章介绍了线性方程组有解的充要条件和求解的方法;为了在理论上深入的研究与此有关的问题,本章还引入了向量和向量空间的基本概念,介绍了向量的线性运算,讨论向量间的线性关系,向量的内积等有关概念和性质,并在此基础上,研究线性方程组解的性质和解的结构等问题。 一、一、线性方程组 1、Cramer法则 教材p64,定理2.1 2、线性方程组有解的判别定理 教材p72,定理2.3 3、线性方程组的消元解法 步骤:(1)对线性方程组的增广矩阵施以初等行变换,将其化为阶梯型矩阵 (2)如果系数矩阵的秩与增广矩阵的秩不相等,表明方程组无解; 如果相等,则表明有解,继续对阶梯型矩阵进行初等行变换,求出 方程的解。【详见p68】 初等行变换: (1)(1)交换两方程的位置; (2)(2)用一个非零数乘某一方程; (3)(3)把一方程的若干倍加到另一方程去 4、消元法与Cramer法则的异同:在条件的限制上,Cramer法则仅适用于 方程数与未知数相等并且系数行列式不为零的情况,而消元法对此没有限制。即便是满足Cramer法则的要求,用消元法可以区分方程组无解还是有无穷多解,而Cremer法则却不能区分 二、二、向量及向量间的线性关系 (一)向量的定义 1、向量、行向量、列向量【教材p77,定义2.1】 2、零向量【教材p78,定义2.2】 3、向量的相等【教材p78,定义2.3】 4、向量的加法、减法【教材p78,定义2.3】 5、数乘向量【教材p78,定义2.5】

6、n维向量空间【教材p78,定义2.6】 7、n维向量空间的子空间【教材p78,定义2.7】 (二)向量间的线性关系 1、线性组合 (1)一个向量可表为一个向量组的线性组合,或称此向量可由此向量组线性表出【教材p80,定义2.8 (2)一个向量可表为一向量组的线性组合的充要条件:由它们做系数及常数项组成的线性方程组有解【教材p81】 (3)几个结论 a、n维零向量是任一n维向量组的线性组合 b、任一n维向量可由n 维基本单位向量组线性表示 c、向量组中的任一向量可由此向量组线性表示 2、向量组的线性相关与线性无关 (1)向量组的线性相关与线性无关的定义【教材p82:定义2.9,2.10】 (2)几个充要条件 Ⅰ向量组线性相关的充要条件由它们做系数组成的齐次线性方程组有非零解【教材p83】 Ⅱ向量组线性无关的充要条件由它们做系数组成的齐次线性方程组仅有零解【教材p83】 Ⅲ一个向量组线性相关的充要条件是由它们做系数组成的齐次线性方程组的系数行列式等于零【教材p83】 Ⅳ一个向量组线性无关的充要条件是由它们做系数组成的齐次线性方程组的系数行列式不等于零【教材p83】: Ⅴ一个向量组线性相关的充要条件是此向量组中至少有一个向量可以表为其余向量的线性组合【教材p85:定理2.6】 Ⅵ一个向量组线性无关的充要条件是此向量组中每一个向量都不能表为其余向量的线性组合【教材p86:定理2.6 的推论】 Ⅶ若一向量可由一向量组线性表出,则表示法唯一的充要条件是此向量组线性无关 三、向量组

线性方程组解的结构

线性方程组解的结构 11111221n n b a x a x a x =++???+ 22112222n n b a x a x a x =++???+ 33113223n n b a x a x a x =++???+ ………………………………… 1122n n n nn n b a x a x a x =++???+ 表示从变量12 ,n x x x ???到变量12,n b b b ???的线性变换,其中ij a 是常数。确 定了线性变换,它的系数所构成的矩阵(系数矩阵)也就确定,线性变换根矩阵是一一对应的关系。 上式可以表示为以向量x 为未知元的向量方程: Ax=b 线性方程组如果是有解的,称它是相容的,否则称为不相容。 一、 定理4:N 元线性方程组Ax=b (1) 无解的充要条件是R(A)

(2) 若R(A)=R(B),则进一步把B 化成最简型,而对于齐次线性 方程组,则把系数矩阵A 化成最简型。 (3) 设R(A)=R(B)=r ,把行最简型中r 个非0行的非0首个元素所对应的未知数取做非自由未知数,其他的元素取做自由未知数。带入原方程,就可以得到一个关于自由为未知量的表达式。 三、 齐次线性方程组求解步骤:Ax=0 (1) 根据R(A)与n (变量个数)来判断解的结构: A. R(A)

相关文档
最新文档