【发布时间】:2017-03-08 22:49:03
【问题描述】:
我正在尝试定义一个看起来有点像这样的函数:
function u = expectedutility(x)
u = int(utility(x,I)*density(I),I,-10,10)
function t = utility(x,I)
m = x+I
if m>=0 u = m^(1/2)
else u = -2*((-m)^(1/2))
end
end
function s = density(I)
s = 1/20
end
end
在上面的示例中,我使用了上限 10 和下限 -10 的均匀分布,但我希望能够对其进行概括,以便函数密度(I)可以是随机变量 I 的任何 pdf . 另外我知道我可以使用分段(。)来指定实用程序,但我使用的是 2016a,所以它不在我的 Matlab 版本上。
基本上我的问题是每当我点击"expectedutility(2)" 时都会收到错误提示
"Undefined function 'int' for input arguments of type 'double'."
我希望 'int' 集成关于 I 的函数,插入 -10 和 10 说,然后让我观察 u 的不同 x 值。
提前致谢
【问题讨论】:
-
你在找
integral吗? -
嗯,我希望将多个变量的函数与其中一个变量进行数值积分。这会给我一个关于许多不同变量的答案,我认为数值积分只是为了给出数值答案?
-
您提供的代码中没有任何内容使其成为非数字。
-
恐怕我不太明白你的意思 - 在我的代码的第二行中,我希望得到一个以变量 x 表示的表达式,而不仅仅是一个数字.因此表达式不是数字 - 也许我错误地使用了“数字”这个词?无论哪种情况,如果我可以使用“集成”功能来解决我的问题,我将不胜感激。
-
你说“我打了
expectedutility(2),我得到了错误”。如果x是象征性的,那么你应该这样定义。如果你做expectedutility(2),那么x=2,因此是数字。因为.... 2 是一个数字...