用C语言实现的曲线拟合的最小二乘法

用C语言实现的曲线拟合的最小二乘法

ID:41712834

大小:64.35 KB

页数:12页

时间:2019-08-30

用C语言实现的曲线拟合的最小二乘法_第1页
用C语言实现的曲线拟合的最小二乘法_第2页
用C语言实现的曲线拟合的最小二乘法_第3页
用C语言实现的曲线拟合的最小二乘法_第4页
用C语言实现的曲线拟合的最小二乘法_第5页
资源描述:

《用C语言实现的曲线拟合的最小二乘法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验名称:曲线拟合的最小二乘法实验目的了解曲线拟合的最小二乘法实验类型设计型实验环境WindowsXPTC实验内容相关知识:已知C[a,b]中函数f(x)的一组实验数据(xj,yi)(i二0,1,・・・,ni),其中yi二f(xj。设(pj(x)(./=0,1,•••,/?;/?

2、(/,久)=工啖兀)/(兀)久(兀)三久k=0,1,—,n/=0特别是,求函数f(x)曲线拟合的线性最小二乘解Sx)=ax^-b的计算公式为:(工斤)(工X)-(工兀)(工兀X)b—心0i=0i=0i=0(加z=0Z=0(加+1)工兀x-(工无)(工y)/=0i=0Z=0a_后扁(加+i)£#—(£兀)21=0<=0数据结构:两个一维数组或一个二维数组算法设计:(略)实验用例:已知函数y二f(x)的一张表:X0102030405060708090y6867.166.465.664.661.861.060.860.460试验要求:利

3、用曲线拟合的线性最小二乘法求被逼近函数r(x)在点x=55处的近似值,并画岀实验数据和直线。编写代码:#include#include#includedoubleqiuhel(doublea[10][2],intp){inti;doubley;y二0;for(i=0;i<10;i++)y=y+a[i][p];returny;doubleqiuhc2(doublea[10][2],intp){inti;doubley=0;for(i=0;i<10;i++)y二y+a[i][

4、0]*a[i][p];returny;idoublenihe(doublea[10][2],doublex){doubleal,b,y;al=(10*qiuhe2(a,1)-qiuhel(a,0)*qiuhel(a,1))/(10*qiuhe2(a,0)-qiuhel(a,0)*qiuhe1(a,0));b=(qiuhe2(a,O)*qiuhel(a,l)-qiuhel(a,0)*qiuhe2(a,1))/(10*qiuhe2(a,O)-qiuhel(a,0)*qiuhel(a,0));y二al*x+b;returny;!intma

5、in(){doublea[10][2]={0,68,10,67.1,20,66.4,30,65.6,40,64.6,50,61.8,60,61.0,70,60.&80,60.4,90,60};doublex,xl,q二1;charc[12];inti;longn;intarw[6]={515,235,520,240,515,245};intarwl[6]={315,45,320,40,325,45};intgdriver=IBM8514;intgmode=IBM8514HI;initgraph(&gdrivcr,&gmode,"c:

6、\TC20\BGI〃);cleardeviceO;printf(,zinputx:〃);scanf&x);printf(,,%f,/,nihe(a,x));n=nihe(a,x)*1000000+1;c[0]=y;c[l]==;c[4]=/;for(i=10;i>l;i--){if(i!=4)c[i]=n%10+48;n=n/10;}c[n]=o,;xl=x;setbkcolor(7);setcolor(14);setlinestyle(O,0,3);drawpoly(3,arw);drawpoly(3,arw1);l

7、ine(120,240,520,240);line(320,40,320,440);x二0;setcolor(2);setlincstyle(0,0,1);line((0+320),(int)(240-nihe(a,0)*q),(90+320),(int)(240-nihe(a,90)*q));setcolor(3);outtextxy(320,30,〃Y");outtextxy(310,245,〃0〃);outtextxy(525,240,〃X");outtextxy((xl+330),((240-nihe(a,xl))TO),c

8、);settextstyle(4,0,4);outtextxy(450,400,"Nihe.・・〃);for(i=0;i<=9;i++)putpixel((a[i][0]+320),(240-a[i][l]*q),11);setcol

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。