Ogre7 писал(а):
У меня чего то не получается - в цикле решать не хочет. А в единичном порядке решает, т.е.
без цикла. Подскажите, кто знает, можно ли её заставить или нет?
У Вас не получается по многим причинам:
- в теле цикла не хватает одной фигурной скобки при задании интервала интегрирования;
- даже если решать систему не в цикле, то результат лежит в интервале от нуля до 1.6x10^-16, а это очень маленький интервал;
- если Вы используете gt[PERIOD][[1]]] как двумерный массив, то это неправильно, поскольку, как минимум, нельзя в качестве индекса массива использовать вещественное число PERIOD;
- для накопления значений лучше использовать списки.
Цитата:
V = 5*10^5;
d = 1.5/2;
k = 10;
b = 10^15*k^(10/7);
T = 3.16*10^7*5*10^5;
PERIOD = T;
difp := p'[t] == b*p[t]^(1/14)*Cos[hi[t]]^(2*d);
difhi := hi'[t] == b*(p[t])^(1/14)*Sin[hi[t]]*Cos[hi[t]]^(2*d - 1);
dif := {difp, difhi, p[0] == 0.02, hi[0] == 0.1};
gt = {};
For[z = 1, z < 10, z = z + 1, sover = NDSolve[dif, {p[t], hi[t]}, {t, 0, T}];
gt = Append[gt, Evaluate[hi[t] /. sover]];
];
После этого можно обращаться к элементам списка по индексам: gt[[1]], gt[[2]],.... Каждый элемент - решение.
Вы не расскажете, для чего десять раз подряд решать одну и ту же систему дифференциальных уравнений?