검색어 입력폼

수치해석 과제 #2

저작시기 2009.09 |등록일 2010.01.08 한글파일한글 (hwp) | 14페이지 | 가격 400원

소개글

인하대 정동수 교수님 과제 2번째

C++을 이용한 수치해석 코딩과제입니다. 2009년 2학기에 쓰인 보고서이며,

모두 만점짜리 보고서입니다.

하지만 정동수 교수님 수치해석 보고서는 코멘트가 가장 중요하므로

이 보고서는 코딩하는데 참고만 하시고 코멘트는 직접쓰셨으면 좋겠습니다.

감사합니다.

목차

P.159 Problem 6.26.
P.204 Problem 8. 7.
P.204 Problem 8. 8.
P.205 Problem 8.12.

본문내용

코멘트
newton-raphson 방법은 한 점에서의 접선을 이용하는 방법으로 적은 반복으로 근을 찾아낼 수 있어 현재 가장 많이 쓰이는 방법이다. 하지만 이 방법을 사용하기 위해서는 함수의 미분값이 필요하다. 이 문제에서는 쉽게 미분값을 구할 수 있었지만 미분을 할 수 없는 경우는 사용이 불가하다.
newton-raphson 방식의 빠른 수렴속도를 비교하기 위해 위와 같이 false-position 방법을 이용해 근을 구해봤다. 결과는 newton-raphson의 경우 3회만에 0.006723으로 근에 수렴한 반면 false-position의 경우는 4회 만에 0.033845의 오차로 수렴하였다. 위에서 잡은 범위가 근에 가까웠기 때문에 비슷한 수치를 나타내었지만 범위를 더 넓게 잡을수록 newton-raphson가 훨씬 더 빠른 속도로 근에 근접할 것을 예상할 수 있었다.

P.204 Problem 8. 7.
그래프
< graphical method >
아래와 같은 모양을 나타낸다. 1.86E-03와 1.88E-03 사이에 근이 존재한다.
코딩
#include<iostream>
#include<cmath>
#include<iomanip>

using namespace std;

double a=12.61262068;
double b=0.001870749;
double T=223.15;
double P=65000;
double R=0.518;

double f(double v) //함수값
{
double f=0;
f=R*T/(v-b)-a/(v*(v+b))/sqrt(T)-P;
return f;
}
double df(double v)
{
double df=0;
df=-R*T/pow(v-b,2)+a/sqrt(T)/pow((v+b)*v,2)*(2*v+b);
return df;
다운로드 맨위로