[C언어] 1차원 조화진동자 구현 (4차 Runge-Kutta 방법)
- 최초 등록일
- 2007.06.01
- 최종 저작일
- 2007.05
- 4페이지/ 한컴오피스
- 가격 1,500원
소개글
C언어를 이용해 1차원 조화진동자(Harmonic Oscillator)의 단순, 감쇠(under-damping), 과도감쇠(overdampng), 임계제동(critical damping) 등 4가지 진동 유형을 구현해 본 예제입니다.
계산과정에서 Runge-Kutta 4차식을 이용했고, 도표는 엑셀로 출력했습니다.
(컴파일 환경: Microsoft Visual C++)
목차
(1) 프로그램 개요
(2) 프로그램 (환경 : Microsoft Visual C++)
(3) 결과
1) 단순 진동
2) 감쇠 진동(under-damping)
3) 과도 감쇠(overdamping)
4) 임계 제동(critical damping)
본문내용
<1차원 어울떨개(harmonic oscillator)>
(1) 프로그램 개요
1차원 어울떨개(조화진동자)의 위치와 속도 x, v는
,
로 나타낼 수 있는데, 위상차 는 초기값 , 에 따라 결정된다.
다음 프로그램에서는 진폭 로 두고, (감쇠상수)와 (각속도)를 조절하여 4가지 유형의 1차원 어울떨개를 구현했다. 계산 과정에 4차 Runge-Kutta식을 이용했고, 도표는 엑셀을 이용해 출력했다.
(2) 프로그램 (환경 : Microsoft Visual C++)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define dt 0.02 // 구현 시간 간격
#define A(x,v) (-2*Beta*v - pow(Omega_0,2)*x) // 가속도
#define pi 3.14159265
#define t_final 50 // 최종 시간
#define X_init cos(0) // x 초기값
#define V_init cos(pi/2) // v 초기값
double Beta=6; // 감쇠상수
double Omega_0=3; // 각속도
void increase(double &x, double &v) // 4차 Runge-Kutta 계산을 위한 함수
{
double k1_x, k2_x, k3_x, k4_x;
double k1_v, k2_v, k3_v, k4_v;
참고 자료
없음