• 大小: 3KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: C/C++
  • 标签: 线性回归  

资源简介

自己编写的多元线性回归程序,包含主程序,以及函数。

资源截图

代码片段和文件信息

#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等等,列代表的就是每个元

评论

共有 条评论