在matlab中绘图有困难

时间:2016-05-16 11:04:04

标签: matlab plot

我正在尝试在Matlab中绘制一个函数,但我得到的只是一条直线。

我正在使用的代码是:

De = 6.22238*1e-5;
alpha = 3.0662*1e5;
re = 2.666;

r = -1:1/100:5;

V = De * (1-exp(alpha*(re-r))).^2
plot(r,V);

但我得到的只是一条直线。情节应该看起来像这样:http://chemwiki.ucdavis.edu/@api/deki/files/55194/=mHj1k.png?revision=1

这些数字是否太小,所以matlab只是将所有内容都整理好了?

请帮忙!

1 个答案:

答案 0 :(得分:2)

你的一些子函数尤其是指数函数溢出,这种溢出导致Matlab将此值视为无穷大。在您的代码中,exp(alpha *(re-r))的输出值将导致:

  • 无穷大,如果重新>> [R
  • 1如果re = r
  • 0如果re<< [R

为了防止这个问题,我们使用一个技巧,例如,如果我们想要计算(非常大的数字)* exp(非常小的数字),首先我们将公式更改为等于公式:exp(Log(非常大的数字) )*(非常小的数字)) 正如您所看到的,Log(非常大的数字)将导致较小的数字,并且我们希望Log(非常大的数字)*(非常小的数字)结果为中等值,这将不会使问题遇到指数函数。