1

下面是一个 MATLAB 问题。

假设我定义了一个函数 f(x,y)。我想计算 f 对 y 的偏导数,以特定的 y 值进行评估,例如 y=6。最后,我想在 x 的范围内集成这个新函数(它只是 x 的一个函数)。

例如,这是我尝试过的

syms x y; f = @(x, y) x.*y.^2; Df = subs(diff(f,y),y,2); Int = integral(Df , 0 , 1),

但我收到以下错误。

Error using integral (line 82) First input argument must be a function handle.

谁能帮我写这段代码?

4

2 回答 2

2

为了解决问题,matlabFunction需要。解决方案如下所示:

syms x y
f = @(x, y) x.*y.^2;
Df = matlabFunction(subs(diff(f,y),y,2));
Int = integral(Df , 0 , 1);
于 2014-12-15T18:48:20.280 回答
0

保持这一切都是象征性的,使用sym/int

syms x y;
f = @(x, y) x.*y.^2;
Df = diff(f,y);
s = int(Df,x,0,1)

返回y2您可以在此处或更早的地方替换,y就像您在问题中所做的那样。并不是说在这种情况下这会给你一个没有浮点错误的准确答案,而不是用integral数值计算积分。

当在 Matlab 中搜索函数时,请务必注意它们所在的工具箱以及它们支持的参数类(数据类型)。在某些情况下,存在同名的重载版本,但在其他情况下,您可能需要四处寻找不同的方法(或设计自己的方法)。

于 2014-12-15T22:07:14.030 回答