資源簡介
自己編寫的多元線性回歸程序,包含主程序,以及函數。
代碼片段和文件信息
#include
using?namespace?std;
void?LUMatrixSolve(double?**matrix_adouble?*bint?ndouble?*root)
{
double?**l=new?double*[n];//分解的下三角矩陣
double?**u=new?double*[n];//分解得到的下三角矩陣
double?*y=new?double[n];//中間向量
double?sum=0.0sum1=0.0;
????int?ijkrm;
????for(i=0;i {
l[i]=new?double[n];
u[i]=new?double[n];
}
for(i=0;i {
for(j=0;j {
l[i][j]=0.0;
u[i][j]=0.0;
}
}
for(i=0;i {
l[i][i]=1.0;
u[0][i]=matrix_a[0][i];
l[i][0]=matrix_a[i][0]/u[0][0];
}
for(k=1;k {
for(j=k;j {
sum=0.0;
for(i=0;i {
sum+=l[k][i]*u[i][j];
}
u[k][j]=matrix_a[k][j]-sum;
}
for(r=k;r {
sum1=0.0;
for(m=0;m {
sum1+=l[r][m]*u[m][k];
}
l[r][k]=(matrix_a[r][k]-sum1)/u[k][k];
}
}
y[0]=b[0];
for(k=1;k {
sum=0.0;
for(r=0;r {
sum+=l[k][r]*y[r];
}
y[k]=b[k]-sum;
}
root[n-1]=y[n-1]/u[n-1][n-1];
for(k=n-2;k>=0;k--)
{
sum=0.0;
for(r=k+1;r {
sum+=u[k][r]*root[r];
}
root[k]=(y[k]-sum)/u[k][k];
}
for(i=0;i {
delete?[]?l[i];
delete?[]?u[i];
}
delete?[]?y;
}
void?duoyuanxianxinghuigui(double?y[]double?**xint?nint?mdouble?*adouble?*b)
{
//n表示的是數據量的點數,m表示的多元線性回歸中的元的個數,y是因變量,x是自變量是一個二元數組,其中x的行是代表x1、x2等等,列代表的就是每個元
- 上一篇:max6675+熱電偶測溫程序
- 下一篇:GIF圖片 c++顯示代碼
評論
共有 條評論