Hi, On 22.07.2012 19:29, Martin Ettl wrote:
I have to variables a(t) and b(t), both are dependent from time (t). Suppose, this two variables are multiplied liked this:
a(t) * b(t)
Is it possible to derive this expression (a(t)*b(t)) according time with ginac.
yes, and like your notation already suggests, you need to define a and b as functions of t. A simple code example would be: #include <ginac/ginac.h> using namespace GiNaC; #include <iostream> using namespace std; DECLARE_FUNCTION_1P(a) DECLARE_FUNCTION_1P(b) REGISTER_FUNCTION(a, dummy()) REGISTER_FUNCTION(b, dummy()) int main() { symbol t("t"); ex expr = a(t) * b(t); cout << expr << endl; cout << expr.diff(t,1) << endl; return 0; } But you will get fderivative objects in the result (printed as something like D[0], because with dummy() in the function definition macro you have not told GiNaC what the partial derivative of a or b with respect to t is supposed to be. You can look in the tutorial in section 6.2.2 for a more elaborate example. Regards, Jens