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