- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C措辞最小二乘法
函数逼近与曲线拟合,用最小二乘法进行曲线拟合的C或C++编写的完整程序!
已知x 0 5 10 15 20 25 30 35 40 45 50 55 y 0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64 近似解析表达式为y=at+bt^2+ct^3
求a,b,c
曲线拟合: #include stdio.h #include stdlib.h #include malloc.h #include math.h Smooth(double *x,double *y,double *a,int n,int m,double *dt1,double *dt2,double *dt3); void main() { int i ,n ,m ; double *x,*y,*a,dt1,dt2,dt3,b; n = 12;// 12个样点 m = 4; //3次多项式拟合 b = 0; //x的初值为0 /*分别为x,y,a分配存贮空间*/ x = (double *)calloc(n,sizeof(double)); if(x == NULL) { printf(内存分配失败\n); exit (0); } y = (double *)calloc(n,sizeof(double)); if(y == NULL) { printf(内存分配失败\n); exit (0); } a = (double *)calloc(n,sizeof(double)); if(a == NULL) { printf(内存分配失败\n); exit (0); } for(i=1;i=n;i++) { x[i-1]=b+(i-1)*5; /*每隔5取一个点,这样连续取12个点*/ } y[0]=0; y[1]=1.27; y[2]=2.16; y[3]=2.86; y[4]=3.44; y[5]=3.87; y[6]=4.15; y[7]=4.37; y[8]=4.51; y[9]=4.58; y[10]=4.02; y[11]=4.64; /*x[i-1]点对应的y值是拟合已知值*/ Smooth(x,y,a,n,m,dt1,dt2,dt3); /*调用拟合函数*/ for(i=1;i=m;i++) printf(a[%d] = %.10f\n,(i-1),a[i-1]); printf(拟合多项式与数据点偏差的平方和为:\n); printf(%.10e\n,dt1); printf(拟合多项式与数据点偏差的绝对值之和为:\n); printf(%.10e\n,dt2); printf(拟合多项式与数据点偏差的绝对值最大值为:\n); printf(%.10e\n,dt3); free(x); /*释放存储空间*/ free(y); /*释放存储空间*/ free(a); /*释放存储空间*/ } Smooth(double *x,double *y,double *a,int n,int m,double *dt1,double *dt2,double *dt3)//(x,y,a,n,m,dt1,dt2,dt3 ) //double *x; /*实型一维数组,输入参数,存放节点的xi值*/ //double *y; /*实型一维数组,输入参数,存放节点的yi值*/ //double *a; /*双精度实型一维数组,长度为m。返回m一1次拟合多项式的m个系数*/ //int n; /*整型变量,输入参数,给定数据点的个数*/ //int m; /*整型变量,输入参数,拟合多项式的项数*/ //double *dt1; /*实型变量,输出参数,拟合多项式与数据点偏差的平方和*/ //double *dt2; /*实型变量,输出参数,拟合多项式与数据点偏差的绝对值之和*/ //double *dt3; /*实型变量,输出参数,拟合多项式与数据点偏差的绝对值最大值*/ { int i ,j ,k ; double *s,*t,*b,z,d1,p,c,d2,g,q,dt; /*分别为s ,t ,b分配存贮空间*/ s = (double *)calloc(n,sizeof(double)); if(s == NULL) { printf(内存分配失败\n); exit (0); } t = (double *)calloc(n,sizeof(double)); if(t == NULL) { printf(内存分配失
您可能关注的文档
- 20第二十章 蛋白质和核酸.ppt
- 21_excel_高级使用技巧.doc
- 21影视前期制作.doc
- 22380_土建计算公式大全.doc
- 23.1图形的旋转练习.ppt
- 2500吨起吊船设计与建造关键.ppt
- 22 第二十二讲 九年级 Units 13~15.ppt
- 23旋转(复习课件)1.ppt
- 2013英语(一)考试大纲.doc
- 24骨气按摩介绍.doc
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)