【发布时间】:2016-01-19 03:08:36
【问题描述】:
我在 Matlab 中有以下功能:
f = @(x)[x(1,:)+2*x(2,:)+x(3,:);x(1,:).^3+x(2,:).^2+3*x(3,:)]
如何在 Matlab 中找到该函数的雅可比矩阵?
我尝试过使用函数 jacobian,但我无法让它适用于这个特定的函数。有人可以帮助我正确的论点吗?
【问题讨论】:
-
我认为您正在寻找 jacobian,它计算指定函数和变量的偏导数:uk.mathworks.com/help/symbolic/jacobian.html?refresh=true
-
我试过使用这个函数,但我不知道我的函数的第二个参数 v 是什么?我尝试调用:jacobian(f,x),但它不起作用。你能帮我解决吗?
-
v是向量函数f导出的变量向量。您无法计算匿名函数的雅可比,您需要使用符号数学工具箱并使用syms创建符号变量。查看文档中给出的示例 (doc symbolic/jacobian)。 -
即使我先写:sym x,然后 jacobian(f,x) 我得到错误:使用 mupadmex 时出错 MuPAD 命令中的错误:输入无效。 '表达式'是预期的。 [第 1 行,第 23 列] sym/jacobian 中的错误(第 34 行) Jsym = mupadmex('symobj::jacobian',F.s,x.s);我做错了什么?
-
我刚刚告诉过你,你不能像你在问题中尝试的那样计算匿名函数的雅可比。查看文档中的示例!您可能需要执行
syms x y z和jacobian([x+2*y+z, x^3+y^2+3*z], [x,y,z])之类的操作,因为我没有符号数学工具箱,所以无法尝试。
标签: matlab