Anda di halaman 1dari 1

f = @(x,y) y;

tolerance = 0.0001;
n = 1000;
x_0
x_n
y_0
h =

= 0;
= 10;
= 1;
(x_n - x_0)/n;

i = 1;
X(i) = x_0;
Y(i) = y_0;
Y_hut(i) = 0;
while (X(i) < x_n)
k_1 = f(X(i), Y(i));
k_2 = f(X(i) + 1/3*h, Y(i) + 1/3*h*k_1);
k_3 = f(X(i) + 2/3*h, Y(i) + 2/3*h*k_2);
Y(i+1) = Y(i) + 1/4*h*( k_1 + 3*k_3 );
Y_hut(i+1) = Y(i) + 1/2*h*( k_2 + k_3 );
est = abs(Y_hut(i+1)-Y(i+1));
h_opt = 0.9*h*(tolerance/est)^(1/3);
if (est <= tolerance)
X(i+1) = X(i) + h;
Y(i+1) = Y(i+1);
h = min([h_opt, x_n-x_0]);
else
X(i+1) = X(i);
Y(i+1) = Y(i);
h = h_opt;
end
i = i + 1;
end
i
X(i)
Y(i)

Anda mungkin juga menyukai