Using coeffs to extract a matrix
9 次查看(过去 30 天)
显示 更早的评论
I have a polynomial function of many symbolic variables, and I want to extract the 'coefficient matrix' from this polynomial. Every term in the polynomial has only two factors of these symbolic variables, i.e.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/358477/image.png)
The coefficient matrix I want to extract is the one that would produce precisely this polynomial if I evaluated the vector-matrix-vector product:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/358480/image.png)
where here x is a vector whose entries are all these symbolic variables, and Kis the coeffient matrix. In Mathematica, this is straightforward, there's a function called CoefficientArrays which performs exactly this operation. What is the best way to do this in Matlab? I have looked at the 'coeffs' function, but it doesn't appear to offer the same level of functionality as the Mathematica function I referenced.
0 个评论
采纳的回答
Matt J
2020-9-9
编辑:Matt J
2020-9-9
The coefficient matrix I want to extract is the one that would produce precisely this polynomial if I evaluated the vector-matrix-vector product:
Such a K matrix is not unique, but the hessian() command,
will give a symmetric solution for K. E.g.,
>> syms x y z
>> P = 3*y^2 + x*y + 2*z*x;
>> K = hessian(P,[x,y,z])/2
K =
[ 0, 1/2, 1]
[ 1/2, 3, 0]
[ 1, 0, 0]
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Number Theory 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!