voidS//列主元素消去法求解方程//n次多项式曲线输出函数//指数型曲线输出函数//对数型曲线输出函数//幂计算方法最小二乘拟合c语言程序。运行截图:程序代码:#include#includeintN,n,type;〃N为数据个数,type为所拟合曲线的代号(详见程序运行截图)voidPrin();//输入提示voidATA(doublea[N][n]);//通过正则方程生成所拟合函数系数的线性方程组voidprin1(doublea[n][n+1],doubleb[N][2]);voidprin2(doublea[n][n+1],doubleb[N][2]);voidprin3(doublea[n][n+1],doubleb[N][2]);voidprin4(doublea[n][n+1],doubleb[N][2]);intmain(){Prin();inti,j;scanf("%d",&N);doubleb[N][2];for(i=0;imax)max=a[j][i],maxi=j;if(maxi!=i){doubletemp;for(j=i;j=0;i--){doublesum=0;for(j=i+1;jp)p=fabs(c[i][1]-c[i][0]);}printf("所求拟合的%d次曲线为y=%.4lf",n-1,a[0][n]);for(i=1;i0)printf("+%0.4lfxA%d",a[i][n],i);elseprintf("%0.4lfxA%d",a[i][n],i);}printf("\n");printf("均方误差:%.4lf最大偏差:%.4lf\n",sqrt(q),p);}voidprin2(doublea[n][n+1],doubleb[N][2]){inti;doubleq=0,p=0,c[N][2];a[0][n]=exp(a[0][n]);for(i=0;ip)p=fabs(c[i][1]-c[i][0]);}printf("所求拟合的指数型曲线为y=%.4lfexp(%.4lfx)",a[0][n],a[1][n]);printf("\n");printf("均方误差:%.4lf最大偏差:%lf.4\n",sqrt(q),p);}voidprin3(doublea[n][n+1],doubleb[N][2]){inti;doubleq=0,p=0,c[N][2];for(i=0;ip)p=fabs(c[i][1]-c[i][0]);}if(a[1][n]>0)printf("所求拟合的对数型曲线为y=%.4lf+%.4lf*ln(x)",a[O][n],a[1][n]);elseprintf("所求拟合的对数型曲线为y=%.4lf%.4lf*ln(x)",a[O][n],a[1][n]);printf("\n");printf("均方误差:%.4lf最大偏差:%lf.4\n",sqrt(q),p);}voidprin4(doublea[n][n+1],doubleb[N][2]){inti;doubleq=0,p=0,c[N][2];a[0][n]=exp(a[0][n]);for(i=0;ip)p=fabs(c[i][1]-c[i][0]);}printf("所求拟合的幂函数型曲线为y=%.4lf*xA(%.4lf)",a[0][n],a[1][n]);printf("\n");printf("均方误差:%.4lf最大偏差:%lf.4\n",sqrt(q),p);}