2014-12-02 49 views
0

我想比較兩個浮點數,如果它更大,設置tempdiffer不同,但它總是以最後的函數值結束。這是非常基本的,但它沒有設置不同的最高價值。任何人都可以將我指向正確的方向嗎?比較兩個浮動不工作楓葉18

with(orthopoly): 
chebpade(BesselJ(1, x), x = -1 .. 1, [3, 4]): 
Ttest := subs(T = orthopoly[T], chebpade(BesselJ(0, x), x = -1 .. 1, [3, 4])): 
plot([Ttest, BesselJ(0, x)], x = -1 .. 1); 
b := evalf(subs(x = -1, BesselJ(0,x))): 
t := evalf(subs(x = -1, Ttest)): 
differ := abs(t-b/t): 
for i from -1 by 1 to 1 do 
    b := evalf(subs(x = i, BesselJ(0,x))): 
    t := evalf(subs(x = i, Ttest)): 
    tempdiffer := abs(t-b/t): 
    if tempdiffer > differ then 
     differ := tempdiffer; 
    end if: 
end do; 

回答

2

您需要約t-b附近的人。

您正在計算abs(t - (b/t)),它給你t給出或佔用一小部分(假設bt幾乎相等)。你想要的是abs((t - b)/t),它會給你他們的差異作爲t的一小部分。