void Matrix::LU(vector<vector<double>> &l,vector<vector<double>> &u)
{
int index=0;
for(auto &r:l)
{
r[index++]=1;
}
for(auto v:mat)
u.push_back(v);
double d=0.0;
for(int k=0;k<rowSize-1;++k)
{
for(int i=k+1;i<=rowSize-1;++i)
{
l[i][k]=u[i][k]/u[k][k];
for(int j=k;j<=colSize-1;++j)
{
u[i][j]=u[i][j]-l[i][k]*u[k][j];
if(fabs(u[i][j])<1e-10)
u[i][j]=0;
}
}
}
}
新增一个LU分解
最新推荐文章于 2024-12-08 01:45:43 发布