Finding coefficients of variables of specific powers

11 vues (au cours des 30 derniers jours)
Connor LeClaire
Connor LeClaire le 4 Déc 2021
Commenté : Connor LeClaire le 4 Déc 2021
Hello,
I am trying to find coefficients of variables of specific powers, or of 2+ variables multiplied together, however I am running into issues.
Problem 1:
syms x
y = x^2 + 3;
disp(coeffs(y,x));
The equation y does not include a x^1 term, however the returned matrix from coeffs is (3 1) which could be the same for the equation y = x + 3. I need something like (3 0 1) to show zero coefficients of intermediate powers of the variable.
Problem 2:
Trying to find coefficients of multiple variables. For instance z = x^2*y + 3y + 5x^2 +4y^2 + 3xyr + 5
If I try to find the coefficients of xy I want it to return 3r and ignore the x^2y term. Is there an easy way to do this or is it a nested (or 2-line) coeffs? If so this also runs into problem #1 should the equation not include the powers of that variable.
Thanks!

Réponse acceptée

Voss
Voss le 4 Déc 2021
Problem 1: Try using the 'All' flag in your call to coeffs.

Plus de réponses (1)

Steven Lord
Steven Lord le 4 Déc 2021
syms x y r
z = x^2*y + 3*y + 5*x^2 +4*y^2 + 3*x*y*r + 5
z = 
[coeffsOfX, powersOfX] = coeffs(z, x, 'all')
coeffsOfX = 
powersOfX = 
[coeffsOfX2y, powersOfY] = coeffs(coeffsOfX(powersOfX == x^2), y, 'all')
coeffsOfX2y = 
powersOfY = 
coefficientOfX2NoY = coeffsOfX2y(powersOfY == 1)
coefficientOfX2NoY = 
5
  2 commentaires
Connor LeClaire
Connor LeClaire le 4 Déc 2021
This is great! I would accept the answer if I hadn't posted 2 different problems in the question... sorry
Connor LeClaire
Connor LeClaire le 4 Déc 2021
Should there exist no 2nd order power of x for example, using the index of powersOfX == x^2 throw an error?

Connectez-vous pour commenter.

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by