//matrix.h
#ifndef MATRIX_H
#define MATRIX_H
class vector;
class matrix;
typedef double(*pfun)(double t);
typedef void (*fun_group)(double t,vector& y);
typedef double(*pfun2)(double t,double x);
typedef double(*pfun_arg)(double t,vector& x);
typedef void (*vector_map)(double t,vector& x,vector& y);
typedef double (*pFUN)(vector& x);
typedef void (*Fun_group)(vector& x,vector& y);
enum POSITION_STS{LT,RT,LB,RB};
_declspec(dllexport) double Gauss(pfun pf,double a,double b,int n=1);
_declspec(dllexport) double Gauss(pfun2 pf,double a,double b,double x,int n=1);
_declspec(dllexport) double Romberg(pfun pf,double a,double b,double error=1E-10);
_declspec(dllexport) double Romberg(pfun2 pf,double a,double b,double x,double error=1E-10);
_declspec(dllexport) double RK(pfun2 pf,double t0,double x0,double T,double error);
_declspec(dllexport) double Deriv1(pfun pf,double x);
_declspec(dllexport) double Deriv2(pfun pf,double x);
_declspec(dllexport) double ZeroPoint(pfun pf,double x0,double error);
_declspec(dllexport) double MinPoint1(pfun pf,double x0,double error=1E-6);
_declspec(dllexport) double MinPoint2(pfun pf,double x0,double error=1E-10);
_declspec(dllexport) void FFT(vector& Real,vector& Imag,vector& real,vector& imag,int what);
_declspec(dllexport) void FFT(vector& Real,vector& real,vector& imag);
_declspec(dllexport) double Mult(vector& x,matrix& A,vector& y);
_declspec(dllexport) void Plot(vector& t,vector& x);
_declspec(dllexport) void Plot(pfun pf,double a,double b,int n=100);
_declspec(dllexport) void Plot(pfun pf1,pfun pf2,double a,double b,int n=100);
_declspec(dllexport) void Plot(pfun pf1,pfun pf2,pfun pf3,double a,double b,int n=100);
_declspec(dllexport) double ED(vector& x,vector& y);
class matrix
{
public:
friend class vector;
friend double Mult(vector& x,matrix& A,vector& y);
friend void Plot(pfun pf,double a,double b,int n);
friend void Plot(pfun pf1,pfun pf2,double a,double b,int n);
friend void Plot(pfun pf1,pfun pf2,pfun pf3,double a,double b,int n);
_declspec(dllexport) matrix();
_declspec(dllexport) matrix(int m0,int n0);
_declspec(dllexport) matrix(const matrix &ob);
_declspec(dllexport) ~matrix();
_declspec(dllexport) void Set(int m0,int n0);
_declspec(dllexport) void Destroy(void);
_declspec(dllexport) int LineSize(void);
_declspec(dllexport) int ColumSize(void);
_declspec(dllexport) void DelLine(int k);
_declspec(dllexport) void DelColum(int k);
_declspec(dllexport) void AddLine(vector& x);
_declspec(dllexport) void AddLine();
_declspec(dllexport) void AddColum(vector& x);
_declspec(dllexport) void AddColum();
_declspec(dllexport) void InsLine(int k,vector& x);
_declspec(dllexport) void InsLine(int k);
_declspec(dllexport) void InsColum(int k,vector& x);
_declspec(dllexport) void InsColum(int k);
_declspec(dllexport) void SetColum(vector& x,int j);
_declspec(dllexport) void SetLine(vector& x,int i);
_declspec(dllexport) void LineSum(vector& x);
_declspec(dllexport) void ColumSum(vector& x);
_declspec(dllexport) void DiagPlus(double a);
_declspec(dllexport) void DiagPlus(vector& d);
_declspec(dllexport) void DiagSub(vector& d);
_declspec(dllexport) void ExchangeLine(int i,int j);
_declspec(dllexport) void ExchangeColum(int i,int j);
_declspec(dllexport) void LineTimes(int k,double landa);
_declspec(dllexport) void ColumTimes(int k,double landa);
_declspec(dllexport) void LineTimesPlus(int i,double landa,int j);
_declspec(dllexport) void ColumTimesPlus(int i,double landa,int j);
_declspec(dllexport) void TimesPlus(matrix& ob,double landa);
_declspec(dllexport) void GetBlock(matrix &A,int p,int q,int *u,int *v);
_declspec(dllexport) void GetBlock(matrix &A,int lnum,int cnum,POSITION_STS where);
_declspec(dllexport) void GetLineBlock(matrix& A,int top,int bottom);
_declspec(dllexport) void GetColumBlock(matrix& A,int left,int right);
_declspec(dllexport) void FillIn(matrix &A,POSITION_STS where);
_declspec(dllexport) void FillIn(matrix &A,int left,int top);
_declspec(dllexport) void RightLink(matrix &A,matrix &B);
_declspec(dllexport) void RightLink(matrix &B);
_declspec(dllexport) void DownLink(matrix &B);
_declspec(dllexport) void DownLink(matrix &A,matrix &B);
_declspec(dllexport) double AbsMax(int &r,int &s);
_declspec(dllexport) double AbsMax();
_declspec(dllexport) double AbsMin(int &r,int &s);
_declspec(dllexport) double AbsMin();
_declspec(dllexport) double Max(int &r,int &s);
_declspec(dllexport) double Max();
_declspec(dllexport) double Min(int &r,int &s);
_declspec(dllexport) double Min();
_declspec(dllexport) double Mean();
_declspec(dllexport) void CoVar(matrix& B);//B=((x1-mu)*(x1-mu)'+...+(xn-um)*(xn-mu)')/n
_declspec(dllexport) double Trace(void);
_declspec(dllexport) void Unit();
_declspec(dllexport) void Zero();
_declspec(dllexport) void Negative();
_declspec(dllexport) void DelError(double error);
_declspec(dllexport) void Unit(int n);
_declspec(dllexport) void Init(double first,...);
_declspec(dllexport) void Random(double a=0,double b=1);
_declspec(dllexport)void RandomGauss(vector& mu,matrix& sigama);
_declspec(dllexport) void RandomInt(int scope);
_declspec(dllexport) matrix& Plus(matrix &A,matrix &B,bool FirstTurn=0,bool SecondTurn=0);
_declspec(dllexport) matrix& Sub(matrix &A,matrix &B,bool FirstTurn=0,bool SecondTurn=0);
_declspec(dllexport) matrix& Mult(matrix &A,matrix &B,bool FirstTurn=0,bool SecondTurn=0);//////need modify
_declspec(dllexport) matrix& Mult(matrix &A,double landa,bool Turn=0);
_declspec(dllexport) matrix& Mult(vector& x,vector& y);
_declspec(dllexport) matrix& Turn(void);
_declspec(dllexport) matrix& Turn(matrix &ob);
_declspec(dllexport) void MatrixPoly(vector& p,matrix& A,bool duicheng=0);
_declspec(dllexport) double Det();
_declspec(dllexport) int Rank(void);
_declspec(dllexport) int Rang(matrix& B);
_declspec(dllexport) int Null(matrix& N);
_declspec(dllexport) bool Invers(matrix &A);
_declspec(dllexport) void PInvers(matrix& A);
_declspec(dllexport) bool Cholesky1(matrix& L,vector& d);
_declspec(dllexport) void Cholesky2(matrix& L,vector& d);
_declspec(dllexport) void QR(matrix &Q,matrix &R);//A=QR
_declspec(dllexport) void Eig(vector& real,vector& imag);
_declspec(dllexport) double Eig(double landa,vector& ksai);
_declspec(dllexport) double Eig(double a,double b,vector& real,vector& imag);
_declspec(dllexport) void Eig(vector& root,matrix& Q);//Q'AQ=diag(root[1]...root[n])
_declspec(dllexport) void Eig(vector& root);
_declspec(dllexport) int SVD(vector& singalvalue);
_declspec(dllexport) int SVD(matrix& U,matrix& S,matrix& V);//U'AV=S
_declspec(dllexport) double Norm1(void);
_declspec(dllexport) double NormInf(void);
_declspec(dllexport) double Norm2(void);
_declspec(dllexport) double Cond(void);
_declspec(dllexport) void RK(matrix& A,double t0,vector& x0,double T,double error);
_declspec(dllexport) void RK(matrix& A,matrix& B,fun_group u,double t0,vector& x0,double T,double error);
_declspec(dllexport) void RK(pfun2 pf,double t0,double x0,double T,double error);
_declspec(dllexport) void RK(vector_map v_map,double t0,vector& x0,double T,double error);
_declspec(dllexport) void Hessain(pFUN pf,vector& x);
_declspec(dllexport) void Jacobi(Fun_group fj,int mm,vector& x);
_declspec(dllexport) void Exp(matrix& A,double t);
_declspec(dllexport) void Save(char *pathname);
_declspec(dllexport) void Read(char *pathname);
_declspec(dllexport) void Print(int byte=6);
_declspec(dllexport) void Plot();
_declspec(dllexport) void SplineBuild(vector& x0,vector& y0);
_declspec(dllexport) double SplineValue(double x);
_de
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
the-numerical-analysis-class-libraryVC.rar (4个子文件)
VC用户
MatrixVCDLL.dll 244KB
MatrixVCDLL.lib 72KB
Matrix.h 19KB
www.pudn.com.txt 218B
共 4 条
- 1
资源评论
寒泊
- 粉丝: 78
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功