我们并没有用f(a)*f(b)<0这个简洁的逻辑表达式来判断函数f(x)在区间端点的函数值是否异号。原因是两个数的乘积可能导致下溢,被当做机器零处理。从而导致对函数符号的检测出错,而且这种错误很难发现。使用matlab的sign函数判别比较可靠。
例如:
format long
fa=1e-120;fb=-2e-300;
fa*fb
ans=0
sign(fa)~=sign(fb)
ans=1
matlab笔记
最新推荐文章于 2025-05-30 15:26:08 发布
我们并没有用f(a)*f(b)<0这个简洁的逻辑表达式来判断函数f(x)在区间端点的函数值是否异号。原因是两个数的乘积可能导致下溢,被当做机器零处理。从而导致对函数符号的检测出错,而且这种错误很难发现。使用matlab的sign函数判别比较可靠。
例如:
format long
fa=1e-120;fb=-2e-300;
fa*fb
ans=0
sign(fa)~=sign(fb)
ans=1