Реализация итерационного метода Ньютона-Рафсона - PullRequest
1 голос
/ 25 февраля 2011

Я пытаюсь реализовать обратную схему Эйлера, используя итерацию Ньютона-Рафсона. Я понимаю, что с каждой итерацией каждый делает начальное предположение, вычисляет остаток и решает для изменения. В моем случае это изменение del w. После этого я знаю, что нужно добавить значение в w ^ m и получить значение обновления для w на следующей итерации. Я знаю, чтобы проверить сходимость решения по мере продолжения итераций. Проблема, которую я имею, состоит в том, как реализовать шаг по времени dt как t = 0: Tmax / dt, где Tmax, скажем, 10. Я запутался в том, как наступает шаг по времени. Я пытался выяснить это для в то время как любая помощь будет оценена. Спасибо!

 while Rw(m)>10^-6      % Convergence condition
    drdw(m)=(1-2*dt+2*t(n+1)^2*w(m)*dt);
    Dw(m)=Rw(m)\drdw(m); %Inverse
    w(m+1)=w(m)+Dw(m);  %Newton method
    Rw(m+1)=(-(w(m)-v(1)-2*w(m)*dt+t(n+1)^2*w(m)^2*dt));   %New Residual value
    if Rw(m+1)>10^-6  %Check on the level of convergence
        m=m+1;
    else
        Rw=1;  % I was thinking I should make the Residual 1 for the next time step. 
        break

    end

1 Ответ

0 голосов
/ 25 февраля 2011

Там что-то странное, ODE 1-го порядка имеет вид dy / dt = f (t, y), но у вас есть w, v, t, m и n.

Вы вычисляете своирешение за промежуток времени (0, T) в раздел с постоянным размером шага h:

t0 = 0;      tk = hk;      tn = T

Для этого

Backward Euler

Попробуйте реализовать метод Ньютона(используя условное время, как у вас выше) для решения вышеуказанного в качестве отдельной функции, а затем интегрируйте его в свой эйлер по шагам

1 до n, где n = Tmax / h.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...