Matlab 二次型因式分解符号表达式

Matlab 二次型因式分解符号表达式,matlab,symbolic-math,Matlab,Symbolic Math,假设我在Matlab中有这样一个符号方程 syms x y z real T = 2*x^2 + k*y^2 + 6*k*x*y 我怎样才能找到矩阵B,使得 T = [x y] * B * [x y]' 谢谢你的帮助。我不确定我是否理解这里的问题。如果你知道这些系数,你就不能从方程中提取它们,然后从中创建B吗 即: 所以 嗯。我刚刚自己解决了这个问题 B = 0.5 * jacobian(jacobian(T,V),V) 其中V是变量向量 这个解释有点数学化。如果你想了解更多详情,请告诉

假设我在Matlab中有这样一个符号方程

syms x y z real

T = 2*x^2 + k*y^2 + 6*k*x*y
我怎样才能找到矩阵B,使得

T = [x y] * B * [x y]'

谢谢你的帮助。

我不确定我是否理解这里的问题。如果你知道这些系数,你就不能从方程中提取它们,然后从中创建B吗

即:

所以


嗯。我刚刚自己解决了这个问题

B = 0.5 * jacobian(jacobian(T,V),V)
其中
V
是变量向量


这个解释有点数学化。如果你想了解更多详情,请告诉我。:)

是的,但我不知道如何从原始方程中自动提取这个系数。你能给出你用来创建方程的代码吗?(我从未使用过它们,所以我不知道如何创建“等式”对象。)这是一个非常复杂的公式:(这是3R机器人操纵器的动能。不过,我在我的问题中添加了更多关于matlab中符号公式的细节。啊,但我不需要得到你的精确公式。你能给我一些matlab代码,创建一个与你的方程类型相同的对象吗?然后我可以玩一下,看看我能否提取系数。在M中atlab2013a有hessian函数
B = [ a 0 ; b e ]
B = 0.5 * jacobian(jacobian(T,V),V)