How can I set higher-order to1

10 views (last 30 days)
Yanjun Wu
Yanjun Wu on 18 Nov 2019
Answered: Jyothis Gireesh on 21 Nov 2019
For example, I have a function
f1=x^3*y^2*z+x^2*z+x^2*y*z^3;
let x^n=x,y^n=y,z^n=z,
so my function becomes
f1=x*y*z+x*z+x*y*z
=2x*y*z+x*z
Is there a built-in command to realize it?

Answers (1)

Jyothis Gireesh
Jyothis Gireesh on 21 Nov 2019
There may not be an in-built function to replace all the higher order terms in a polynomial with their corresponding single order terms.
But, you may use the following workaround which makes use of symbolic substitution function subs()” to achieve the same result.
clear;
syms x y z f1(x,y,z);
f1(x,y,z) = x^3*y^2*z + x^2*z + x^2*y*z^3;
n = 3;
f2 = subs(f1(x,y,z),[x.^(2:n) y.^(2:n) z.^(2:n)],[repelem(x,n-1) repelem(y,n-1) repelem(z,n-1)]);
Here “n” is the highest power of all the variables in the polynomial.
Please refer to the following documentation which explains about simultaneously performing multiple substitutions in a symbolic function.
Hope this helps!!

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!