| |
 |
|
|
Science Forum Index » Math - Symbolic Forum » Symbolic derivation, of an unknown function
Page 1 of 1
|
| Author |
Message |
| Jérôme Collet |
Posted: Tue Jan 16, 2007 6:09 pm |
|
|
|
Guest
|
I have a problem similar (but much more complicated) to the following :
I have two functions, I0 and I1 depending of u
I know that :
dI0/du=a
I0+I1=u
I would like my computer algebra system remark that:
dI1/du=1-a
I use Maxima, and I could not get the result. I would like to know if it
is even possible, or if I would have to switch to another CAS (Axiom,
for example). |
|
|
| Back to top |
|
| Paul Abbott |
Posted: Tue Jan 16, 2007 9:55 pm |
|
|
|
Guest
|
In article <45ad4d26$0$2321$426a74cc@news.free.fr>,
Jérôme Collet <Jerome.Collet@laposte.net> wrote:
Quote: I have a problem similar (but much more complicated) to the following :
I have two functions, I0 and I1 depending of u
I know that :
dI0/du=a
I0+I1=u
I would like my computer algebra system remark that:
dI1/du=1-a
I use Maxima, and I could not get the result.
Maxima certainly can perform such a computation.
Quote: I would like to know if it is even possible, or if I would have to
switch to another CAS (Axiom, for example).
Essentially you want to Eliminate I0 and its derivatives from a set of
DAE. In Mathematica I would proceed as follows:
First define the DAE:
e[1][u_] = I0'[u] == a;
e[2][u_] = I0[u] + I1[u] == u;
Then Eliminate I0 and its derivatives from the DAE and its derivative(s):
Eliminate[{e[1][u], e[2][u], e[2]'[u]}, {I0[u], I0'[u]}]
1 - I1'[u] == a
Cheers,
Paul
_______________________________________________________________________
Paul Abbott Phone: 61 8 6488 2734
School of Physics, M013 Fax: +61 8 6488 1014
The University of Western Australia (CRICOS Provider No 00126G)
AUSTRALIA http://physics.uwa.edu.au/~paul |
|
|
| Back to top |
|
| Robert Israel |
Posted: Wed Jan 17, 2007 1:37 am |
|
|
|
Guest
|
In article <45ad4d26$0$2321$426a74cc@news.free.fr>,
Jérôme Collet <Jerome.Collet@laposte.net> wrote:
Quote: I have a problem similar (but much more complicated) to the
following :
I have two functions, I0 and I1 depending of u
I know that :
dI0/du=a
I0+I1=u
I would like my computer algebra system remark that:
dI1/du=1-a
I use Maxima, and I could not get the result. I would like to
know if it
is even possible, or if I would have to switch to another CAS (Axiom,
for example).
In Maple 10:
Quote: I1sol:= subs(dsolve({D(I0)(u)=a, I0(u)+I1(u)=u}), I1(u)):
D(I1)(u) = diff(I1sol,u);
D(I1)(u) = -a+1
Robert Israel israel@math.ubc.ca
Department of Mathematics http://www.math.ubc.ca/~israel
University of British Columbia Vancouver, BC, Canada |
|
|
| Back to top |
|
| Peter Pein |
Posted: Wed Jan 17, 2007 2:50 am |
|
|
|
Guest
|
Jérôme Collet schrieb:
Quote: I have a problem similar (but much more complicated) to the following :
I have two functions, I0 and I1 depending of u
I know that :
dI0/du=a
I0+I1=u
I would like my computer algebra system remark that:
dI1/du=1-a
I use Maxima, and I could not get the result. I would like to know if it
is even possible, or if I would have to switch to another CAS (Axiom,
for example).
Salut Jérôme,
is
(%i1) ev(diff(I1(u),u),diff(I0(u), u)=a,solve(I0(u)+I1(u)=u,I1(u)));
d
(%o1) 1 - -- (I0(u))
du
acceptable? |
|
|
| Back to top |
|
| Jentje Goslinga |
Posted: Sun Jan 21, 2007 12:50 pm |
|
|
|
Guest
|
Jérôme Collet wrote:
Quote: I have a problem similar (but much more complicated) to the following :
I have two functions, I0 and I1 depending of u
I know that :
dI0/du=a
I0+I1=u
I would like my computer algebra system remark that:
dI1/du=1-a
I use Maxima, and I could not get the result. I would like to know if it
is even possible, or if I would have to switch to another CAS (Axiom,
for example).
Read up on gradef which allows you to define derivatives of a
function without specifying the function itself, which is
indispensable and often necessary to avoid "explosive" expansions
and may lead you to discover the recurrence relation.
gradef(I0,u,a)$
gradef(I1,u,1-a)$
Note that Maxima also allows the following syntax:
gradef(I(i,x),0,i*I(i+1,x))$
I think Maxima is adequate for what you want to do here.
Jen |
|
|
| Back to top |
|
| DP |
Posted: Mon Jan 22, 2007 12:42 pm |
|
|
|
Guest
|
Jérôme Collet wrote:
Quote: I have a problem similar (but much more complicated) to the following :
I have two functions, I0 and I1 depending of u
I know that :
dI0/du=a
I0+I1=u
I would like my computer algebra system remark that:
dI1/du=1-a
I use Maxima, and I could not get the result. I would like to know if it
is even possible, or if I would have to switch to another CAS (Axiom,
for example).
Perhaps what you need for your real problem is to find how to define
new differentiation rules and to solve systems of equations.
REDUCE had (because I have no longer used REDUCE in years) an elegant
way to declare dependence on variables.
To declare that P depends on x and y one would write:
Then to define the partial derivatives of P implicitly one would write:
Quote: LET DF(P,x) = Px, DF(P,y) = Py $
or other more complicated rules.
In Maple such rule based definitions of derivatives are also possible but
somewhat less elegant. For example the differentiation rules for the sin and cos
functions look like this:
Quote: `diff/COS` := proc(x,indet) -SIN(x)*diff(x,indet) end proc:
`diff/SIN` := proc(x,indet) COS(x)*diff(x,indet) end proc:
diff(SIN(COS(h+SIN(h))),h);
-COS(COS(h+SIN(h)))*SIN(h+SIN(h))*(1+COS(h))
For your toy problem
Quote: `diff/I0` := proc(x,indet) dI0(u)*diff(x,indet) end proc:
`diff/I1` := proc(x,indet) dI1(u)*diff(x,indet) end proc:
equ1 := I0(u)+I1(u) = u;
equ2 := diff(I0(u),u) = a ;
equ3 := map(diff,equ1,u);
solve({equ2,equ3},{dI0(u),dI1(u)});
Axiom, Maxima or Mathematica should all be able to define new differentiation
rules but I don't remember the syntax. |
|
|
| Back to top |
|
| |
|
Page 1 of 1
All times are GMT - 5 Hours
The time now is Mon Dec 01, 2008 10:56 am
|
|