How do I simplify a function?

5 vues (au cours des 30 derniers jours)
Danielle
Danielle le 25 Jan 2023
Commenté : Dyuman Joshi le 25 Jan 2023
Part of one of my assignments is to simplify this equation:
I put this code into MATLAB:
Treatment= simplify(A-2*(B)+2*(B*Y)+(B/2)-A+(B/2)*(3-(4*Y))-(3*Y*B)+(3*B*A*C)+(C/B)*(sqrt((B^2)*(1/C)*(C+A+(7*C*B)-A))))
but i keep recieving this error:
Error using /
Matrix dimensions must agree.
  1 commentaire
Dyuman Joshi
Dyuman Joshi le 25 Jan 2023
Use element-wise operations (.* , ./ and .^) for arrays.
Also, what is the data type of A, B, C and Y? Numeric or symbolic?

Connectez-vous pour commenter.

Réponses (1)

Star Strider
Star Strider le 25 Jan 2023
You apparently defined some of those variables as arrays previously.
To use the simplified function numerically, use the matlabFunction function, and then present the arrays to it (that have the appropriate dimensions for the necessary calculations) as arguments —
syms A B C Y
Treatment= simplify(A-2*(B)+2*(B*Y)+(B/2)-A+(B/2)*(3-(4*Y))-(3*Y*B)+(3*B*A*C)+(C/B)*(sqrt((B^2)*(1/C)*(C+A+(7*C*B)-A))), 500)
Treatment = 
TreatmentFcn = matlabFunction(Treatment)
TreatmentFcn = function_handle with value:
@(A,B,C,Y)B.*(Y-A.*C).*-3.0+(C.*sqrt(B.^2.*(B.*7.0+1.0)))./B
See if that does what you want. (The 500 argument tells simplify to keep simplifying until it can no longer simplify the function, up to 500 iterations.)
.

Community Treasure Hunt

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

Start Hunting!

Translated by