关键词不能为空

当前您在: 主页 > 高中公式大全 >

椭圆的弦长公式推导矩阵运算——矩阵加法+乘法+转置+求逆

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2020-10-03 20:12
tags:矩阵转置公式

浙江一本线-有关幸福的作文

2020年10月3日发(作者:相重扬)
矩阵运算——矩阵加法+乘法+转置+求逆
double[,] matrix;
publicint row = 0, col = 0;
定义三个不同情况下的构造函数
public Matrix() { }
public Matrix(int row)
{
matrix = new double[row, row];
}
public Matrix(int row, int col)
{
= row;
= col;
matrix = new double[row, col];
}
复制构造函数
public Matrix(Matrix m)
{
int row =
int col =
matrix = new double[row, col];
for (inti = 0; i< row; i++)
{
for (int j = 0; j < col; j++)
{
matrix[i, j] = (i, j);
}
}
}
输入相应的值,对矩阵进行设置
public void SetNum(inti, int j, double num)
{
matrix[i, j] = num;
}
得到相应的矩阵某个数
public double getNum(inti, int j)
{
return matrix[i, j];
}
输出矩阵
public void OutputM()
{
ine(矩阵为:
for (int p = 0; p < row; p++)
{
for (int q = 0; q < col; q++)
{
(
}
(
}
}

public void InputM(int Row, int Col)
{
for (int a = 0; a < Row; a++)col——Michael
{
for (int b = 0; b < Col; b++)
{
ine(第{0}行,第{1}列
double value = le(ne());
(a, b, value);
}
}
}

得到matrix
public double[,] Detail
{
get
{
return matrix;
}
set { matrix = value; }
}
矩阵转置实现
public Matrix Transpose()
{
Matrix another = new Matrix(row, col);
for (inti = 0; i< row; i++)
{
for (int j = 0; j < col; j++)
{
(j, i, matrix[i, j]);
}
}
return another;
}

矩阵相乘




public double[,] matrixMulti(double[,] X, double[,] Y)
{
double[,] A = X; double[,] B = Y;
double[,] C = new double[gth(0), gth(1)];
for (inti = 0; ifor (int j = 0; j {
C[i, j] = 0;
for (int k = 0; k {
C[i, j] += A[i, k] * B[k, j];
}
}
return C;
}
矩阵相乘
public static Matrix Multiply(Matrix lm, Matrix rm)
{
Matrix another = new Matrix(, );
if ( == )
{
for (inti = 0; i<; i++)
{
for (int j = 0; j <; j++)
{
double temp=0;
for (int k = 0; k <; k++)
{
temp += (i, k) * (k, j);
}
(i, j, temp);

}
}
}
else
{
ine(左矩阵的列数不等于右矩阵的行数,不能参与计算
}
return another;
}
矩阵相加实现
public static Matrix Add(Matrix lm, Matrix rm)
{
行出错
if ( != )
{
ion e = new Exception(相加的两个矩阵的行数不等
throw e;
}
列出错
if ( != )
{
ion e = new Exception(相加的两个矩阵的列数不等
throw e;
}
Matrix another = new Matrix(, );
for (inti = 0; i<; i++)
{
for (int j = 0; j <; j++)
{
double temp = (i, j) + (i, j);
(i, j, temp);
}
}
return another;
}
矩阵求逆实现
public static Matrix Inverse(Matrix M)
{
int m =
int n =
if (m != n)
{
Exception myException = new Exception(求逆的矩阵不是方阵
throwmyException;
}
Matrix ret = new Matrix(m, n);
double[,] a0 =
double[,] a = (double[,])();
double[,] b =
inti, j, row, k; double max, temp;
单位矩阵
for (i = 0; i< n; i++)
{
b[i, i] = 1;
}
for (k = 0; k < n; k++)
{
max = 0; row = k;
找最大元,其所在行为row
for (i = k; i< n; i++)
{
temp = (a[i, k]);
if (max < temp)
{
max = temp; row = i;
}
}
if (max == 0)
{
Exception myException = new Exception(该矩阵无逆矩阵
throwmyException;
}
交换k与row行
if (row != k)
{
for (j = 0; j < n; j++)
{
temp = a[row, j];
a[row, j] = a[k, j];
a[k, j] = temp;
temp = b[row, j];
b[row, j] = b[k, j];
b[k, j] = temp;
}
}
首元化为1
for (j = k + 1; j < n; j++)
a[k, j] = a[k, k];
for (j = 0; j < n; j++)
b[k, j] = a[k, k];
a[k, k] = 1;
k列化为0
对a
for (j = k + 1; j < n; j++)
{
for (i = 0; i< k; i++)
a[i, j] -= a[i, k] * a[k, j];
for (i = k + 1; i< n; i++)
a[i, j] -= a[i, k] * a[k, j];
}
对b
for (j = 0; j < n; j++)
{
for (i = 0; i< k; i++)
b[i, j] -= a[i, k] * b[k, j];
for (i = k + 1; i< n; i++)
b[i, j] -= a[i, k] * b[k, j];
}
for (i = 0; i< n; i++)
a[i, k] = 0;
a[k, k] = 1;
}
return ret;
}

主函数
public static void Main()
{
int Row, Col, choice;
ine(请输入想要的矩阵行数与列数
Row = 32(ne());
Col = 32(ne());
Matrix m = new Matrix(Row, Col);
ine(输入矩阵数据
(Row, Col); M();
do
{
ine(请选择你想要进行的运算:n(1)转置;n(2)输入另一矩阵并相加;n
(3 )求逆;n(4)输入另一矩阵并相乘;n(0)停止;
choice = 32(ne());
switch (choice)
{
case 1:
Matrix n = ose();
M();
break;
case 2:
ine(请输入第二个矩阵行数与列数
Row = 32(ne());
Col = 32(ne());
Matrix m2 = new Matrix(Row, Col);
ine(输入矩阵数据
(Row, Col);
ine(第二个矩阵为:
M();
Matrix result = Add(m, m2);
M();
break;
case 3:
Matrix m3 = Inverse(m);
M();
break;
case 4:
ine(请输入第二个矩阵行数与列数
Row = 32(ne());
Col = 32(ne());
Matrix m4 = new Matrix(Row, Col);
ine(输入矩阵数据
(Row, Col);
ine(第二个矩阵为:
M();
Matrix result2 = Multiply(m, m4);
M();
break;
case 0:
break;
}
}
while (choice != 0);
(请按任意键继续
ne();
}

安徽理工大学专业-晚餐吃什么健康又营养


身份证丢失如何挂失-长句


金属材料包括-中国的银行排名


安庆有哪些大学-眼睛闪光是因为什么原因导致的


矩形的性质-有向线段和向量的区别


全国卷一-儿童注意力集中训练


中国十大名牌-招工作


离骚必修二-篇幅



本文更新与2020-10-03 20:12,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/409642.html

矩阵运算——矩阵加法+乘法+转置+求逆的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文