C語言 例題3-2 一下表求f'(x)一階微分值
x f(x) f'(x)
====================
-0.3 -0.20431 ????
-0.1 -0.08993 ????
0.1 0.11007 ????
0.3 0.39569 ????
x=[-0.3 , -0.1 , 0.1 , 0.3]
f=[-0.20431 , -0.08993 , 0.11007 , 0.39569]
'''
(A) 向前差近似 (三點)
fi' = [ -f(i+2) + 4f(i+1) -3 f(i) ] / 2h ,
O(h) = 1/3 * h*h * < fi 三次微分 >
(B) 向後差近似(三點)
fi' = [ 3f(i) - 4f(i-1) + f(i-2) ] / 2h ,
O(h) = 1/3 * h*h * < fi 三次微分 >
(C) 中央近似 (雙點)
fi' = [f(i+1) - f(i-1)] / 2h ,
O(h) = -1/6 * h *h * < fi 三次微分 >
中央近似沒有三點
'''
#include <stdio.h>
#include <math.h>
int main()
{
double x[] = {-0.3 , -0.1 ,0.1 ,0.3 } ;
double f[] = {-0.20431 , -0.08993 , 0.11007 ,0.39569 };
int i=0;
double h=x[1]-x[0] ;
double cal;
cal = (-f[i+2] + 4*f[i+1] -3*f[i] ) / (2*h) ;
printf("向前差近似 (三點) : %lf\n",cal);
i=1;
cal = (-f[i+2] + 4*f[i+1] -3*f[i] ) / (2*h) ;
printf("向前差近似 (三點) : %lf\n",cal);
i=1;
cal = (f[i+1] - f[i-1]) / (2*h) ;
printf("中央近似 (三點) : %lf\n",cal);
i=2;
cal = (f[i+1] - f[i-1]) / (2*h) ;
printf("中央近似 (三點) : %lf\n",cal);
i=2;
cal = (3*f[i] - 4*f[i-1] + f[i-2]) / (2*h) ;
printf("向後差近似(三點) : %lf\n",cal);
i=3;
cal = (3*f[i] - 4*f[i-1] + f[i-2]) / (2*h) ;
printf("向後差近似(三點) : %lf\n",cal);
return 0;
}
輸出畫面
向前差近似 (三點) : 0.357850
向前差近似 (三點) : 0.785950
中央近似 (三點) : 0.785950
中央近似 (三點) : 1.214050
向後差近似(三點) : 1.214050
向後差近似(三點) : 1.642150
...Program finished with exit code 0
Press ENTER to exit console.
2019年4月26日 星期五
訂閱:
張貼留言 (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 + * 後 序式的運算 例如: 運算時由 後序式的...
沒有留言:
張貼留言