我有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。我找到积分的代码都无效。
答案 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