最小二乘法拟合C语言实现

2022-08-13 11:25:18   第一文档网     [ 字体: ] [ 阅读: ] [ 文档下载 ]
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。下载word有问题请添加QQ:admin处理,感谢您的支持与谅解。点击这里给我发消息

#第一文档网# 导语】以下是®第一文档网的小编为您整理的《最小二乘法拟合C语言实现》,欢迎阅读!
拟合,乘法,最小,语言,实现

#include <math.h>

#include <stdio.h>

#include <stdlib.h>

#include<malloc.h>

float average(int n,float *x)

{int i; float av; av=0; for(i=0;i<n;i++) av+=*(x+i);

av=av/n; return(av); } //平方和 float spfh(int n,float *x)

{int i; float a; a=0; for(i=0;i<n;i++)

a+=(*(x+i))*(*(x+i)); return(a); } //和平方

float shpf(int n,float *x) {int i; float a,b;

a=0; for(i=0;i<n;i++) a=a+*(x+i); b=a*a/n; return(b);

} //两数先相乘,再相加

float dcj(int n,float *x,float *y)

{int i; float a; a=0; for(i=0;i<n;i++)

a+=(*(x+i))*(*(y+i)); return(a); }

//两数先相加,再相乘

float djc(int n,float *x,float *y)

{int i; float a=0,b=0; for(i=0;i<n;i++)

{a=a+*(x+i); b=b+*(y+i); } a=a*b/n; return(a); } //系数a

float xsa(int n,float *x,float *y)

{float a,b,c,d,e; a=spfh(n,x); b=shpf(n,x);

c=dcj(n,x,y); d=djc(n,x,y); e=(c-d)/(a-b);

//printf("%f %f %f %f",a,b,c,d);

return(e); } float he(int n,float *y)

{int i; float a;

a=0; for(i=0;i<n;i++) a=a+*(y+i);

return(a); }

float xsb(int n,float *x,float *y,float a)

{ float b,c,d;

b=he(n,y); c=he(n,x); d=(b-a*c)/n; return(d);

} void main()

{ int n,i; float *x,*y,a,b;

printf("请输入将要输入的有效数值组数n的值");

scanf("%d",&n);

printf("n=%d\n",n);

x=(float*)calloc(n,sizeof(float));

if(x==NULL) {printf("内存分配失败"); exit(1); }

y=(float*)calloc(n,sizeof(float));

if(y==NULL) {printf("内存分配失败"); exit(1);

} printf("请输入x的值");

for(i=0;i<n;i++)scanf("%f",x+i);

printf("请输入y的值,请注意与x的值一一对应");

for(i=0;i<n;i++)scanf("%f",y+i);

//x[0]=0.1;x[1]=0.3;x[2]=0.4;x[3]=0.55;x[4]=0.7;x[5]=0.8;x[6]=0.95;

//y[0]=15;y[1]=18;y[2]=19;y[3]=21;y[4]=22.6;y[5]=23.8;y[6]=26; for(i=0;i<n;i++)

{ printf("x[%d]=%5.4f ",i,*(x+i));

printf("y[%d]=%5.4f\n",i,*(y+i));

} a=xsa(n,x,y); b=xsb(n,x,y,a);

printf("经最小二乘法拟合得到的一元线性方程为:\n");

printf("f(x)=%5.4fx+%5.4f\n",a,b);

}

本文来源:https://www.dywdw.cn/7d46b51ea76e58fafab003bb.html

相关推荐
推荐阅读