package com.util;
/** */
public class matrix
/* * 杜航 功能: 構造n行n列的空矩陣
*/public matrix(int n)
/* * 杜航 功能: 無參建構函式預設構造2行2列的空矩陣
*/public matrix()
/* * 杜航 功能: 構造矩陣,由陣列mat提供矩陣元素
*/public matrix(float mat)
/* * 杜航 功能: 獲得矩陣第i行第j列的元素
*/public float get(int i, int j)
/* * 杜航 功能: 設定矩陣第i行第j列的元素
*/public void set(int i, int j, int k)
/* * 杜航 功能: 行主序遍歷,訪問矩陣全部元素
*/public string tostring()
return str;
} /*
* 杜航 功能: this和b兩個矩陣相加,改變當前矩陣
*/public void add(matrix b)
/* * 杜航 功能:this和b兩個矩陣相減,改變當前矩陣
*/public void minus(matrix b)
/* * 杜航 功能: 矩陣相乘:當前矩陣=當前矩陣*b
*/public matrix multi(matrix b)
matrix temp = new matrix(value.length, b.value[0].length);
for (int i = 0; i < value.length; i++)
for (int j = 0; j < b.value[0].length; j++)
this.value = temp.value;
return this;
} /*
* 杜航 功能: 返回轉置矩陣
*/public matrix transpose()
/* * 杜航 功能: 返回伴隨矩陣
*/private matrix ajoint() else }}
return temp.transpose();
} else
} /*
* 杜航 功能: 返回行列式的代數余子式
*/private matrix detcofactor(int i, int j) else
}} else else }}
} return temp;
} /*
* 杜航 功能:求解矩陣(行列式)的模值
*/public float detvalue() else else
}} return val;
} /*
* 杜航 功能:求n*n矩陣的逆矩陣
*/public matrix reverse()
}return temp;
} else
} /*
* 杜航 功能:main()測試矩陣的基本操作函式
*/public static void main(string args) , };
matrix a = new matrix(m1);
float m2 = , , };
matrix b = new matrix(m2);
system.out.print("matrix a:\n" + a.tostring());
system.out.print("matrix b:\n" + b.tostring());
a.multi(b);
system.out.print("matrix a*b:\n" + a.tostring());
system.out.println("a的轉置矩陣:\n" + a.transpose().tostring());
float m3 = , , };
matrix c = new matrix(m3);
system.out.println("value of det:\n" + c.detcofactor(3, 3).tostring());
float m4 = , };
matrix d = new matrix(m4);
system.out.println("value of det:\n" + d.detvalue());
float m5 = , , };
matrix e = new matrix(m5);
system.out.println("伴隨矩陣:\n" + e.ajoint().tostring());
float m51 = , };
matrix e1 = new matrix(m51);
system.out.println("伴隨矩陣:\n" + e1.ajoint().tostring());
float m6 = , , };
matrix f = new matrix(m6);
system.out.println("逆矩陣:\n" + f.reverse().tostring());
float m7 = , };
matrix g = new matrix(m7);
system.out.println("逆矩陣:\n" + g.reverse().tostring());
// 驗證 「矩陣伴隨的轉置等於矩陣轉置的伴隨」
float m8 = , , };
matrix h = new matrix(m8);
system.out.println("矩陣伴隨的轉置:\n" + h.ajoint().transpose().tostring());
system.out.println("矩陣轉置的伴隨:\n" + h.transpose().ajoint().tostring());
}}
javascript各種方法的原理及原生實現
object.create function obj f.prototype obj return new f var newobj object.create obj 原型鏈的關係如下 newobj.proto f.prototype obj 訪問順序 newobj newobj.proto ob...
原生js對陣列的操作方法
pop 刪除陣列的最後乙個元素 shift 刪除陣列的第乙個元素 返回值被刪除的元素push 在陣列的末尾新增乙個或多個元素 unshift 在陣列的開頭新增乙個或多個元素 返回值陣列的長度sort 無引數按照首個字元的unicode編碼值進行排序 有引數按照引數指定的順序進行排序sort排序 va...
Python 類 類的建立及操作
1,類的建立 class person object init函式是乙個建構函式,在建立例項過程中自動執行,為例項的初始化工作。name為init函式的區域性變數,self.name是例項的屬性,二者看似相同,實則區別很大。通過self.name name的方式,我們可以把name屬性賦值給self...