근사 검색의 내부 작동 방식을 이해하는 것은 다항식 피팅, 매개변수 함수 및 초월 함수와 관련된 문제를 해결하는 데 중요합니다. 방정식. 이 접근 방식을 사용하면 엄격하게 단조롭지 않은 함수를 처리할 때에도 값과 매개변수를 효과적으로 추정할 수 있습니다.
근사 검색은 이진 검색의 개념을 모방하지만 그렇지 않습니다. 검색된 함수가 엄격하게 단조롭다는 제약을 부과하지 않습니다. 작동 방식은 다음과 같습니다.
다음은 근사치의 단순화된 C 구현입니다. 검색:
class approx { public: void init(double a0, double a1, double da, int n, double *e) { a0 = min(a0, a1); a1 = max(a0, a1); // Ensure a0 < a1 da = abs(da); this->n = n; e = e; e0 = -1.0; i = 0; a = a0; aa = a0; done = false; stop = false; } void step() { if ((e0 < 0.0) || (e0 > *e)) { e0 = *e; aa = a; } // Better solution if (stop) { i++; if (i >= n) { done = true; a = aa; return; } // Final solution a0 = aa - fabs(da); a1 = aa + fabs(da); a = a0; da *= 0.1; a0 += da; a1 -= da; stop = false; } else { a += da; if (a > a1) { a = a1; stop = true; } // Next point } } };
y = f(x)가 y0에 가장 가까운 x 값을 찾고 싶다고 가정해 보겠습니다. 근사 클래스를 사용하는 방법은 다음과 같습니다.
approx aa; double ee, x, y, x0, y0 = your_target_value; for (aa.init(0.0, 10.0, 0.1, 6, &ee); !aa.done; aa.step()) { x = aa.a; y = f(x); ee = abs(y - y0); }
위 내용은 근사 검색은 어떻게 비단조 함수의 값과 매개변수를 효율적으로 찾을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!