我正在尝试比较两个浮点数,如果它更大,则将tempdiffer设置为不同,但它总是以最后一个函数值结束。这是非常基本的,但它没有设置与最高值不同。有人能指出我正确的方向吗?
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;
答案 0 :(得分:2)
你需要t-b
附近的parens。
您正在计算abs(t - (b / t))
,这会让您t
给出或取一小部分(假设b
和t
几乎相等)。您想要的是abs((t - b) / t)
,它会将您的差异作为t
的一小部分。