summaryrefslogtreecommitdiff
path: root/1332/CH15/EX15.24/15_24.sce
blob: 79894698afa45960e3e4f0319a313f8e140f0f77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//Example 15.24
//Improved Milne Simpson Predictor Corrector Method
//Page no. 546
clc;clear;close;

deff('y=f(x,y)','y=y-x^2')
y(1)=1;h=0.25;x=0;
printf('n\tXn\tYn\tfn\tY`n\tYn\tY`n+1\tm(n+1)\tv(n+1)\n------------------------------------------------------------------------\n')
f1(1)=f(x,y(1));
for i=1:3
    K1=h*f(x,y(i));
    K2=h*f(x+2*h/3,y(i)+2*K1/3);
    y(i+1)=y(i)+(K1+3*K2)/4
    printf(' %i\t%.3f\t%.3f\t%.3f\n',i-1,x,y(i),f1(i))
    x=x+h
    f1(i+1)=f(x,y(i+1))
end
Y31=0
for i=3:10
    Y41=y(i-2)+4*h*(2*f1(4)-f1(3)+2*f1(2))/3      //predictor
    m4=Y41+28*(y(i+1)-Y31)/29   //modifier
    v4=f(x+h,m4)     //evaluator
    Y4=y(i)+h*(v4+4*f1(4)+f1(3))/3       //corrector
    printf(' %i\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\n',i,x,y(i+1),f1(4),Y31,y(i+1),Y41,m4,v4)
    y(i+2)=Y4
    Y31=Y41;
    f1(2)=f1(3);
    f1(3)=f1(4);
    f1(4)=f(x+h,y(i+2))
    x=x+h
end