수치해석 연습문제풀이
- 최초 등록일
- 2009.07.02
- 최종 저작일
- 2009.07
- 26페이지/ 한컴오피스
- 가격 1,500원
소개글
한양대학교 이관수 교수님 수치해석 연습문제 숙제입니다
다른 교수님들에 비해 빡쌔게 한 숙제입니다
목차
없음
본문내용
문제 8. 의 가장 작은 양의 근인 를 Newton법으로 구하려고 한다. Newton법의 초기값 을 어떤 구간 내에서 택하여야만 overshooting이 일어나지 않고 근이 에 수렴하겠는가?
풀이
Newton법의 일반식을 써보면 다음과 같다.
여기에서 이다. 즉, Newton법은 에서 함수 와 도함수
의 값을 결정하고, 이들 값을 윗식에 대입하여 새로운 근사해 을 얻는다. 이 과정을 한계오차의 안에 들어올 때까지 수렴한다.
여기서 조심해야 할 것은 ‘cycling` 과 ’overshooting` 으로서 엉뚱한 값을 찾거나 계산시간이 늦어지는 것이다. 이를 피하기 위해 초기값의 선정과 프로그램의 최대 반복횟수를 약 20이 이내로 잡아 주는 것이 중요하다.
이를 코딩하면 다음과 같다.
C++ 입력예
#include <math.h>
#include <stdio.h>
#define pi 3.141592
void main(void){
double i,x=0.1,q,fprime,error,p2,p1=0,j=0,k=0; //변수 지정//
error=0.5/pow(10,5); //오차값 지정//
for(x;x<pi;x=x+0.00001){ //유효자릿수를 고려해 최소단위 결정//
p2=x; //p2->new, p1->old//
for(i=1;fabs((p2-p1)/p2)>error&&i<20;i++){
p1=p2;
q=cos(p1);
fprime=-sin(p1); //q 함수의 도함수//
p2=p1-(q/fprime); //일반식//
if(p2<0||p2>pi) break; //overshooting 방지//
}
참고 자료
없음