2011-02-25 2 views
1

Newton Raphson 반복을 사용하여 역방향 오일러 Scheme을 구현하려고합니다. 각 반복마다 초기 추측을하고 나머지를 계산하여 변경 사항을 해결한다는 점을 이해합니다. 제 경우에는 변화가 del w입니다. 그 후에 나는 w^m에 값을 더하고 다음 m 반복에서 w에 대한 업데이트 값을 얻는 것을 안다. 반복이 진행됨에 따라 솔루션의 수렴을 확인하는 것을 알고 있습니다. 내가 겪고있는 문제는 시간 단계 dt를 t = 0 : Tmax/dt (여기서 Tmax는 10이라고 표현함)로 구현하는 방법입니다. 시간 계단이 어떻게 발생하는지 혼란 스럽습니다. 그러니 어떤 도움을 주시면 감사하겠습니다. 고맙습니다!Newton-Raphson 반복 방법 구현

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 

답변

0

뭔가의 이상한하는 1 차 ODE의 형식 DY/DT = F (t, y)의 결과 아직는 W, V, t, m 및 n은있다.

당신은 일정한 스텝 크기 시간과 파티션으로 시간 간격 (0, T)를 통해 솔루션을 계산하는이

Backward Euler

를 들어

t0 = 0;  tk = hk;  tn = T 

하면 뉴턴의 방법을 구현하는 시도 (while 조건부를 사용하여 위에서와 같이)를 별도의 함수로 풀어서 단계 이상의 오일러에 통합합니다.

1 내지 n (n = Tmax/h).

+0

먼저 선형화하여 2 차 ODE를 풀려고한다는 것을 언급해야합니다. 그래서 제가 R, w, m을 가지고 있습니다. v, t, n은 원래 설정과 같습니다. – ykmizu