2014-12-02 46 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的一小部分。