91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 547KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-15
  • 語言: C/C++
  • 標簽: C語言??polyfit??

資源簡介

用C語言實現polyfit多項式擬合,已知離散點上的數據集,即已知在點集上的函數值,構造一個解析函數(其圖形為一曲線)使在原離散點上盡可能接近給定的值。

資源截圖

代碼片段和文件信息

//?shacha.cpp?:?Defines?the?entry?point?for?the?console?application.
//

#include?“stdafx.h“
//#include?“system.h“
#include?

//?polyfit.cpp?:?定義控制臺應用程序的入口點。


/**********************************************
?*Author??:wacs5
?*DATE??:20090408(YYYMMDD)
?*Functtion??:多項式擬合polyfit
?**********************************************/
#include?
#include?
#include?
#include?
void?main()
{
?int?in=7poly_n=2;
?double?x[7]y[7];
?double?a[3];
?printf(“請輸入%d個x“n);
?printf(“\n“);
?scanf(“%lf?%lf?%lf?%lf?%lf?%lf?%lf“?x?x+1?x+2?x+3?x+4?x+5?x+6);
?printf(“請輸入%d個y“n);
?printf(“\n“);
?scanf(“%lf?%lf?%lf?%lf?%lf?%lf?%lf“?y?y+1?y+2?y+3?y+4?y+5?y+6);
?void?polyfit(int?ndouble?x[]double?y[]int?poly_ndouble?a[]);
?system(“cls“);
?polyfit(nxypoly_na);
?
?for?(i=0;i?????printf(“a[%d]=%g\n“ia[i]);
?getch();
}


/*==================polyfit(nxypoly_na)===================*/
/*=======擬合y=a0+a1*x+a2*x^2+……+apoly_n*x^poly_n========*/
/*=====n是數據個數??xy是數據值??poly_n是多項式的項數======*/
/*===返回a0a1a2……a[poly_n],系數比項數多一(常數項)=====*/
void?polyfit(int?ndouble?x[]double?y[]int?poly_ndouble?a[])
{
?int?ij;
?double?*tempx*tempy*sumxx*sumxy*ata;
?void?gauss_solve(int?ndouble?A[]double?x[]double?b[]);
?tempx=(double?*)calloc(nsizeof(double));
?sumxx=(double?*)calloc(poly_n*2+1sizeof(double));
?tempy=(double?*)calloc(nsizeof(double));
?sumxy=(double?*)calloc(poly_n+1sizeof(double));
?ata=(double?*)calloc((poly_n+1)*(poly_n+1)sizeof(double));
?for?(i=0;i?????{
??????tempx[i]=1;
??????tempy[i]=y[i];
?????}
?for?(i=0;i<2*poly_n+1;i++)
?????for?(sumxx[i]=0j=0;j???{
????sumxx[i]+=tempx[j];
????tempx[j]*=x[j];
???}
?for?(i=0;i????for?(sumxy[i]=0j=0;j???{
????sumxy[i]+=tempy[j];
????tempy[j]*=x[j];
???}
?for?(i=0;i?????for?(j=0;j??ata[i*(poly_n+1)+j]=sumxx[i+j];
?gauss_solve(poly_n+1ataasumxy);
?
?free(tempx);
?free(sumxx);
?free(tempy);
?free(sumxy);
?free(ata);
}

void?gauss_solve(int?ndouble?A[]double?x[]double?b[])
{
?int?ijkr;
?double?max;
?//把ata擁有最大斜對角值的行換到第一行,從大到小依次排列,把b按大小依次排列
?for?(k=0;k?????{
??????max=fabs(A[k*n+k]);?/*find?maxmum,假設右斜線都是最大值*/
??????r=k;
??????for?(i=k+1;i???if?(max??????{
???????max=fabs(A[i*n+i]); //假設此時max小于其右邊斜對角的哪個值,將那個最大值賦予max,并記下行號
???????r=i;
??????}
??????if?(r!=k) //假設斜角上的值在當前行不是最大值的話
??for?(i=0;i??????{
???????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; //ata的一行對應b的一個數,將變換后的ata與b的序號對應
??????for?(i=k+1;i???{
????for?(j=k+1;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

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-05-23?22:13??polyfit\
?????目錄???????????0??2013-05-23?22:13??polyfit\debug\
?????文件???????40960??2013-05-22?22:33??polyfit\debug\polyfit.exe
?????文件??????329428??2013-05-22?22:33??polyfit\debug\polyfit.ilk
?????文件??????355328??2013-05-22?22:33??polyfit\debug\polyfit.pdb
?????目錄???????????0??2013-08-31?18:36??polyfit\polyfit\
?????目錄???????????0??2013-05-23?22:13??polyfit\polyfit\Debug\
?????文件????????8906??2013-05-22?22:33??polyfit\polyfit\Debug\BuildLog.htm
?????文件??????????65??2013-05-22?22:33??polyfit\polyfit\Debug\mt.dep
?????文件?????????403??2013-05-21?20:38??polyfit\polyfit\Debug\polyfit.exe.embed.manifest
?????文件?????????468??2013-05-21?20:38??polyfit\polyfit\Debug\polyfit.exe.embed.manifest.res
?????文件?????????385??2013-05-22?22:33??polyfit\polyfit\Debug\polyfit.exe.intermediate.manifest
?????文件???????11208??2013-05-22?22:33??polyfit\polyfit\Debug\polyfit.obj
?????文件?????1048576??2013-05-21?20:38??polyfit\polyfit\Debug\polyfit.pch
?????文件???????10613??2013-05-21?20:38??polyfit\polyfit\Debug\stdafx.obj
?????文件???????68608??2013-05-22?22:33??polyfit\polyfit\Debug\vc80.idb
?????文件??????110592??2013-05-22?22:33??polyfit\polyfit\Debug\vc80.pdb
?????文件?????????950??2013-05-21?17:08??polyfit\polyfit\ReadMe.txt
?????文件????????3339??2013-05-22?22:29??polyfit\polyfit\polyfit?-?副本.cpp
?????文件????????3392??2013-05-22?22:33??polyfit\polyfit\polyfit.cpp
?????文件????????4487??2013-05-21?17:08??polyfit\polyfit\polyfit.vcproj
?????文件????????1419??2013-05-22?22:41??polyfit\polyfit\polyfit.vcproj.liguojun-PC.liguojun.user
?????文件????????4885??2013-05-25?00:46??polyfit\polyfit\polyfit1.cpp
?????文件?????????212??2013-05-21?17:08??polyfit\polyfit\stdafx.cpp
?????文件?????????276??2013-05-21?17:08??polyfit\polyfit\stdafx.h
?????文件??????633856??2013-05-22?22:41??polyfit\polyfit.ncb
?????文件?????????886??2013-05-21?17:08??polyfit\polyfit.sln
?????文件????????7680??2013-05-22?22:41??polyfit\polyfit.suo

評論

共有 條評論