Why subs symbolic fails here

2 次查看(过去 30 天)
How to make subs work for expression that are not identically simplified from the 'simlify' function.
The expressions bellow are not fully simplified and subs do not substitute.
clear all; close all; clc;
syms a K L
syms m1 b positive;
c = (cos(b)^2 - 2*m1*cos(b)*a)/m1+(m1 - 2*m1^2*cos(b)*a)/(2*m1^2);
cf = subs((c), {cos(b)^2/m1 - 2*cos(b)*a,1/m1 - 2*cos(b)*a}, {K,L})
  2 个评论
John D'Errico
John D'Errico 2019-9-1
编辑:John D'Errico 2019-9-1
Why would you possibly have expected it to succeed? For example, you have the expression:
cos(b)^2/m1 - 2*cos(b)*a
that you wish to replace with something. Yet, there is not even any term of that form. Yes, with algebraic simplicification, you can find a sub-expression like that. But it is not even an issue of simplification, but of factorization. Subs cannot work like that.
Ole
Ole 2019-9-1
Because I would like to have simpler expresions.
Then perhaps the question is how to substitute such expressions.

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2019-9-1
cf = subs(2*expand(c), {cos(b)^2/m1 - 2*cos(b)*a,1/m1 - 2*cos(b)*a}, {K,L})/2
cf =
K + L/2

更多回答(0 个)

产品


版本

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by