以下是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.
有人可以帮我写这段代码吗?
答案 0 :(得分:2)
要解决此问题,需要matlabFunction
。解决方案如下所示:
syms x y
f = @(x, y) x.*y.^2;
Df = matlabFunction(subs(diff(f,y),y,2));
Int = integral(Df , 0 , 1);
答案 1 :(得分:0)
使用sym/int
:
syms x y;
f = @(x, y) x.*y.^2;
Df = diff(f,y);
s = int(Df,x,0,1)
返回y
。您可以在此处或之前将2
替换为y
,就像您在问题中所做的那样。并不是说这会给你一个确切的答案,在这种情况下没有浮点错误,而不是integral
以数字方式计算积分。
在Matlab中搜索函数时,请务必注意它们所处的工具箱以及它们为其参数支持的类(数据类型)。在某些情况下,存在具有相同名称的重载版本,但在其他情况下,您可能需要四处寻找不同的方法(或设计自己的方法)。