Borrar filtros
Borrar filtros

Finding coefficients of variables of specific powers

6 visualizaciones (últimos 30 días)
Connor LeClaire
Connor LeClaire el 4 de Dic. de 2021
Comentada: Connor LeClaire el 4 de Dic. de 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!

Respuesta aceptada

Voss
Voss el 4 de Dic. de 2021
Problem 1: Try using the 'All' flag in your call to coeffs.

Más respuestas (1)

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

Iniciar sesión para comentar.

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by