Ну, как говорится в сообщении об ошибке - NDSolve принимает только начальные условия для производных ордеров, строго меньших, чем максимальный порядок, появляющийся в ODE.
У меня такое ощущение, что это скорее вопрос математики. Математически, {x''[0]=-x0, x[0]==x0}
, не определяет уникальное решение - вам нужно будет сделать что-то вроде {x0.x''[0]==-1, x[0]==x0, x'[0]-x0 x0.x'[0]==v0}
, чтобы это сработало (NDSolve все равно потерпит неудачу с той же ошибкой). Вы понимаете, что вы просто получите большой круг на сфере юнитов, верно?
Кстати, вот как я бы кодировал ваш пример:
x[t_] = Table[Subscript[x, j][t], {j, 3}];
s1 = NDSolve[Flatten[Thread /@ #] &@{
x''[t] - (x''[t].x[t]) x[t] == {0, 0, 0},
x[0] == {1, 0, 0},
x'[0] == {0, 0, 1}
}, x[t], {t, -1, 1}]