欢迎来到天天文库
浏览记录
ID:42935364
大小:51.00 KB
页数:5页
时间:2019-09-24
《计算方法最小二乘拟合c语言程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算方法最小二乘拟合C语言程序。运行截图:程序代码:#includeintNgtype;截图)#inelude〃N为数据个数,type为所拟合曲线的代号(详见程序运行voidPrin();〃输入提示voidATA(doublea[N][n]);〃通过正则方程生成所拟合函数系数的线性方程组voidSolve(doublea[n][n+l]);〃列主元素消去法求解方程组〃n次多项式曲线输出函数〃指数型曲线输出函数〃对数型曲线输出函数〃幕函数型曲线输出函数voidprinl(doublea
2、[n][n+l],doubleb[N][2]);voidprin2(doublea[n][n+l],doubleb[N][2]);voidprin3(doublea[n][n+l],doubleb[N][2]);voidprin4(doublea[n][n+l],doubleb[N][2]);intmain(){Prin();intij;scanf(“%d”,&N);doubleb[N][2];for(i=0;i3、tf(H请输入要拟合曲线的代号");scanf("%d",&type);if(type!=101&&type!=102&&type!=103)n=type+l;elsen二2;if(type4、a);prinl(a,b);}讦(type==101)//zhishu{doublea[N][n+l];for(i=0;i5、);}if(type==103){doublea[N][n+l];for(i=0;ivN;i++)a[i][0]=l,a[i][l]=log(b[i][O]),a[i][n]=log(b[i][l]);ATA(a);Solve(a);prin4(a,b);}}return0;}voidPrin(){printfC*请在第一行输入数据对个数n,以下n行输入数据,printfC-M后一行输入要拟合的函数类型代号“);printf(”(提示:n次多项式的函数类型代号为n");printf("指数型函数y=A6、*eA(Bx)的函数类型代号为101");printf("对数型函数y=A+B*lnx的函数类型代号为102");printf(”幕函数型y=A*xAB的函数代号为103)");}voidATA(doublea[N][n+l]){inti,j,k;doubleb[n][n+l];for(i=0;ivn;i++){for(j=O;j7、=O;jmax)max=a[j][i],maxi=j;讦(maxi!二i){doubletemp;for(j=i;jvn+l;j++){temp=a[maxi][j];a[maxi][j]=a[O][j];a[O][j]=temp;}}for(j=i+8、l;jvn;j++){doublex=-a[j][i]/a[i][i];for(k=i;k=0;i-){doublesum=0;for(j=i+l;jvn;j++)sum+=a[i][j]*a[j][n];
3、tf(H请输入要拟合曲线的代号");scanf("%d",&type);if(type!=101&&type!=102&&type!=103)n=type+l;elsen二2;if(type4、a);prinl(a,b);}讦(type==101)//zhishu{doublea[N][n+l];for(i=0;i5、);}if(type==103){doublea[N][n+l];for(i=0;ivN;i++)a[i][0]=l,a[i][l]=log(b[i][O]),a[i][n]=log(b[i][l]);ATA(a);Solve(a);prin4(a,b);}}return0;}voidPrin(){printfC*请在第一行输入数据对个数n,以下n行输入数据,printfC-M后一行输入要拟合的函数类型代号“);printf(”(提示:n次多项式的函数类型代号为n");printf("指数型函数y=A6、*eA(Bx)的函数类型代号为101");printf("对数型函数y=A+B*lnx的函数类型代号为102");printf(”幕函数型y=A*xAB的函数代号为103)");}voidATA(doublea[N][n+l]){inti,j,k;doubleb[n][n+l];for(i=0;ivn;i++){for(j=O;j7、=O;jmax)max=a[j][i],maxi=j;讦(maxi!二i){doubletemp;for(j=i;jvn+l;j++){temp=a[maxi][j];a[maxi][j]=a[O][j];a[O][j]=temp;}}for(j=i+8、l;jvn;j++){doublex=-a[j][i]/a[i][i];for(k=i;k=0;i-){doublesum=0;for(j=i+l;jvn;j++)sum+=a[i][j]*a[j][n];
4、a);prinl(a,b);}讦(type==101)//zhishu{doublea[N][n+l];for(i=0;i5、);}if(type==103){doublea[N][n+l];for(i=0;ivN;i++)a[i][0]=l,a[i][l]=log(b[i][O]),a[i][n]=log(b[i][l]);ATA(a);Solve(a);prin4(a,b);}}return0;}voidPrin(){printfC*请在第一行输入数据对个数n,以下n行输入数据,printfC-M后一行输入要拟合的函数类型代号“);printf(”(提示:n次多项式的函数类型代号为n");printf("指数型函数y=A6、*eA(Bx)的函数类型代号为101");printf("对数型函数y=A+B*lnx的函数类型代号为102");printf(”幕函数型y=A*xAB的函数代号为103)");}voidATA(doublea[N][n+l]){inti,j,k;doubleb[n][n+l];for(i=0;ivn;i++){for(j=O;j7、=O;jmax)max=a[j][i],maxi=j;讦(maxi!二i){doubletemp;for(j=i;jvn+l;j++){temp=a[maxi][j];a[maxi][j]=a[O][j];a[O][j]=temp;}}for(j=i+8、l;jvn;j++){doublex=-a[j][i]/a[i][i];for(k=i;k=0;i-){doublesum=0;for(j=i+l;jvn;j++)sum+=a[i][j]*a[j][n];
5、);}if(type==103){doublea[N][n+l];for(i=0;ivN;i++)a[i][0]=l,a[i][l]=log(b[i][O]),a[i][n]=log(b[i][l]);ATA(a);Solve(a);prin4(a,b);}}return0;}voidPrin(){printfC*请在第一行输入数据对个数n,以下n行输入数据,printfC-M后一行输入要拟合的函数类型代号“);printf(”(提示:n次多项式的函数类型代号为n");printf("指数型函数y=A
6、*eA(Bx)的函数类型代号为101");printf("对数型函数y=A+B*lnx的函数类型代号为102");printf(”幕函数型y=A*xAB的函数代号为103)");}voidATA(doublea[N][n+l]){inti,j,k;doubleb[n][n+l];for(i=0;ivn;i++){for(j=O;j7、=O;jmax)max=a[j][i],maxi=j;讦(maxi!二i){doubletemp;for(j=i;jvn+l;j++){temp=a[maxi][j];a[maxi][j]=a[O][j];a[O][j]=temp;}}for(j=i+8、l;jvn;j++){doublex=-a[j][i]/a[i][i];for(k=i;k=0;i-){doublesum=0;for(j=i+l;jvn;j++)sum+=a[i][j]*a[j][n];
7、=O;jmax)max=a[j][i],maxi=j;讦(maxi!二i){doubletemp;for(j=i;jvn+l;j++){temp=a[maxi][j];a[maxi][j]=a[O][j];a[O][j]=temp;}}for(j=i+
8、l;jvn;j++){doublex=-a[j][i]/a[i][i];for(k=i;k=0;i-){doublesum=0;for(j=i+l;jvn;j++)sum+=a[i][j]*a[j][n];
此文档下载收益归作者所有