Re: How to deal with such ODE with fortran?
- From: "Arjen Markus" <arjen.markus@xxxxxxxxxx>
- Date: 27 Oct 2006 04:04:01 -0700
Nye schreef:
Hi all, I will try to make myself understood as clearly as possible,
though the problem is a little complicated, and, my English is not very
well.
the ODE has a form like this:
d P(t,k)/ d t = RHS(P,t,k)
what is weird here is that RHS(P,t,k) is a function of the concrete form
of function P(t,x) at certain step t, not merely the value of it.
inf
/
RHS(P,t,k) = | P(t,k*y)F(y) dy
/
0
given the initial conditions: P(t=0,x)=P1(x), RHS(P=P1,t=0,k)=RHS1(k)
when t=tn,
Pn(tn,x) = Pm(tm,x)+(STEPSIZE of t)*RHS(Pm,tm,x)
where m=n-1, the formula above gives the recursive procedure I should
follow in the program.
please take notice of the confusability of k and x, in the output of the
program, I want to get a series of P(t=t_end,k), k = k1,k2,k3....kp...k60, i.e.
a series of points on the output curve of function P(t=t_end, x). That
is to say, I have to an integrate different ODE for each kp.
so far, the problem is that, how to transfer the parameters effectively,
without causing confusion in the recursive procedure. For example, there
is an integration for RHS,
RHs(Pn,tn,k) calls P(tn,x), but the subroutine doing integration only
accept single value func as its parameter, so I should transform P(tn,x)
to P(x) |t=tn, where COMMON block would be used. How to make a common
block available and correct in a recursive procedure, given that the
block would change its value in different period of recursion?
I have thought of a method to crack the integration subroutine to accept
tn as a parameter, but that would destroy its stability, which I don't
prefer to.
any suggestions or comments on the algorithm? I will greatly appreciate
them since I havn't start my code yet....:) thanks
This is known as a integro-differential equation. Have you checked the
available literature for suitable numerical methods?
If you want help on your current program, howver, I suggest you show
us at least the structure - the description you gave does not make it
easy to understand what you are after.
Regards,
Arjen
.
- Follow-Ups:
- References:
- How to deal with such ODE with fortran?
- From: Nye
- How to deal with such ODE with fortran?
- Prev by Date: Re: Help, Can't find my bug
- Next by Date: Re: How to deal with such ODE with fortran?
- Previous by thread: How to deal with such ODE with fortran?
- Next by thread: Re: How to deal with such ODE with fortran?
- Index(es):
Relevant Pages
|