Filter löschen
Filter löschen

Finding coefficients of variables of specific powers

6 Ansichten (letzte 30 Tage)
Connor LeClaire
Connor LeClaire am 4 Dez. 2021
Kommentiert: Connor LeClaire am 4 Dez. 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!

Akzeptierte Antwort

Voss
Voss am 4 Dez. 2021
Problem 1: Try using the 'All' flag in your call to coeffs.

Weitere Antworten (1)

Steven Lord
Steven Lord am 4 Dez. 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 Kommentare
Connor LeClaire
Connor LeClaire am 4 Dez. 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 am 4 Dez. 2021
Should there exist no 2nd order power of x for example, using the index of powersOfX == x^2 throw an error?

Melden Sie sich an, um zu kommentieren.

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by