189 8069 5689

拟合曲线函数C语言,拟合曲线函数c语言表示

c语言怎么把数据拟合成函数并画线

1、通过一些点拟合出一条直线。

专注于为中小企业提供成都做网站、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业永清免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

2、参数:pt_input指向传入的点的指针。

3、ptNumbers传入的点数量。

4、k指向拟合直线参数k的指针。

5、b指向拟合直线参数b的指针。

C语言曲线拟合原理?

虽然我知道什么是曲线拟合,怎么做,但是我不清楚你问题的具体内容,

从chuaike24的回答

“请高手 说实话 我是菜鸟 但你的程序感觉好凌乱 好多地方可以精简说最明显的问题 power函数返回值无论怎样都返回0 ”来看,我可能是没看到你的程序,所以信息不全。

我只回答什么是曲线拟合

曲线拟合,简单来说,是指以近似的方法用一条曲线逼近一组数据点。

逼近的方法最常用的事最小二乘法,当然也有其他方法。

逼近的曲线可以是直线,也可以是多项式曲线,二次,三次,多次,也可以是分段多项式曲线,也可以是B样条曲线。在这里,如果不需要深入研究,你只要把B样条曲线理解为一种近似于分段多项式曲线即可。

你问的不多,这些对你的回答已经足够,需要深入了解再问

C语言如何实现二次曲线拟合

首先,谁都不能根据仅有的数据集来断定这就是什么曲线。

我们只能通过对数据观察推测可能会符合什么形式的曲线。

已知10个数据点的训练集,可以采用多项式拟合的办法来做,但是不建议使用C语言来实现。

这种数学问题用matlab很容易就可以解决,c语言写要麻烦的多的多。比如你采用最小二乘法的话,

你需要自己用c语言写很多矩阵运算。

求最小二乘曲线的拟合的C语言程序

曲线拟合的最小二乘法

如有实验数据如下

求x=55处的近似值 并画出图形

x 0 10 20 30 40 50 60 70 80 90

y 68 67.1 66.4 65.6 64.6 61.8 61.0 60.8 60.4 60

#include "stdio.h"

#include "graphics.h"

double s(double x[],double y[],double x1)

{

double a,b,tmp1=0,tmp2=0,tmp3=0,tmp4=0,result;

int i=0;

for(;i10;i++)

{

tmp1+=x[i]*x[i];

tmp2+=y[i];

tmp3+=x[i];

tmp4+=x[i]*y[i];

}

b=(tmp1*tmp2-tmp3*tmp4)/(10*tmp1-tmp3*tmp3);

a=(10*tmp4-tmp2*tmp3)/(10*tmp1-tmp3*tmp3);

result=a*x1+b;

return result;

}

void hzbz(int x,int y)

{

int i,j;

line(0,y,1024,y);

moveto(x-200,y);

j=x-200;

for(i=0;i100;i++)

{

if(i%5!=0)

lineto(j,y-5);

else

lineto(j,y-8);

j=j+10;

moveto(j,y);

}

line(x,768,x,0);

moveto(x,y+200);

j=y+640;

for(i=0;i300;i++)

{

if(i%5!=0)

lineto(x+5,j);

else

lineto(x+8,j);

j=j-10;

moveto(x,j);

}

line(x,0,x-8,6);

line(x,0,x+8,6);

line(640,y,634,y-8);

line(640,y,634,y+8);

}

void main()

{

double x[]={0,10,20,30,40,50,60,70,80,90};

double y[]={68,67.1,66.4,65.6,64.6,61.8,61.0,60.8,60.4,60};

int graphdriver=DETECT,graphmode;

int i;

printf("x=55\ny=%lf\n",s(x,y,55));

getch();

initgraph(graphdriver,graphmode, "");

setbkcolor(BLUE);

hzbz(200,200);

moveto(200,200);

for(i=0;i200;i++)

lineto(i+200,-s(x,y,i)+200);

getch();

closegraph();

}

c语言曲线拟合问题

很简单 问题已经转化成 从文件读数据 数据类型转化  赋值到数组  这三步

#include "stdio.h"

#include stdlib.h

main()

{

int x[3] = {0}; //默认文件存了三个数据

FILE *fp1;//定义文件流指针,用于打开读取的文件

char text[1024];//定义一个字符串数组,用于存储读取的字符

fp1 = fopen("d:\\forecast1.txt","r");//只读方式打开文件a.txt

int i=0;

while(fgets(text,1024,fp1)!=NULL)//逐行读取fp1所指向文件中的内容到text中

{

int tmp = atoi(text);//输出到屏幕

x[i++] = tmp;

}

fclose(fp1);//关闭文件a.txt,有打开就要有关闭

}

y[i] 同理

C语言线性曲线拟合

可以直接在线进行拟合,下面是地址(已验证)

建议你直接对数据用Matlab的cftool拟合(可以自由的自定义拟合函数形式)


当前名称:拟合曲线函数C语言,拟合曲线函数c语言表示
本文链接:http://cdxtjz.cn/article/heiggg.html

其他资讯