Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Implementing an expression in Matlab's Symbolic Math Toolbox

Asked by Pieter on 20 May 2013

Good day,

At the moment I have got equations which look like:

A = ....- q1^2*q1c*q3c + q1*q3*q1c^2 - q1*q3*q2c^2 - q1*q3*q3c^2 + q1*q3*q4c^2 - 2*q1*q4*q1c*q2c - 2*q1*q4*q3c*q4c - q2^2*q1c*q3c + q2^2*q2c*q4c + 2*q2*q3*q1c*q2c + 2*q2*q3*q3c*q4c + q2*q4*q1c^2 - q2*q4*q2c^2 - q2*q4*q3c^2 + q2*q4*q4c^2 + q3^2*q1c*q3c - q3^2*q2c*q4c + q4^2*q1c*q3c - q4^2*q2c*q4c))/((q1*q1c + q2*q2c + q3*q3c + q4*q4c)*(q1^2 + q2^2 + q3^2 + q4^2)*(q1c^2 + q2c^2 + q3c^2 + q4c^2))

Now I know that:

q1c^2+q2c^2+q3c^2+q4c^2 = 1
q1^2+q2^2+q3^2+q4^2 = 1

I like to introduce this information such that I can work with more simplified expressions, because the ones I work with at the moment are very large.

Any ideas how I can achieve this?

2 Comments

Walter Roberson on 20 May 2013

If q1c^2+q2c^2+q3c^3+q4c^4 = 1 then what would you like (q1^2 + q2^2 + q3^2 + q4^2) to be transformed to?

Will the expression q1c^2+q2c^2+q3c^3+q4c^4 appear specifically as a sub-expression, or do you need to (for example) have MuPAD detect that

5*q3c^4 + 5*q3*q2c^2 + 5*q4c^4*q3c + 5*q3c*q1^2

is

5*q3c*(q1c^2+q2c^2+q3c^3+q4c^4)

and so substitute

5*q3c*1

which is

5*q3c

?

Pieter on 20 May 2013

I am sorry, I made an error in my question, what I know is that:

q1c^2+q2c^2+q3c^2+q4c^2 = 1
q1^2+q2^2+q3^2+q4^2 = 1

So I simply want that (q1^2 + q2^2 + q3^2 + q4^2) becomes 1 (that is much simpler, right).

Furthermore, I would like that (1-q1c^2-q2c^2-q3c^2) is replaced by q4c^2 and so on.

So to summarise, I would like to use the information I have (q1c^2+q2c^2+q3c^2+q4c^2 = 1 and q1^2+q2^2+q3^2+q4^2 = 1) to simplify the very long expressions as much as possible.

P.S. I have updated my question now.

Pieter

Tags

1 Answer

Answer by Walter Roberson on 20 May 2013
simplify(subs(A, {q4c^2, q4^2}, {1 - (q1c^2+q2c^2+q3c^2), 1 - (q1^2+q2^2+q3^2)}))

0 Comments

Walter Roberson

Contact us