How can I define general properties of symbolic functions?

5 vues (au cours des 30 derniers jours)
Jaime Abad Arredondo
Jaime Abad Arredondo le 19 Jan 2021
I'm trying to work with undefined symbolic functions, but I want to take advantage of some of its properties. For instance, I know that my functions fulfill:
As such I tried the following:
syms x y xx yy f(x)
assume(f(x)*f(y)==f(x+y))
Z=f(x)*f(y);
K=f(yy)*f(xx);
simplify(Z)
simplify(K)
While Z returns f(x+y) (the set identity as expected), it doesn't work on K as I don't know how to set the assumption on generic variables. I would very much like to avoid setting the assumption on every pair of arguments of my model, any clue on how to do this?

Réponse acceptée

Ananya Tewari
Ananya Tewari le 24 Mar 2021
I understand that you want to set assumptions on generic variables. Currently it is not supported by MATLAB. A workaround if you do not wish to set assumption on every pair of argument, you can try using function handle to create a generic assume statement.
% creating function handle for assume statement
funAssume = @(a,b) assumeAlso(f(a)*f(b)==f(a+b)) % using assumeAlso to keep multiple assumptions
% calling funAssume() with any symbolic variable
funAssume(xx,yy)
K=f(yy)*f(xx);
simplify(K)
  1 commentaire
Jaime Abad Arredondo
Jaime Abad Arredondo le 29 Mar 2021
In the end I created a new class with objects that operated as I wanted. Much more laborious, but worked as intended. I accept the answer as it's a nice work-around. Still have to loop through every single variable combination calling the funAssume though...

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by