Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function euler
- % y' = (-y+x*sin(x))/x; y(1) = 0.3011687, x = [1, 2]
- x = [1, 2];
- y0 = 0.3011687;
- h1 = 0.1;
- h2 = 0.01;
- printf('\n I \n\n h1 = 0.1 \n y = %i', euler_method(x, y0, h1));
- printf('\n\n h2 = 0.01 \n y = %i\n\n\n', euler_method(x, y0, h2));
- printf(' II \n\n h1 = 0.1 \n y = %i', euler_midpoint(x, y0, h1));
- printf('\n\n h2 = 0.01 \n y = %i\n\n\n', euler_midpoint(x, y0, h2));
- end
- function y = euler_method(x, y_i, h)
- for x = x(1):h:x(2)
- y = y_i + h*f(x, y_i);
- y_i = y;
- endfor
- endfunction
- function y = euler_midpoint(x, y_i, h)
- for x = x(1):h:x(2)-h
- y = y_i + h/2*( f(x, y_i) + f(x+h, y_i + h*f(x, y_i)) );
- y_i = y;
- endfor
- endfunction
- function f = f(x, y)
- f = (-y + x*sin(x)) / x;
- endfunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement