728x90
반응형
가위치법 (regula false method)
● 이분법의 수렴 속도를 개선
● f(x1)과 f(x2)를 직선으로 연결시켜 이 직선과 x축이 만나는 점이 x3
1. if f(x1) * f(x3) < 0, x2 = x3
2. esle x1 = x3
#include <stdio.h> #include <math.h> #define THRESHOLD 0.000001 double f(double x) { double ret = 0; ret = x - exp(-x); return ret; } int main() { double x1 = 0; double x2 = 1; double x3 = 0; int i = 1; printf("i \t x1 \t\t x2 \t\t x3 \t\t f(x3) \n"); while (1) { x3 = x2 - ((f(x2) * (x2 - x1)) / (f(x2) - f(x1))); printf("%d \t %f \t\t %f \t\t %f \t\t %f \n", i, x1, x2, x3, f(x3)); if (f(x3) < THRESHOLD) break; if (f(x1) * f(x3) < 0) x2 = x3; else x1 = x3; i++; } return 0; }
결과
반응형
'수업 > 수치계산' 카테고리의 다른 글
[수치계산] 오차&비선형 방정식의 해 - Newton Raphson법 (0) | 2017.06.09 |
---|---|
[수치계산] 오차&비선형 방정식의 해 - 고정점 반복법 (0) | 2017.06.09 |
[수치계산] 오차&비선형 방정식의 해 - 이분법 (0) | 2017.06.09 |
[수치계산] 오차&비선형 방정식의 해 - 2 (0) | 2017.06.09 |
[수치계산] 오차&비선형 방정식의 해 - 1 (0) | 2017.06.09 |
댓글