How can I force simplify function I want?
9 次查看(过去 30 天)
显示 更早的评论
I have a problem about both simplify and subs functions.
- Simplify function is not working in the following example.
syms mu B cc M M_bar E V_N sigma_1;
sigma_1 = sqrt((M+M_bar-4*E*V_N)^2+(2*mu*B)^2);
cantSimplified_Var = simplify(sqrt(4*B^2*mu^sym(2) + 16*E^sym(2)*V_N^2 - 8*E*M*V_N - 8*E*M_bar*V_N + M^2 + 2*M*M_bar + M_bar^2));
isequal(expand(sigma_1),cantSimplified_Var)
ans =
logical
1
isequal(sigma_1,cantSimplified_Var)
ans =
logical
0
2. I want to continue with my new defined function. For example,
syms A B C
A = B^2;
C = A + B^2
C =
2*B^2
Here, I want to see equation like "C = 2*A". Is it possible?
It is related to my first question, because if I can see the expression like "C = 2*A", I will continue my calculation whether MATLAB simplify it correctly or not.
0 个评论
采纳的回答
Star Strider
2020-12-16
Tell MATLAB to keep slimplfying until it cannot simplify it further (or reaches the iteration limit), then test equality with the isAlways function:
syms mu B cc M M_bar E V_N sigma_1;
sigma_1 = sqrt((M+M_bar-4*E*V_N)^2+(2*mu*B)^2);
cantSimplified_Var = simplify(sqrt(4*B^2*mu^sym(2) + 16*E^sym(2)*V_N^2 - 8*E*M*V_N - 8*E*M_bar*V_N + M^2 + 2*M*M_bar + M_bar^2), 'Steps',500);
Test = isAlways(sigma_1 == cantSimplified_Var)
producing:
Test =
logical
1
.
4 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Assumptions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!