From 87c92f4df946479f81e49ed725ad2e870ff103b4 Mon Sep 17 00:00:00 2001
From: VaishnavaHari S <cb.en.u4mee16159@cb.students.amrita.edu>
Date: Thu, 11 Oct 2018 14:41:12 +0530
Subject: [PATCH] Add new file

---
 kutta.m | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100644 kutta.m

diff --git a/kutta.m b/kutta.m
new file mode 100644
index 0000000..4488db7
--- /dev/null
+++ b/kutta.m
@@ -0,0 +1,54 @@
+% Runge-Kutta 4th order Method to find an approximate solution of y'=f(x,y)
+% with y(x(0))=y(0)
+clc; clear all;
+%input
+f_in = input('Enter the function f(x,y) = ','s');
+f = inline(f_in);
+x(1) = input('Enter the initial value of x = ');
+y(1) = input('Enter the initial value of y = ');
+h = input('Enter the step length h = ');
+xn  = input('enter the x value for which y is to be evaluated = ');
+% main program
+x = x(1):h:xn; % generating x values
+N=length(x); % number of iterations to be performed
+fprintf('itr \t x(i) \t y(i)\n')
+for i=1:N
+ fprintf('%d\t %f\t %f\n',i-1, x(i), y(i)); % print (x, y) in each iteration
+ k1=h*(f(x(i),y(i))); 
+ k2= h*f(x(i)+h/2,y(i)+k1/2);
+ k3= h*f(x(i)+h/2,y(i)+k2/2);
+ k4= h*f(x(i)+h,y(i)+k3);
+ y(i+1)= y(i)+(k1+2*(k2+k3)+k4)/6; % y(i+1) by RK4M
+end
+
+% simply you can print by using [x', y'] at the end by taking proper care
+% in the index !!
+
+% OUTPUT 1 --------------------------------------------------------------
+% Enter the function f(x,y) = (y-x)/(y+x)
+% Enter the initial value of x = 0
+% Enter the initial value of y = 1
+% Enter the step length h = .02
+% enter the x value for which y is to be evaluated = .1
+% itr 	 x(i) 	 y(i)
+% 0	 0.000000	 1.000000
+% 1	 0.020000	 1.019610
+% 2	 0.040000	 1.038479
+% 3	 0.060000	 1.056659
+% 4	 0.080000	 1.074195
+% 5	 0.100000	 1.091127
+
+% OUTPUT 2 --------------------------------------------------------------
+% Enter the function f(x,y) = x+y
+% Enter the initial value of x = 0
+% Enter the initial value of y = 1
+% Enter the step length h = .1
+% enter the x value for which y is to be evaluated = .5
+% itr 	 x(i) 	 y(i)
+% 0	 0.000000	 1.000000
+% 1	 0.100000	 1.110342
+% 2	 0.200000	 1.242805
+% 3	 0.300000	 1.399717
+% 4	 0.400000	 1.583648
+% 5	 0.500000	 1.797441
+
-- 
GitLab