2014-12-02 3 views
0

Я пытаюсь сравнить два числа с плавающей запятой, и если он больше, установите темпдиффер для разных, но он всегда заканчивается последним значением функции. Это довольно простой, но он не отличается от самого высокого значения. Может кто-то указать мне верное направление?Сравнение двух поплавков, не работающих Maple 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 дать или взять небольшую часть (при условии, b и t почти равны). То, что вы хотите, - abs((t - b)/t), что даст вам разницу в размере t.