x = 1.00 , 1.01 , 1.02
f(x)=1.27 , 1.32 , 1.38
請使用中央差近似法計算
一次微分 f '(1.005) , f ' (1.015) 與 二次微分 f '' (1.01) 之值
程式
#中央近似差方法
# f' i = (f(i+1) - f(i-1)) / 2h
# f'' i = ( fi+1 - 2 fi + f i-1) / h^2
#============================================
x f(x) f'(x) f''(x)
1.00 1.27
1.005
1.01 1.32
1.015
1.02 1.38
============================================#
using Printf
x=[ 1.00 , 1.01 , 1.02 ]
f= [ [1.27 ,0.0 , 0.0 ],
[1.32 ,0.0 , 0.0 ],
[1.38 ,0.0 , 0.0 ] ]
xa=[1.005 , 1.015 ,1.01]
h=abs(x[2]-x[1])
i=1
s=@sprintf("f(%0.3f)的微分.......",xa[i])
println(s)
fd1=(f[i+1][1]- f[i][1]) / (h)
s=@sprintf("一次微分值= %0.4f ",fd1)
f[i][2]=fd1
println(s)
println("\n")
i=2
s=@sprintf("f(%0.3f)的微分.......",xa[i])
println(s)
fd1=(f[i+1][1]- f[i][1]) / (h)
s=@sprintf("一次微分值= %0.4f ",fd1)
f[i][2]=fd1
println(s)
println("\n")
i=2
s=@sprintf("f(%0.3f)的二次微分.......",xa[i+1])
println(s)
fd2=(f[i+1][1]- 2*f[i][1] + f[i-1][1]) / (h*h)
s=@sprintf("二次微分值= %0.4f ",fd2)
f[i][3]=fd2
println(s)
輸出畫面
f(1.005)的微分.......
一次微分值= 5.0000
f(1.015)的微分.......
一次微分值= 6.0000
f(1.010)的二次微分.......
二次微分值= 100.0000
沒有留言:
張貼留言