How can I define general properties of symbolic functions?

5 Ansichten (letzte 30 Tage)
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?

Akzeptierte Antwort

Ananya Tewari
Ananya Tewari am 24 Mär. 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 Kommentar
Jaime Abad Arredondo
Jaime Abad Arredondo am 29 Mär. 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...

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by