언제 Newton-Krylov가 적절한 솔버가 아니십니까?


16

최근에 나는 scipy의 다른 비선형 솔버를 비교해 왔으며 특히 Scipy CookbookNewton-Krylov 예제 에서 약 20 줄의 코드로 비선형 반응 항으로 2 차 미분 방정식 방정식을 풀었습니다 .

예제 코드를 수정하여 반도체 이종 구조에 대한 비선형 Poisson 방정식 ( Poisson-Boltzmann 방정식이라고도 함, 이 노트의 17 페이지 참조)을 해결합니다.

2ϕ엑스2케이(엑스)((엑스,ϕ)(엑스,ϕ)++(엑스))=0

(이것은 솔버에 전달되는 잔차 함수입니다.)

이것은 및 가 형식의 비선형 함수 인 정전기 문제 입니다. 여기서 자세한 내용은 중요하지 않지만 요점은 비선형 함수가 따라 기하 급수적으로 달라 지므로 잔차 함수는 약간의 변경 으로 큰 범위 ( 에서 달라질 수 있다는 것입니다 에서 .(엑스,ϕ)(엑스,ϕ)나는(엑스)이자형(이자형나는(엑스,ϕ)이자형에프)ϕ1061016)ϕ

나는이 방정식을 scipy의 Newton-Krylov로 수치 적으로 풀지 만 결코 수렴하지 않을 것입니다 (사실 항상 Jacobian을 계산할 때 오류를보고합니다). 나는 Newton-Krylov 솔버에서 fsolve (MINPACK hybrd 기반)로 전환했으며 처음으로 작동했습니다!

Newton-Krylov가 특정 문제에 적합하지 않은 일반적인 이유가 있습니까? 입력 방정식을 어떻게 든 조절해야합니까?

댓글을 달려면 더 많은 정보가 필요할 수 있지만이 경우 fsolve가 효과가 있다고 생각하는 이유는 무엇입니까?


나는 Newton-Krylov와 동일한 문제가 Jacobian에 실패했으며 방법을 "lgmres"에서 "gmres"( sol = newton_krylov(func, guess, method='gmres'))로 변경하면 문제가 해결 된다는 것을 알았습니다 . 왜 그런지 정확히 알지 못하지만이 문제가있는 다른 사람은 똑같이하는 것을 고려할 수 있습니다.
Arthur Dent

답변:


18

발생할 수있는 두 가지 문제가 있습니다.

나쁜 컨디셔닝

첫째, 문제는 조건이 좋지 않지만 잔차 만 제공하는 경우 Newton-Krylov는 잔차를 유한 차분하여 차분한 자코비 안의 동작을 취함으로써 유효 숫자의 절반을 버립니다.

제이[엑스]와이에프(엑스+ϵ와이)에프(엑스)ϵ

1016

유한 차분은 없지만 유사 뉴턴 방법에도 동일한 문제가 적용됩니다. 비 소규모 연산자 (예 : 미분 방정식) 문제에 대한 모든 확장 가능한 방법은 사전 조건을 위해 야 코비안 정보를 사용해야합니다.

fsolveJacobian 정보를 사용하지 않았거나 본질적으로 특이한 Jacobian에도 불구하고 "gradient descent"방법으로 진행하기 위해 dogleg 방법이나 shift를 사용 했을 가능성이 높습니다 (즉, 유한 차분은 유한 정밀도 산술). 이것은 확장 fsolve할 수 없으며 문제의 크기가 커질수록 느려질 수 있습니다.

세계화

선형 문제가 정확하게 해결되면 선형 문제 (Krylov)와 관련된 문제를 배제하고 비선형 성으로 인한 문제에 집중할 수 있습니다. 로컬 최소 및 비 매끄러움 기능은 수렴이 느려지거나 정체를 유발합니다. Poisson-Boltzmann은 부드러운 모델이므로 초기 추측을 충분히 시작하면 Newton이 2 차적으로 수렴합니다. 대부분의 세계화 전략에는 최종 반복에 대한 고품질 초기 추측을 생성하기위한 일종의 연속이 포함됩니다. 예에는 그리드 연속 (예 : Full Multigrid), 매개 변수 연속 및 의사 과도 연속이 포함됩니다. 후자는 일반적으로 정상 상태 문제에 적용 할 수 있으며 일부 글로벌 컨버전스 이론을 제공합니다 ( Coffey, Kelley 및 Keyes (2003) 참조) . 이 논문이 검색되면 도움이 될 것입니다.Shestakov, Milovich 및 노이 (2002)는 의사 과도 연속하여 유한 요소 방법을 이용하여 비선형 포아송 - 볼츠만 방정식의 해결책 . 의사 과도 연속은 Levenberg-Marquardt 알고리즘과 밀접한 관련이 있습니다.

추가 자료

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.