C 언어 프로 그래 밍 - 내용: 뉴턴 교체 법 으로 1 원 3 차 방정식 의 뿌리 를 구한다. 요구: 주 함수 에서 루트 함수 로 호출 하여 감사합니다.

C 언어 프로 그래 밍 - 내용: 뉴턴 교체 법 으로 1 원 3 차 방정식 의 뿌리 를 구한다. 요구: 주 함수 에서 루트 함수 로 호출 하여 감사합니다.


뉴턴 교체 법
뉴턴 교체 법 은 뉴턴 접선 법 이 라 고도 부 르 는데 다음 과 같은 방법 으로 뿌리 를 구한다. 먼저 진실 한 뿌리 와 가 까 운 값 x0 을 첫 번 째 유사 근 으로 설정 하고 x0 에서 f (x0) 를 구하 고 과 (x0, f (x0) 점 에서 f (x) 의 접선 을 하고 x 축 을 x 1 로 한다. 이 를 두 번 째 유사 근 으로 한 다음 에 x 1 에서 f (x1) 를 구하 고 다시 (x 1, f (x 1) 점 에서 f (x 1) 의 접선 선 을 만 들 고 x 2 축 에서 x 선 으로 한다.이렇게 계속 하면 진정한 x 에 가 까 워 질 때 까지.
그 중에서 f '(X0) 는 함수 가 X0 에 있 는 기울 임 률, 즉 X0 에 있 는 도체 이다.
코드 는 다음 과 같 습 니 다:
# include
# include
flat f (flat a, flat b, flat c, flat d, flat x)
{.
flat f;
f = (a * x + b) * x + c) * x + d;
return f;
}.
flat f1 (flat a, flat b, flat c, flat x)
{.
flat f;
f = (x * 3 * a + 2 * b) * x + c;
return f;
}.
flat root (flat a, flat b, flat c, flat d)
{.
flat x 0, x 1 = 1;
도.
{.
x0 = x1;
x1 = x0 - f (a, b, c, d, x0) / f1 (a, b, c, x0);
} while (fabs (x 1 - x0) > = 1 - 6);
return x 0;
}.
void main ()
{.
flat a, b, c, d, x;
printf ("input for flat numbers: \ n");
scanf ("% f% f% f% f", & a, & b, & c, & d);
x = 루트 (a, b, c, d);
printf ("% 1fx ^ 3 +% 1fx ^ 2 +% 1fx +% 1.1f = 0 its root near x = 1.5 is:% 4f \ n", a, b, c, d, x);
getch ();
}.



C + 프로 그래 밍: 뉴턴 교체 법 풀이 방정식 유사 근
뉴턴 교체 법 을 이용 하여 방정식 을 구하 다 f (x) = x * x - 3 * x - e (x 회 멱) + 2 = 0 은 x = 0 부근의 뿌리 이 고 오 차 는 0.5 * 10 (- 5 회 멱) 을 초과 하지 않 는 다.
고수 의 손길!


아주 간단 합 니 다. 당신 이 직접 쓰 세 요. 당신 에 게 아래 와 같이 힌트 를 드 립 니 다.
헤더 파일 추가:
# include
함수:
f (x) = x * x - 3.0 * x - exp (x) + 2.0;
1 단계 도체:
f2 (x) = 2.0 * x - 3.0 - exp (x);
반복 공식:
x1 = x0 - f (x0) / f2 (x0);
초기 값:
x 0 = 0. 0;
수렴 조건:
if (fabs (x 1 - x0) < 0.5E - 05) {성공;}
엘 스 {
x0 = x1;
돌아 가서 다시 교체 하 다.
}.



뉴턴 교체 법 으로 방정식 f (x) = x ^ 6 - x - 1 = 0 구간 [1, 2] 내의 실근 을 구하 고 | f (x) |


# include
# include
# define Eps 1 - 8
void main ()
{.
더 블 a = 1, b = 2;
더 블 t, t0, f0, f00, m, n;
 t0 = (a + b) / 2;
 m = pow (t0, 5);
 n = pow (t0, 4);
촤 f0 = 6 * m - 1;
촤 f00 = 30 * n;;
t 0 - f0 / f00;
 while (fabs (t - t0) > eps)
{.
촤 촤 t0 = t;
촤 촤 m = pow (t0, 5);
 n = pow (t0, 4);
촟 촟 f0 = 6 * m - 1;
촤 f00 = 30 * n;;
t 0 - f0 / f00;
촤 printf ("t0 =% 12.10 lf, t =% 12.10 lf \ n", t0, t);
}
 printf ("Newton 접선 법 으로 획득:% 12. 10 lf \ n", t);
}.
결과:
t 0 = 1. 20. 65843621, t = 0. 9809945654
t 0 = 0. 9809945654, t = 0. 82087881793
t 0 = 0. 8207881793, t = 0. 730742137
t0 = 0.730742137, t = 0.7013898132
t0 = 0.7013898132, t = 0.698457773
t0 = 0.698457773, t = 0.698821198
t0 = 0.698827198, t = 0.69882118
Newton 접선 법 으로 얻 은 것: 0.69882118
Press any key to contine ue