2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Mathematica. Дифференциальное уравнение по шагам
Сообщение02.04.2009, 21:16 
Необходимо решить уравнение:
Код:
w = 0.24; K = 10; K1 = 4.5; K2 = 3; WN = 6; WM = 13; g = 0.1; J = 0.05; KM = 0.0001*0.24^-0.7; F = 3000; m = 0.24; t = 1;

Wx = g*x + m;
sol = NDSolve[{J*u''[x] - Wx*u'[ x] - (g + 2/t)*u[x] -
     F*(KM*(K2*Exp[K1*(u[x] - 0.55)] +
          WN/(1 + (WN/WM - 1)*Exp[-K*u[x]]))) + 2/t *w == 0, 
   u[0] == 0.24, u'[0.1] == 0}, u,  {x, 0, 0.1}]

Все решает, интерполирует, график строит.
Далее необходимо просчитывать это уравнение в цикле, заменяя на каждом шаге w=u[x]*2-w.
На втором шаге при пересчете w мы получаем вектор столбец (на первом шаге было w=0.24).

Код:
yapprox[x_] = u[x] /. sol[[1]]
w1 = Sum[Table[{yapprox[x]}, {x, 0, 0.1, 0.005}], {x, 0, 0.1}]*2 - w;
print [w1]

Получим:
print[{{0.94135},{0.841382},{0.74699},{0.657754},{0.573359},{0.493574},{0.418231},{0.347218},{0.280471},{0.217971},{0.159747},{0.105871},{0.0564661},{0.011708},{-0.0281723},{-0.0628868},{-0.0920944},{-0.115412},{-0.132438},{-0.142786},{-0.146128}}]
И с этим столбцом уравнение решаться уже не хочет, пробовала интерполировать, но может что-то неправильно делаю:
Код:
ifun = Interpolation[w1]
InterpolatingFunction[{{1.,21.}},<>]

Пробовала подставлять в уравнение и новый столбец w1 и проинтерполированный вектор ifun, не решает в обоих случаях. Возможно, нужно как-то извлечь формулу зависимости w(x), но не знаю как это сделать...

 
 
 
 
Сообщение03.04.2009, 18:31 
Все, вопрос снят, я подставляла в уравнение вместо переменной w проинтерполированный вектор ifun, оказывается в самом уравнении надо писать ifun[x]. Все решает отлично.

 
 
 [ Сообщений: 2 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group