Re: Changing the argument
- To: mathgroup at smc.vnet.net
- Subject: [mg125029] Re: Changing the argument
- From: Andrés <jarosham at gmail.com>
- Date: Sat, 18 Feb 2012 06:27:23 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jhldc2$oq5$1@smc.vnet.net>
Hi Niles.
z must be a function of t from the beginning so that t can also be
one. I would rewrite:
primaryFunc[i_,t_] := {
secondaryFunc[t_] := 1/z[t];
func = 0;
For[j = 1, j < i + 1, j++,
func = func + secondaryFunc[t];
];
func};
test[t_] := primaryFunc[20,t]
NDSolve[{z''[t] == test[t], z[0] == 0, z'[0] == 20}, z, {t, 0, 5}];
Hope it helps,
Andr=E9s
On Feb 17, 6:23 am, Niles <niels.martin... at gmail.com> wrote:
> Hi!
>
> I have the following piece of code (I am using this as an example):
>
> primaryFunc[i_] := {
> secondaryFunc[z_] := 1/z;
> func = 0;
> For[j = 1, j < i + 1, j++,
> func = func + secondaryFunc[z];
> ];
> func};
>
> test = primaryFunc[20];
>
> Say that I need to use the function "test" in NDSolve, e.g.:
> NDSolve[{z''[t] == test, z[0] == 0, z'[0] == 20}, z, {t, 0, 5}];
>
> The problem is that the variable "z" in "test" needs to become "z[t]".
> How can this be done most efficiently? Thanks for the help in advance.
>
> Best,
> Niles.