在Matlab中集成

时间:2019-04-22 20:56:12

标签: matlab

我有3个等式:

f = (exp(-x.^2)).*(log(x)).^2 g = exp(-x.^2) h = (log(x)).^2

时间间隔是:

x = 0.05:10

我能够正确绘制方程,但是当我尝试找到一个积分时,它表示存在错误。

我用来查找积分的代码是:

integral(f,0,Inf) integral(g,0,inf) integral(h,0,10)

f和g的积分从0到无穷大,h的积分从0到10。我找到积分的代码都无效。

1 个答案:

答案 0 :(得分:1)

您需要将f,g,h定义为如下所示的函数。请参阅integrate()的文档,它以一个函数作为第一个参数。 Matlab integral documentation

x = 0.05:10
f = @(x) (exp(-x.^2)).*(log(x)).^2
g = @(x) exp(-x.^2)
h = @(x) (log(x)).^2
integral(f,0,Inf)  % 1.9475
integral(g,0,inf) % 0.8862
integral(h,0,10) % 26.9673
h = @(x) (log(x)).^2

此语法称为匿名函数,基本上它们是无名函数。在上述情况下,将x作为输入并返回log(x)平方。 从现在起h是一个函数,可以像这样使用。

h(1)  % will be equal 0

有关匿名函数的更多信息,请参考matlab匿名函数指南: Anonymous Functions