주어진 (가능한 경우 비선형) 함수 f가 항상 양수인지 확인하는 알고리즘이 있습니까?비선형 함수 f가 항상 양수인지 확인하는 알고리즘
내가 현재 가지고있는 아이디어는 newton-raphson 알고리즘이나 유사한 기술을 사용하여 (http://en.wikipedia.org/wiki/Root-finding_algorithm 참조) 파생물을 확인하거나 f의 최소값을 찾는 것입니다.하지만 그들은 보이지 않습니다. 이 문제에 대한 최상의 솔루션이기 위해서 루트 검색 알고리즘에 많은 컨버전스 문제가 있습니다.
예를 들어, Maple에서 기능을 확인하면이 가능하지만 내 프로그램에서 구현해야합니다. 메이플 도움말 확인시 : http://www.maplesoft.com/support/help/Maple/view.aspx?path=verify/function_shells 메이플 예 : assume (x, 'real'); verify (x^2 + 1,0, 'greater_than'); -> 모든 x에 대해 x^2 + 1> 0을 갖기 때문에 true를 반환합니다.
[편집] 질문에 대한 배경 : 함수 $ f $는 회로의 오른쪽 편미분 비선형 모델입니다. . 비선형 회로는 단순화를 위해 수정 된 노드 분석 (MNA)을 적용하여 상미 분 방정식의 집합으로 모델링 할 수 있으므로 1 차원이있는 시스템 만 고려하면 $ x '= f (x) $가되며 $ f $는 예를 들어 $ f $는 $ f (x) = 10x - 100x^2 + 200x^3 - 300x^4 + 100x^5 $ (비선형 터널 다이오드 모델) 또는 $ f = 10-2sin (4x) + 3x $ (조셉슨 접합 모델).
$ x $는 한정되어 있고 $ f $는 R $의 간격 $ [a, b] \에서만 정의됩니다. $ f $은 계속됩니다. 나는 $ f $가 Lipschitz 상수 L> 0 인 Lipschitz라는 가정을 할 수도 있지만, 꼭해야만하지 않는다면 나는 원하지 않습니다.
Maple의 모든 기능에 대해 '확인'이 작동합니까? 10도 다항식은 어떻습니까? – Kevin
나는 ** 연속 **, 아마 ** 다항식 ** 함수 *를 의미한다고 가정한다. (결국, f (x) = -1이면 프로그램 X가 멈춘다. + 1이 유효한 함수이다) *? 그렇다면 실제 문제는 무엇입니까? 당신은 두 가지 해결책을 언급했습니다 : 함수의 근원을 찾으십시오 * (각 뿌리 사이의 한 점에서 함수의 값을 확인하십시오) * 또는 파생어의 뿌리 * (이 점들 각각에서 함수의 값을 확인하십시오) * -이 중 하나가 작동해야합니다. –
아주 좋은 지적입니다. 예, 함수는 연속적이어야합니다. 루트 발견은 나의 초기 해결책 이었지만 나의 경우에는 몇 가지 수렴 문제가있다. 더 나은 알고리즘을 찾고 있습니다. –