資源簡(jiǎn)介
這是一個(gè)用c#語(yǔ)言寫(xiě)成的矩陣類,可以完成矩陣的各種準(zhǔn)確的數(shù)學(xué)計(jì)算,如:矩陣的加減乘除、轉(zhuǎn)置、逆運(yùn)算、 復(fù)矩陣的乘法、求行列式值、 求矩陣秩、一般實(shí)矩陣的奇異值分解、求廣義逆、約化對(duì)稱矩陣為對(duì)稱三對(duì)角陣、實(shí)對(duì)稱三對(duì)角陣的全部特征值與特征向量的計(jì)算、求赫申伯格矩陣全部特征值、求實(shí)對(duì)稱矩陣特征值與特征向量等.可以將其做成dll用到其他的環(huán)境下。填補(bǔ)了.net中沒(méi)有矩陣的空白,是你進(jìn)行科學(xué)計(jì)算不可或缺的插件之一。
代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Text;
namespace?Matrix
{
????public?class?Matrix
????{
????????private?int?numColumns?=?0; //?矩陣列數(shù)
????????private?int?numRows?=?0; //?矩陣行數(shù)
????????private?double?eps?=?0.0; //?缺省精度
????????private?double[]?elements?=?null; //?矩陣數(shù)據(jù)緩沖區(qū)
????????/**
?????????*?屬性:?矩陣列數(shù)
?????????*/
????????public?int?Columns
????????{
????????????get
????????????{
????????????????return?numColumns;
????????????}
????????}
????????/**
?????????*?屬性:?矩陣行數(shù)
?????????*/
????????public?int?Rows
????????{
????????????get
????????????{
????????????????return?numRows;
????????????}
????????}
????????/**
?????????*?索引器:?訪問(wèn)矩陣元素
?????????*?@param?row?-?元素的行
?????????*?@param?col?-?元素的列
?????????*/
????????public?double?this[int?row?int?col]
????????{
????????????get
????????????{
????????????????return?elements[col?+?row?*?numColumns];
????????????}
????????????set
????????????{
????????????????elements[col?+?row?*?numColumns]?=?value;
????????????}
????????}
????????/**
?????????*?屬性:?Eps
?????????*/
????????public?double?Eps
????????{
????????????get
????????????{
????????????????return?eps;
????????????}
????????????set
????????????{
????????????????eps?=?value;
????????????}
????????}
????????/**
?????????*?基本構(gòu)造函數(shù)
?????????*/
????????public?Matrix()
????????{
????????????numColumns?=?1;
????????????numRows?=?1;
????????????Init(numRows?numColumns);
????????}
????????/**
?????????*?指定行列構(gòu)造函數(shù)
?????????*?
?????????*?@param?nRows?-?指定的矩陣行數(shù)
?????????*?@param?nCols?-?指定的矩陣列數(shù)
?????????*/
????????public?Matrix(int?nRows?int?nCols)
????????{
????????????numRows?=?nRows;
????????????numColumns?=?nCols;
????????????Init(numRows?numColumns);
????????}
????????/**
?????????*?指定值構(gòu)造函數(shù)
?????????*?
?????????*?@param?value?-?二維數(shù)組,存儲(chǔ)矩陣各元素的值
?????????*/
????????public?Matrix(double[]?value)
????????{
????????????numRows?=?value.GetLength(0);
????????????numColumns?=?value.GetLength(1);
????????????double[]?data?=?new?double[numRows?*?numColumns];
????????????int?k?=?0;
????????????for?(int?i?=?0;?i?????????????{
????????????????for?(int?j?=?0;?j?????????????????{
????????????????????data[k++]?=?value[i?j];
????????????????}
????????????}
????????????Init(numRows?numColumns);
????????????SetData(data);
????????}
????????/**
?????????*?指定值構(gòu)造函數(shù)
?????????*?
?????????*?@param?nRows?-?指定的矩陣行數(shù)
?????????*?@param?nCols?-?指定的矩陣列數(shù)
?????????*?@param?value?-?一維數(shù)組,長(zhǎng)度為nRows*nCols,存儲(chǔ)矩陣各元素的值
?????????*/
????????public?Matrix(int?nRows?int?nCols?double[]?value)
????????{
????????????numRows?=?nRows;
????????????numColumns?=?nCols;
????????????Init(numRows?numColumns);
????????????SetData(value);
????????}
????????/**
?????????*?方陣構(gòu)造函數(shù)
?????????*?
?????????*?@param?nSize?-?方陣行列數(shù)
?????????*/
????????public?Matrix(int?nSize)
????????{
????????????numRows?=?nSize;
評(píng)論
共有 條評(píng)論