符号表达式系数主要分为常数型和符号型,接下来就这两种类型分别进行说明。
1、常数型系数提取
使用函数:sym2poly
函数作用:提取多项式数值型系数,包括零项
调用方法:c = sym2poly(p),c为返回的系数,p为多项式表达式
示例如下:
syms x
fun = 0.8*x^5-1.5*x^3 - 1.8*x + 3.14;
c = sym2poly(fun);
上式结果为:0.8000 0 -1.5000 0 -1.8000 3.1400
2、符号型系数提取
a、使用coeffs
函数作用:提取多项式系数,数值型与符号型皆可
调用方法:[C,T] = coeffs(___),C为返回的系数,T为对应多项式项
示例如下:
syms x y
funx = x^3 + 2*x^2*y + 3*x*y^2 + 4*y^3;
funy = x^3 + 2*x^2*y + 3*x*y^2 + 4*y^3;
[cx,tx] = coeffs(funx, x);
[cy,ty] = coeffs(funy, y);
运行结果
cx = [ 1, 2*y, 3*y^2, 4*y^3]
tx = [ x^3, x^2, x, 1]
cy = [ 4, 3*x, 2*x^2, x^3]
ty = [ y^3, y^2, y, 1]
b、使用sym2polys (由Paul Godfrey编写)
函数作用:提取多项式系数,数值型与符号型皆可
调用方法:C = sym2polys(fun),C为返回的系数,fun为对应多项式
示例如下:
syms a b c d x y
funx = a*c*x^3 + b*d*x^2*y + c*d*x*y^2 + d^2*y^3;
funy = b*d*x^3 + a*c*x^2*y + b*c*x*y^2 + 4*c*y^3;
cx = sym2polys(funx, 'x');
cy = sym2polys(funy, 'y');
运行结果
cx = [ a*c, b*d*y, c*d*y^2, d^2*y^3]
cy = [ 4*c, b*c*x, a*c*x^2, b*d*x^3]
小编运行sym2polys函数时发现运行错误,小编已做修改,需要修改版函数的小伙伴,请直接matlab爱好者公众号中回复"系数"即可获取。
以上就是今天的全部内容,如有问题,请留言或加群讨论!
参考资料:
[1] https://ww2.mathworks.cn/help/symbolic/sym2poly.html
[2] https://ww2.mathworks.cn/help/symbolic/coeffs.html
[3] https://ww2.mathworks.cn/matlabcentral/fileexchange/5805-sym2polys