資源簡介
傳說中的CMatrix,支持實矩陣和復數矩陣,支持矩陣的加減乘除求逆運算,矩陣的字符串輸入輸出,以及:實矩陣求逆的全選主元高斯-約當法復矩陣求逆的全選主元高斯-約當法對稱正定矩陣的求逆托伯利茲矩陣求逆的埃蘭特方法求行列式值的全選主元高斯消去法求矩陣秩的全選主元高斯消去法對稱正定矩陣的喬里斯基分解與行列式的求值矩陣的三角分解一般實矩陣的QR分解一般實矩陣的奇異值分解求廣義逆的奇異值分解法約化對稱矩陣為對稱三對角陣的豪斯荷爾德變換法實對稱三對角陣的全部特征值與特征向量的計算約化一般實矩陣為赫申伯格矩陣的初等相似變換法求赫申伯格矩陣全部特征值的QR方法求實對稱矩陣特征值與特征向量的雅可比法求實對稱矩陣特征值與特征向量的雅可比過關法

代碼片段和文件信息
//?Matrix.cpp:?implementation?of?the?CMatrix?class.
//
//////////////////////////////////////////////////////////////////////
#include?“stdafx.h“
//#include?“ldi.h“
#include?“Matrix.h“
#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//?基本構造函數
//////////////////////////////////////////////////////////////////////
CMatrix::CMatrix()
{
m_nNumColumns?=?1;
m_nNumRows?=?1;
m_pData?=?NULL;
BOOL?bSuccess?=?Init(m_nNumRows?m_nNumColumns);
ASSERT(bSuccess);
}
//////////////////////////////////////////////////////////////////////
//?指定行列構造函數
//
//?參數:
//?1.?int?nRows?-?指定的矩陣行數
//?2.?int?nCols?-?指定的矩陣列數
//////////////////////////////////////////////////////////////////////
CMatrix::CMatrix(int?nRows?int?nCols)
{
m_nNumRows?=?nRows;
m_nNumColumns?=?nCols;
m_pData?=?NULL;
BOOL?bSuccess?=?Init(m_nNumRows?m_nNumColumns);
ASSERT(bSuccess);
}
//////////////////////////////////////////////////////////////////////
//?指定值構造函數
//
//?參數:
//?1.?int?nRows?-?指定的矩陣行數
//?2.?int?nCols?-?指定的矩陣列數
//?3.?double?value[]?-?一維數組,長度為nRows*nCols,存儲矩陣各元素的值
//////////////////////////////////////////////////////////////////////
CMatrix::CMatrix(int?nRows?int?nCols?double?value[])
{
m_nNumRows?=?nRows;
m_nNumColumns?=?nCols;
m_pData?=?NULL;
BOOL?bSuccess?=?Init(m_nNumRows?m_nNumColumns);
ASSERT(bSuccess);
SetData(value);
}
//////////////////////////////////////////////////////////////////////
//?方陣構造函數
//
//?參數:
//?1.?int?nSize?-?方陣行列數
//////////////////////////////////////////////////////////////////////
CMatrix::CMatrix(int?nSize)
{
m_nNumRows?=?nSize;
m_nNumColumns?=?nSize;
m_pData?=?NULL;
BOOL?bSuccess?=?Init(nSize?nSize);
ASSERT?(bSuccess);
}
//////////////////////////////////////////////////////////////////////
//?方陣構造函數
//
//?參數:
//?1.?int?nSize?-?方陣行列數
//?2.?double?value[]?-?一維數組,長度為nRows*nRows,存儲方陣各元素的值
//////////////////////////////////////////////////////////////////////
CMatrix::CMatrix(int?nSize?double?value[])
{
m_nNumRows?=?nSize;
m_nNumColumns?=?nSize;
m_pData?=?NULL;
BOOL?bSuccess?=?Init(nSize?nSize);
ASSERT?(bSuccess);
SetData(value);
}
//////////////////////////////////////////////////////////////////////
//?拷貝構造函數
//
//?參數:
//?1.?const?CMatrix&?other?-?源矩陣
//////////////////////////////////////////////////////////////////////
CMatrix::CMatrix(const?CMatrix&?other)
{
m_nNumColumns?=?other.GetNumColumns();
m_nNumRows?=?other.GetNumRows();
m_pData?=?NULL;
BOOL?bSuccess?=?Init(m_nNumRows?m_nNumColumns);
ASSERT(bSuccess);
//?copy?the?pointer
memcpy(m_pData?other.m_pData?sizeof(double)*m_nNumColumns*m_nNumRows);
}
//////
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????75899??2005-09-12?22:04??Matrix.cpp
?????文件???????3212??2005-09-12?16:59??Matrix.h
-----------?---------??----------?-----??----
????????????????79111????????????????????2
評論
共有 條評論