검색어 입력폼

수치해석 연습문제 풀이 6장

저작시기 2009.07 |등록일 2009.07.02 워드파일MS 워드 (doc) | 23페이지 | 가격 1,200원

소개글

한양대학교 기계공학부 수치해석 연습문제 풀이입니다

목차

없음

본문내용

이 과정을 10초까지 반복계산하는 프로그램을 다음과 같이 작성하였다.

#include<stdio.h>
#include<math.h>
#include <fstream.h>
float f(float y,float t); //y의 도함수 계산함수
float exact(float t); //엄밀해 계산함수
void main()
{
float t=0,h=0.1;
float k1,k2,k3,k4,y,ey;
float y0=1,error;
int i;
FILE *fout;
fout=fopen("Output.txt","w"); //출력 파일 OPEN
fprintf(fout," t 엄밀해y(t) 수치해y(t) 오차(%%)\n");
for(i=0;i<50;i++)fprintf(fout,"-");
fprintf(fout,"\n %3.2f\t%7.6f\t%7.6f\t%7.6f\n",t,exact(0),y0,t);
for(t=0;t<10;t+=h)
{
k1=h*f(y0,t); //k1계산
k2=h*f(y0+k1/2,t+h/2); //k2계산


k3=h*f(y0+k2/2,t+h/2); //k3계산
k4=h*f(y0+k3,t+h); //k4계산
y=y0+(k1+2*k2+2*k3+k4)/6; //수치해 계산
ey=exact(t+h); //엄밀해 계산
error=fabs(((ey-y)/ey)*100);
fprintf(fout," %3.2f\t%7.6f\t%7.6f\t%7.6f\n",t+h,ey,y,error);
y0=y; //초기값에 계산된 새로운값 입력
}
fclose(fout);
}

float f(float y,float t)
{
return(2*sin(t)+cos(t)-y);
}

float exact(float t)
{
return(0.5*(3*exp(-t)-cos(t)+3*sin(t)));
}


다음은 2초까지의 프로그램 실행 결과 이다.

참고 자료

없음
다운로드 맨위로