I am trying to solve (numerically) the following system of differential equations using dsolve (Maple 9):
DGLS:=seq(seq(diff(B[i,k](t),t)=add(add(W(j,l,i,k)*B[j,l](t)-W(i,k,j,l)*B[i,k](t),l=1..N),j=1..N),k=1..N),i=1..N); The problem is posed by the coefficients W(i,k,j,l). I want to make the W(i,j,k,l) dependent on the unknown functions B[i,k](t). For that purpose I wrote a Maple program W := proc(i::integer, k::integer, j::integer, l::integer) which calculates a "transition probability" Wtrans. If Wtrans does not depend on the B[j,l] (e.g. Wtrans:=1/N^2;), everything works nice. However, if I try to use the B[i,k] somehow (e.g. if NKrit_jl > B[j,l] then Wtrans := 0.5 fi;), then error messages from the procedure W result like "Error, invalid terms in product".
As I understand, I do not have access to the values of the B[i,k](t). If I type a command like B[i,k]; or B[i,k](t); then I only get the names, e.g. "B[1,1](1)", but not the numerical values. Admittedly, I do not fully understand how to treat the parameter t. I was hoping that the expression B[i,k] is well defined at any time t and contains a numerical value appropriate for that t.
For the command DEplot I inspected the Maple source code to identify the variables inside Maple which may correspond to the B[i,k]. Actually, there are some variables called "vars" and I made the public accessible by copying DEplot into MyDEplot and introducing a global command (e.g. global vars;), but without success. For dsolve I gave it up quite soon.
In short: How do I get access to the B[i,k]? In general: How do I solve (systems of) differential equations (of first order) with non-constant coefficients (as functions of the indeterminate functions and eventually of the time parameter)? I did not find any example in the WWW. May be I am requesting too much?
Here some commands to play with:
restart;
with(DEtools):
N := 3;
DGLS:=seq(seq(diff(B[i,k](t),t)=add(add(W(j,l,i,k)*B[j,l](t)-W(i,k,j,l)*B[i,k](t),l=1..N),j=1..N),k=1..N),i=1..N);
Variable := seq(seq(B[i,k](t),k=1..N),i=1..N);
Bedingungen1 := seq(B[i,1](0)=1,i=1..N);Bedingungen2 := seq(seq(B[i,k](0)=0,k=2..N),i=1..N);
DEplot({DGLS},[Variable],t=0..10,[[Bedingungen1,Bedingungen2]],scene=[t,B[1,1]]);
dsolve({DGLS,Bedingungen1,Bedingungen2}, explicit );
Remember, that you have to give a model for the W(i,k,j,l)! If you replace them by 1/N^2, then you will arrive at the solution
{B[1,1](t) = 2/3*exp(-t)+1/3, B[3,1](t) = 2/3*exp(-t)+1/3, B[2,1](t) = 2/3*exp(-t)+1/3, B[3,3](t) = 1/3-1/3*exp(-t), B[1,3](t) = 1/3-1/3*exp(-t), B[1,2](t) = 1/3-1/3*exp(-t), B[2,2](t) = 1/3-1/3*exp(-t), B[3,2](t) = 1/3-1/3*exp(-t), B[2,3](t) = 1/3-1/3*exp(-t)}.
Thank you!