1、矩阵的加减乘除求逆运算的概念:
(1)矩阵概念
有m n个数排列成一个m行n 列,并括以方括弧(或圆括弧)的数表称为m行n 列矩阵。
(2)矩阵加法:
(3)矩阵乘法:
(4)矩阵的求逆运算
(5)矩阵的除法:
分成两种(1)A\B=inverse(A)*B (2)B/A=B*inverse(A),理解上可能有误,不过是按照这两种方式来运算的。。
2、要求:
要求很简单:编写一个实现矩阵(向量)的+ - * / 求逆运算的类(女友的一个作业题)
3、实现代码
View Code
1 #include2 #include 3 #define col 3 4 #define row 3 5 class matrix//类的定义 6 { 7 private: 8 double m[col][row];//矩阵设置为私有的, 9 public: 10 matrix(){}//无参数的构造函数 11 matrix(double a[col][row]);//有参数的构造函数 12 matrix Add(matrix &b);//加法运算声明 13 matrix Sub(matrix &b);//减法运算声明 14 matrix Mul(matrix &b);//乘法运算声明 15 matrix Div(matrix &b);//除法运算声明 16 matrix Inverse();//求逆运算声明 17 ~matrix();//析构函数声明 18 void display();//显示函数声明 19 }; 20 matrix::matrix(double a[col][row])//构造函数的定义 21 { 22 int i,j; 23 for(i=0;i m[i][j]=m[i][j]+b.m[i][j]; 34 return(*c); 35 } 36 matrix matrix::Sub(matrix &b)//减法运算 37 { 38 int i,j; 39 matrix*c=(matrix*)malloc(sizeof(matrix)); 40 for(i=0;i m[i][j]=m[i][j]-b.m[i][j]; 43 return *c; 44 } 45 matrix matrix::Mul(matrix &b)//乘法运算 46 { 47 int i,j,k; 48 double sum=0; 49 matrix*c=(matrix*)malloc(sizeof(matrix)); 50 for(i=0;i m[i][j]=sum; 57 sum=0; 58 } 59 } 60 return(*c); 61 } 62 matrix matrix::Div(matrix &b)//除法运算 63 { 64 //除法直接求解,参见主函数 65 matrix c; 66 return(c); 67 } 68 matrix matrix::Inverse()//求逆运算 69 { //参考博客:http://www.cnblogs.com/rollenholt/articles/2050662.html 70 int i,j,k,M=col,N=2*col; 71 double b[col][col*2]; 72 matrix*c=(matrix*)malloc(sizeof(matrix)); 73 for(i=0;i =i;j--) 111 b[i][j]/=b[i][i]; 112 113 for(k=0;k m[i][j-3]=b[i][j]; 127 return (*c);128 }129 130 matrix::~matrix()131 {}132 void matrix::display()133 {134 int i,j;135 for(i=0;i
4、参考:
(1)c编程,谭浩强(2)博客: