DSolve
requires the arguments of the unknown functions being sought to be the same variables. Set z[u] == y[1/u]
and differentiate to figure out you have to substitute z[u]
for y[v]
and u^2 z'[u]
for y'[v]
. There is a function DChange for making such substitutions, which might be useful in your more complicated use-case. In simple cases, I just use calculus by hand:
D[z[u] == y[1/u], u]
(* z[u] == -(y'[1/u]/u^2) *)
DSolve[{z[u] == -x'[u], x[u] == u^2 z'[u]}, {z, x}, u];
sol = {y -> Function @@ {u, Simplify[z[1/u] /. First@%]}, x -> (x /. First@%)}
(*
{y -> Function[u,
1/(2 Sqrt[1/
u]) (-(C[1] + Sqrt[3] C[2]) Cos[
1/2 Sqrt[3] Log[1/u]] + (Sqrt[3] C[1] - C[2]) Sin[
1/2 Sqrt[3] Log[1/u]])],
x -> Function[{u},
Sqrt[u] C[1] Cos[1/2 Sqrt[3] Log[u]] +
Sqrt[u] C[2] Sin[1/2 Sqrt[3] Log[u]]]}
*)
Slightly more general processing of the solution, in case DSolve
returns more than one solution (for a nonlinear system).
DSolve[{z[u] == -x'[u], x[u] == u^2 z'[u]}, {z, x}, u];
sol = {y -> Inactive[Function][u, z[1/u]], Inactive[Symbol]["x"] -> x} /. % //
Simplify[#, u > 0] & // Activate
(*
{{y -> Function[u,
1/2 Sqrt[u] (-(C[1] + Sqrt[3] C[2]) Cos[
1/2 Sqrt[3] Log[u]] + (-Sqrt[3] C[1] + C[2]) Sin[
1/2 Sqrt[3] Log[u]])],
x -> Function[{u},
Sqrt[u] C[1] Cos[1/2 Sqrt[3] Log[u]] +
Sqrt[u] C[2] Sin[1/2 Sqrt[3] Log[u]]]}}
*)