C語言 例題1-8 已知下面5點座標
x f(x)
===========
0 0
1 -3
2 0
3 15
4 48
===========
建立牛頓差除表 並計算 P(1.5)之值
程式
#include<stdio.h>
#define MAXN 100
#define ORDER 4
main()
{
float ax[MAXN+1], ay [MAXN+1], diff[MAXN+1][ORDER+1], nr=1.0, dr=1.0,x,p,h,yp;
int n,i,j,k;
//printf("\nEnter the value of n:\n");
scanf("n=%d",&n);
//printf("\nEnter the values in form x,y:\n");
for (i=0;i<=n;i++)
scanf("%f %f",&ax[i],&ay[i]);
//printf("\nEnter the value of x for which the value of y is wanted: \n");
scanf("%f",&x);
h=ax[1]-ax[0];
//now making the difference table
//calculating the 1st order of differences
for (i=0;i<=n-1;i++)
{
diff[i][1] = ay[i+1]-ay[i];
}
//now calculating the second and higher order differences
for (j=2;j<=ORDER;j++)
{
for(i=0;i<=n-j;i++)
{
diff[i][j] = diff[i+1][j-1] - diff[i][j-1];
}
}
//now finding x0
i=0;
while (!(ax[i]>x))
i++;
//now ax[i] is x0 and ay[i] is y0
i--;
p = (x-ax[i])/h;
yp = ay[i];
//now carrying out interpolation
for (k=1;k<=ORDER;k++)
{
nr *=p-k+1;
dr *=k;
yp +=(nr/dr)*diff[i][k];
}
printf("\nWhen x = %6.1f, corresponding y = %0.4f\n",x,yp);
}
輸入資料
n=4
0.0 0.0
1.0 -3.0
2.0 0.0
3.0 15.0
4.0 48.0
1.5
輸出畫面
When x = 1.5, corresponding y = -2.6250
訂閱:
張貼留言 (Atom)
2024_09 作業3 以Node-Red 為主
2024_09 作業3 (以Node-Red 為主 Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker 2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...
-
python pip 不是内部或外部命令 -- 解決方法 要安裝 Pyqt5 1. 首先,開啟命令提示字元。 2. 輸入 pip3 install pyqt5 好像不能執行 ! ! 錯誤顯示 : ‘ pip3 ’ 不是內部或外部命令、可執行的程式或批...
-
課程講義 下載 11/20 1) PPT 下載 + 程式下載 http://www.mediafire.com/file/cru4py7e8pptfda/106%E5%8B%A4%E7%9B%8A2-1.rar 11/27 2) PPT 下載...
-
• 認 識 PreFix、InFix、PostFix PreFix(前序式):* + 1 2 + 3 4 InFix(中序式): (1+2)*(3+4) PostFix(後序式):1 2 + 3 4 + * 後 序式的運算 例如: 運算時由 後序式的...
沒有留言:
張貼留言