c语言有拟合函数的库吗 c语言曲线拟合

采用c语言绘制任意函数曲线(双曲线,二次函数,一次函数)??怎么做??在c的标准库中有graphic.h头文件 , 实现了很多画图函数 比如 lineto,moveto,arc,(函数名可能记错,好久没用了-.-!)
直线:起点加终点就行 。
二次曲线,比如抛物线,那就以定长拆分成小直线 。双曲线同理 。
抛物线,和双曲线用定长拆分,估计很难计算 。要是精度要求不高就根据情况改成定x,或者定y偏移的拆分,要是精度要求高那就去找直线拟合曲线的算法或者双圆弧拟合曲线的算法 。
c语言怎么把数据拟合成函数并画线1、通过一些点拟合出一条直线 。
2、参数:pt_input指向传入的点的指针 。
3、ptNumbers传入的点数量 。
4、k指向拟合直线参数k的指针 。
5、b指向拟合直线参数b的指针 。
c语言compare函数在哪个库函数库 。c语言的compare函数是在函数库中的,是C的库函数模板,C语言是一种结构化语言,是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发 。
如何用c语言编写32阶多项式拟合函数?这与几阶多项式无关c语言有拟合函数的库吗,关键是用什么方法拟合 。如果只有33个数据点c语言有拟合函数的库吗,解一族线性方程就可以c语言有拟合函数的库吗了c语言有拟合函数的库吗 , 如果有很多组数据,就用最小而乘法,步骤略微多一些 。看看计算方法的书就任意操作了 。
想用C语言编写多项式拟合的程序#include stdio.h
#include conio.h
#include stdlib.h
#include math.h
main()
{
int i,j,m,n=7,poly_n=2;
double x[7]={1,2,3,4,6,7,8},y[7]={2,3,6,7,5,3,2};
double a[3];
void polyfit(int n,double *x,double *y,int poly_n,double a[]);
system("cls");
polyfit(n,x,y,poly_n,a);
for (i=0;ipoly_n 1;i)/*这里是升序排列c语言有拟合函数的库吗,Matlab是降序排列*/
printf("a[%d]=%g\n",i,a[i]);
getch();
}
/*==================polyfit(n,x,y,poly_n,a)===================*/
/*=======拟合y=a0 a1*x a2*x^2 …… apoly_n*x^poly_n========*/
/*=====n是数据个数 xy是数据值 poly_n是多项式c语言有拟合函数的库吗的项数======*/
/*===返回a0,a1,a2,……a[poly_n]c语言有拟合函数的库吗,系数比项数多一(常数项)=====*/
void polyfit(int n,double x[],double y[],int poly_n,double a[])
{
int i,j;
double *tempx,*tempy,*sumxx,*sumxy,*ata;
void gauss_solve(int n,double A[],double x[],double b[]);
tempx=calloc(n,sizeof(double));
sumxx=calloc(poly_n*2 1,sizeof(double));
tempy=calloc(n,sizeof(double));
sumxy=calloc(poly_n 1,sizeof(double));
ata=calloc((poly_n 1)*(poly_n 1),sizeof(double));
for (i=0;in;i)
{
tempx[i]=1;
tempy[i]=y[i];
}
for (i=0;i2*poly_n 1;i)
for (sumxx[i]=0,j=0;jn;j)
{
sumxx[i] =tempx[j];
tempx[j]*=x[j];
}
for (i=0;ipoly_n 1;i)
for (sumxy[i]=0,j=0;jn;j)
{
sumxy[i] =tempy[j];
tempy[j]*=x[j];
}
for (i=0;ipoly_n 1;i)
for (j=0;jpoly_n 1;j)
ata[i*(poly_n 1) j]=sumxx[i j];
gauss_solve(poly_n 1,ata,a,sumxy);
free(tempx);
free(sumxx);
free(tempy);
free(sumxy);
free(ata);
}
void gauss_solve(int n,double A[],double x[],double b[])
【c语言有拟合函数的库吗 c语言曲线拟合】{
int i,j,k,r;
double max;
for (k=0;kn-1;k)
{
max=fabs(A[k*n k]); /*find maxmum*/
r=k;
for (i=k 1;in-1;i)
if (maxfabs(A[i*n i]))
{
max=fabs(A[i*n i]);
r=i;
}
if (r!=k)
for (i=0;in;i)/*change array:A[k]A[r] */
{
max=A[k*n i];
A[k*n i]=A[r*n i];
A[r*n i]=max;
}
max=b[k];/*change array:b[k]b[r]*/
b[k]=b[r];
b[r]=max;
for (i=k 1;in;i)
{
for (j=k 1;jn;j)
A[i*n j]-=A[i*n k]*A[k*n j]/A[k*n k];
b[i]-=A[i*n k]*b[k]/A[k*n k];
}
}
C语言线性曲线拟合可以直接在线进行拟合,下面是地址(已验证)
建议你直接对数据用Matlab的cftool拟合(可以自由的自定义拟合函数形式)
关于c语言有拟合函数的库吗和c语言曲线拟合的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读