- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
/*
这个类提供的是一些基本的矩阵运算
可以满足+,-,*,det,R以及取反矩阵的运算
但是+,-,*,det,都没有对运算的可行性进行检查
同时,注意不要让秩超过整数
*/
//CMatrix::
class CMatrix
{
public:
CMatrix();
CMatrix(int xM,int xN);
virtual ~CMatrix();
int getm()const;
int getn()const;
int getij(int i,int j)const;//下标从0,0开始!
void setij(int xData,int i,int j);
void reset(int xM,int xN);
void operator=(const CMatrix xa);
CMatrix operator-()const;
CMatrix operator+(const CMatrix xb)const;//不进行合法性检查
CMatrix operator-(const CMatrix xb)const;//不进行合法性检查
CMatrix operator*(const CMatrix xb)const;//不进行合法性检查
int R()const;
int det()const;//不定义m!=n时的行列式,返回未知值
CMatrix Anti()const;
private:
int mM,mN;
int **mData;
};
//The math function that has been used
//******************************************************************
int min(int a,int b);
int gcd(int a,int b);
int abs(int a);
int swap(int a,int b);
void FMswap(double *a,double *b);
void FMbeishu(double *a,double k,int n);
void FMxiao(double *a,double *b,double k,int n);
int Fdet(int **a,int n);
int FR(int **a,int m,int n);
int min(int a,int b)
{
if(ab) return b;
return a;
}
int gcd(int a,int b)
{
if(b==0) return a;
else
if(a==1) return b;
else return (b,a%b);
}
int abs(int a)
{
if(a0)return -a;
return a;
}
int swap(int a,int b)
{
int t;
t=a; a=b; b=t;
return 0;
}
void swap(double a,double b)
{
double t;
t=a; a=b; b=t;
}
void FMswap(double *a,double *b)
{
double *t;
t=a; a=b; b=t;
}
void FMbeishu(double *a,double k,int n)
{
for(int i=0; in; i++)
a[i]=a[i]*k;
}
void FMxiao(double *a,double *b,double k,int n)
{
for(int i=0; in; i++)
b[i]+=a[i]*k;
}
int Fdet(int **a,int n)
{
bool ansget=false;
int i,j,k;
double ans;
double **x;
x=new double*[n];
for(i=0; in; i++) x[i]=new double[n];
for(i=0; in; i++)
for(j=0; jn; j++)
x[i][j]=double(a[i][j]);
for(j=0; jn; j++)
{
int notzerox=j;
for(i=j; in; i++)
if(x[i][j]!=0){
notzerox=i;
break;
}
for(k=j; kn; k++)
swap(x[notzerox][k],x[j][k]);
if(x[j][j]==0){
ansget=true;
ans
您可能关注的文档
- 多元EDI膜堆使用和维修手册.pdf
- 3.1母函数及基本组合计数问题2014.pdf
- 多元LDPC码速率兼容技术研究.pdf
- 多元化解新GXF时期社会GXF矛盾纠纷的表现形式和其.doc
- 3.2 矩阵和其运算.ppt
- 多元样条及离散数学相关问题研究进展综述.pdf
- 3.2 离散傅里叶变换基本性质.pdf
- 3.2.2(整数值)随机数产生.ppt
- 多重定语排序.ppt
- 多组合设备调度控制研究综述.pdf
- 人工智能背景下小学英语词汇教学策略研究教学研究课题报告.docx
- 信息素养培养在初中信息技术教学中的创新与实践教学研究课题报告.docx
- 语文课堂中古代诗词鉴赏教学的实践探索教学研究课题报告.docx
- 小学音乐教学中音乐欣赏教学策略的实践与反思教学研究课题报告.docx
- 2024年度网络安全漏洞分析报告.docx
- 初中化学核心素养与化学实验创新设计与实践教学研究课题报告.docx
- 装配式建筑材料生产项目申请报告(模板范文).docx
- 婴幼儿生长发育特点消化系统结构赵琳琳婴幼儿医学基础课件.pptx
- 护士资格考试必考基础知识题库及参考答案(通用版).pptx
- 分析氢能产业的增长动力与前景.docx
文档评论(0)