2014-12-04 100 views
0

我使用Matlab来计算一个确定的积分,它涉及自然常数e作为基础。Matlab以多种形式输出数字,而不是以浮点形式输出

这是我的输入和输出:

>> syms t 
    >> f=t/10^5*0.001*exp(-0.001*t); 
    >> int(f,t,0,5000) 

    ans = 

    1/100 - (3*exp(-5))/50 

我很奇怪,为什么我得到多个方面,而不是一个数值结果的结果?有什么办法可以解决这个问题吗?

+0

阅读有关Matlab的[符号数学工具箱(http://www.mathworks.com/help/symbolic/getting-started-with-symbolic-math-toolbox.html)在这里。或者,也许你不应该使用符号数学,在这种情况下,请看数字正交和['integral'](http://www.mathworks.com/help/matlab/ref/integral.html)函数。 – horchler 2014-12-04 16:22:58

回答

1

你不能这样做吗?

I = int(f,t,0,5000); 
double(I) 
+1

请参阅http://uk.mathworks.com/help/symbolic/double.html – am304 2014-12-04 12:02:43

+0

谢谢。那么为什么Matlab不直接输出确切的数字? – Bloodmoon 2014-12-04 12:09:48

+0

因为你在做符号计算,所以结果是一个符号表达式。如果你想要一个数值结果,你必须将它转换为正确的数据类型。 – am304 2014-12-04 12:17:28

相关问题