연습문제 5.2
2 . 문제 1의 초기값 문제에 대한 실제해가 다음에 주어져 있다. 각 단계의 실제 오차를 오차한계와 비교하여라.
a)
문제 1 : a) , 0≤t≤1, y(0)=0, h=0.5
b)
문제 1 : b) , 2≤t≤3, y(2)=1, h=0.5
c)
문제 1 : c) , 1≤t≤2, y(1)=2, h=0.25
d)
문제 1 : d) , 0≤t≤1, y(0)=1, h=0.25
연습문제 5.4
3 . 다음 초기값 문제에 대한 근사해를 Adams-Bashforth방법을 사용하여 구하아. 각 경우마다 4계의 Runge-Kutta 방법을 사용하여 구한 초기값을 사용하라. 결과를 실제값과 비교하라.
(a) , 1≤t≤2 , y(1)=1 , h=0.1 , 실제해 :
프로그램
#include
#include
double dy(double t,double y)
{
double k;
k = y/t - pow(y/t,2);
return (k);
}
void main()
{
int i,j;
double w[4][11],a[5],k1,k2,k3,k4,
h = 0.1 , tl = 1. , th = 2. ,
y[11],n,t = 0.;
n = (th-tl)/h;
a[0] = 1.;
for (i=0;i<=4;i++)
{
t = (double)i*h + tl ;
k1 = h*dy(t,a[i]);
k2 = h*dy(t+h/2.,a[i]+k1/2.);
k3 = h*dy(t+h/2.,a[i]+k2/2.);
k4 = h*dy(t+h,a[i]+k3);
a[i+1] = a[i] + (k1 + 2.*k2 + 2.*k3 + k4)/6.;
}
.... |