2013-05-12 8 views
1

Newton 메서드 (Jacobian N + 1 * N + 1)를 통해 고 차원 (i = 0, N)의 비선형 방정식의 2 차 시스템을 해결하는 코드를 작성했습니다. , 2 개의 경계 조건을 갖는다.Python에서 Bisection 방법을 사용하여 개선 된 Newton 방법

이 N Dimensional 문제에서 이분법을 구현할 수 있는지 물어보고 싶습니다. 불행하게도 뉴튼 컨버전스는 내 문제의 일부 지역에서는 작동하지 않습니다.

이 소스에 따라 :. http://ursa.as.arizona.edu/~rad/phys305/root_finding/node4.html

" 개선 된 루트 찾는 방식이 양분과 뉴턴 - 랩슨 방법을 결합하는 것입니다 이분법 (또는 특이점) 루트를 보장하고 변화를 제한하는 데 사용됩니다 선형 가정이 좋지 않을 때 Newton-Raphson 방법으로 추정 된 위치. 그러나 Newton-Raphson 단계는 수렴 속도를 높이기 위해 거의 선형 영역에서 취해진 다.

즉, 우리는 우리의 두 경계 점, 우리는 먼저 뉴튼 - 라프 슨 단계를 고려해야합니다. 괄호로 묶은 범위를 지정하면 범위의 중간 점을 다음 점으로 선택하여 이등분을 수행합니다. 그런 다음 다음 지점에서 기능을 평가하고 평가의 부호에 따라 경계 지점 중 하나를 새 지점으로 대체합니다. 이렇게하면 루트가 괄호로 묶이지 만 Newton-Raphson의 속도를 통해 이익을 얻을 수 있습니다. "

... N 차원의 문제에 파이썬에서 그렇게 할 수 있습니까?

ndimensional 수있는 FORTRAN의

Rtsafe 모듈은 ...이 작업을 수행하고, 매트랩 유사한 모듈이 수도

답변

0

숙제의 종류가 아니라면 solvers from scipy을 사용하는 것이 더 나을 것입니다. 다차원 문제는 (변형 된 Newton-Raphson 방법 사용)을 보시기 바랍니다.

+0

숙제가 아니라 내 연구 내용입니다. 누군가가 내 코드 또는 다른 것을 쓰고 싶지 않습니다. 조언을 구하는 중입니다! 이 코드는 더 복잡합니다. 2 개의 경계 조건을 갖는 2 차 비선형 방정식을 풀기 위해 100 개 이상의 격자 점에 대해 Newton 다차원 방법 (Newton 방법의 일반화)을 사용합니다. 나는 누군가가이 코드에서 bidection 메소드를 구현하는 방법을 알고 있는지 궁극적으로 더 나은 컨버전스를 가지고 있는지 또는 내가 사용할 수있는 다른 방법을 알고 있는지 묻는다. 어쨌든 고맙습니다 ... – user1640255

+0

내가하려고하는 점은 간단합니다. 절대적으로 필요한 경우가 아니라면 자신의 솔버를 구현하는 것을 신경 쓰지 마십시오 (읽을 수있는 솔루션을 사용하지 않는 한 읽음). –

+0

Zhenya, 수렴하지 않기 때문에 코드가 작동하지 않습니다! u가 "정상"인 특정 데이터에서만. 그러나 다른 수입 데이터의 경우, 끝 부분의 u가 곡선 형이어야하며 평면이되어야합니다. Newton m. 수렴하지 않습니다! 이 문제를 건너 뛰기 위해 도움이나 조언을 구합니다. 문제가 FORTRAN에 있다면, N 차원에서 http://www.mpi-hd.mpg.de/astrophysik/HEA/internal/Numerical_Recipes/f9-4.pdf RTSAFE 모듈을 사용할 것입니다. 문제는 그것이 필요한지 아닌지입니다. 나는 그것을해야만한다! 문제는 다차원 이분법이이 코드에서 구현 가능한지 여부입니다. – user1640255