MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Re: function of a function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg62696] Re: [mg62667] Re: [mg62650] Re: function of a function
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Thu, 1 Dec 2005 00:45:59 -0500 (EST)
  • References: <200511301040.FAA07278@smc.vnet.net> <2D884FA6-65F6-4ECB-B489-D2FDB07F04FF@mimuw.edu.pl>
  • Sender: owner-wri-mathgroup at wolfram.com

I forgot to include the definition of f[0]:


f[0][x_]:=Cos[x]

Andrzej


On 1 Dec 2005, at 09:26, Andrzej Kozlowski wrote:

> Actually, first equation is also solvable, but you have to use a  
> "functional method" (which indeed corresponds to "solving  
> infinitely many differential euations"). Here is a rather simple  
> approach; more sophisticated ones are possible.
>
> We want to solve the system:
>
>
> Clear[x, f, EQ];
> EQ = {f'[x] == f[Cos[x]], f[0] == 1};
>
>
> We are going to try to approximate the entire function f over the  
> range [0,1]. This is actually a case when it can be done.We need a  
> starting function that satisfies the initial condition f[0]=1. The  
> functions Cos[x] itself will do. We now do the following:
>
>
> Do[f[n] = f[n] /.
>     First[NDSolve[{D[
>       f[n][x], x] == f[n - 1][Cos[
>           x]], f[n][0] == 1}, f[n], {x, 0, 1}]], {n, 1, 100}]
>
> The solutions is
>
> Plot[f[100][x], {x, 0, 1}]
>
> By plotting
>
> Plot[{f[100]'[x], , f[100][Cos[x]]}, {x, 0, 1}, PlotStyle -> {Red,  
> Green}]
>
> we see that the two curves coincide perfectly.
>
> Obviously you could not expect NDSOlve to do this by itself!
>
> Andrzej Kozlowski
>
>
>
> On 30 Nov 2005, at 19:40, Andrzej Kozlowski wrote:
>
>>
>> On 30 Nov 2005, at 14:07, Narasimham wrote:
>>
>>> Jens-Peer Kuska wrote:
>>>
>>>> it can't work because f [0] ==1 given in your differential equation
>>>> f ' [0]==f [1] and NDSolve[] can't find the value for
>>>> f[1] until it has integrated the equation.
>>>
>>> ???
>>>
>>>> The nested dependence is equivalent to an infinite
>>>> system of ordinary differential equations and it seems to be
>>>> hard to do this by a finte computer.
>>>
>>> I cannot understand this. In the following two examples the first  
>>> one
>>> works, not the second.
>>>
>>> Clear[x,f,EQ];
>>> EQ={f'[x] == f[Cos[x]],f[0]== 1};
>>> NDSolve[EQ,f,{x,0,4}];
>>> f[x_]=f[x]/.First[%];
>>> Plot[f[x],{x,0,4}];
>>>
>>> Clear[x,f,EQ];
>>> EQ={f'[x] == Cos[f[x]],f[0]== 1};
>>> NDSolve[EQ,f,{x,0,4}];
>>> f[x_]=f[x]/.First[%];
>>> Plot[f[x],{x,0,4}];
>>
>>
>> Surely, you mean the second one works, the first one does not!? Also,
>> I think I agree with Jens. These cases are quite different and the
>> problem he mentione does not arise in the second case. Ine the second
>> case the derivative at a point x is defined only in terms of the
>> value of the function at x. Thus values of the function, it's
>> derivative, function etc, can be computed sequentially. In the first
>> case, however, in order to compute the derivative at x you need to
>> know the value of the function at Cos[x], which in general will not
>> be known yet. This is, I think, what Jens meant and it seems to me
>> clearly right.
>>
>>>
>>> It appears (to me) the power of programming with functions in
>>> Mathematica has not been used to the full.
>>>
>>>
>>
>> What do you mean? Can you suggest an approximation scheme for this
>> sort of problem?
>>
>> Andrzej Kozlowski
>>
>>
>>
>>> Jens-Peer Kuska wrote:
>>>> Hi,
>>>>
>>>> it can't work because f[0]==1 give in your
>>>> differential equation
>>>> f'[0]==f[1] and NDSolve[] can't find the value for
>>>> f[1] until it
>>>> has integrated the equation.
>>>> The neted dependence is equvalent to a infinite
>>>> system of
>>>> ordinary differential equations and it seems to be
>>>> hard to do
>>>> this by a finte computer.
>>>>
>>>> Regards
>>>>   Jens
>>>>
>>>> "Narasimham" <mathma18 at hotmail.com> schrieb im
>>>> Newsbeitrag news:dmha20$932$1 at smc.vnet.net...
>>>> | Tried to solve numerically:
>>>> |
>>>> |
>>>> http://groups.google.com/group/sci.math/browse_frm/thread/
>>>> 248f76d024c1ac57/0bba983777a07bc9#0bba983777a07bc9
>>>> |
>>>> | thus:
>>>> |
>>>> | EQ= { f'[x] == f[f[x]], f[0]== 1} ;
>>>> NDSolve[EQ,f,{x,0,2}];
>>>> |
>>>> | But gives an error.  NDSolve::ndnum:
>>>> Differential equation does not
>>>> | evaluate to a number at x = 0.
>>>> |
>>>> | Also does not work even with other f[0] values.
>>>> Any way to do that?
>>>> |
>>>
>>
>


  • Prev by Date: Re: Types in Mathematica
  • Next by Date: Re: Problem with RSolve
  • Previous by thread: Re: Types in Mathematica
  • Next by thread: Re: function of a function