我有一个非常小的数字除以非常小的数字,MATLAB给我Inf(当x
太小)或NaN(当x
为零时)。但正确的极限值应该是2.如何解决这个问题?要得到j
为2太小x
或x = 0
?MATLAB:非常小的数字除以非常小的数字
X = 0.000001
>> x = 0.000001
x =
1.0000e-06
>> j = 2*x*(1+(-1)*exp(-x))^(-1)*exp(-x)
j =
2.0000
X = 0.01
>> x = 0.01
x =
0.0100
>> j = 2*x*(1+(-1)*exp(-x))^(-1)*exp(-x)
j =
1.9900
X = 1E-19
>> x = 1e-19
x =
1.0000e-19
>> j = 2*x*(1+(-1)*exp(-x))^(-1)*exp(-x)
j =
Inf
x = 0的
>> x = 0
x =
0
>> j = 2*x*(1+(-1)*exp(-x))^(-1)*exp(-x)
j =
NaN
你能清理公式?我不明白你想要计算什么。我只能看到(-1)。* x,它是-x和exp(1)^某物只是exp(某物)。请不要让它过于复杂 –
@Andreas H.我已经做到了。你可以帮我吗? – kyle
“Inf”边界的快速解决方法。使用'min'函数:'f = @(x)min(2,2 * x * exp(-x)/(1-exp(-x)));' – Hoki