- #1

FanOfGR

- 2

- 0

I have a problem with numerical solution of the system of ODE's (geodesic eqs.) in Mathematica. The only relevant command I have found is NDSolve. It works perfectly, unless my equations contain functions which are again computed using numerical methods.

Simple example illustrating the problem.

Let's define function

F[x_] := Module[{}, FindRoot[ x y == 1, {y, 1/x} ][[1,2]] ];

I don't want to write F[x_] = 1/x, because I want Mathematica to compute it numerically. This function gives, of course, correct values, e.g. F[2]=0.5.

Now I want to solve equation y' = F with initial condition y(1)=0 using

sol = NDSolve[ {y'[x]== F[x], y[1]==0}, y, {x, 1, 3} ];

If I define F[x_] = 1/x, it works. If I define it by FindRoot, it doesn't. It seems to me that NDSolve tries to work with F[x] in symbolic form, but then FindRoot says, that 1/x is not a number.

I hope that I described the problem clearly. Please, if anybody knows the solution, tell me, I am getting crazy :)

Thank you