/**
共轭梯度算法C++版本实现,用于求解系数矩阵为对称正定矩阵的线性方程组。
@Rachy 2016.3.2
*/
#include<iostream>
#define eps 1.e-10
using namespace std;
template<class T>
void CGM(T **A,T *b,int NN)
{
cout<<"这是共轭梯度算法!!"<<endl;
T *x=new T[NN],*r=new T[NN],*d=new T[NN],*rr=new T[NN],*tmp=new T[NN],alpha=0,beta=0;
int k;
//初始化
for(int i=0;i<NN;i++)
{
x[i]=(0.0,0.0);
r[i]=(0.0,0.0);
d[i]=(0.0,0.0);
rr[i]=(0.0,0.0);
tmp[i]=(0.0,0.0);
}
for(int i=0;i<NN;i++)
{
for(int j=0;j<NN;j++)
{
tmp[i]+=A[i][j]*x[j];
}
r[i]=b[i]-tmp[i];
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余2页未读,立即下载