Numerical solution using runge kutta with programming in c++

Post on 01-Dec-2014

1907 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Numerical Solution using Runge Kutta Method by the help of Programming in C++

Transcript

Vijay Choudhary

vijaycttf@gmail.com

Department of Civil Engineering

Poornima University, Jaipur

Introduction Formulation of the problem Solution of the problem Approximations, errors Graphical representation Conclusion References Further Scope

A physical problem of finding how much concentration of the pollutant would be there in a lake after certain time. To find the concentration of the bacteria (pollutant), the problem is modeled as an ordinary differential equation.

Runge Kutta 4th order method is used. Solutions obtained are compared with exact solutions and are graphically discussed and analyzed.

A polluted lake has an initial concentration of a bacteria of 107 parts/m3 , while the acceptable level is only 5*106 parts/m3 . The concentration of the bacteria will reduce as fresh water enters the lake. Find the concentration of the pollutant after 7 weeks.

006.0 Cdt

dC

The differential equation that governs the concentration C of the pollutant as a function of time (in weeks) is given by

We Use the Runge-Kutta 4th order method and take a step size of 3.5 weeks.

610)0(,006.0 CCdt

dC

#include<conio.h>#include<iostream.h>void main(){ float c[10],f,t[10],h,n; cout<<"enter the initial values of concentration of

bacteria "; int i; cin>>c[0]; cout<<"enter the initial value of time ";cin>>t[0]; cout<<"enter the value of time in weeks at which

we want to see the concentration ";cin>>f; cout<<"enter the difference ";cin>>h; n= (f-c[0])/h;

for(i=1;i<=n;i++){a=0 k1=-(.06*c[a]); k2=-h*(.06*(c[a]+k1/2)); k3=-h*(.06*(c[a]+k2/2)); k4=-h*(.06*(c[a]+k3)); k=(k1+2*k2+2*k3+k4)/6;

y[i]=y[a]+1;a++;

}Cout<<“\n Table";for(i=0;i<n;i++){ cout<<"\t x=%f\ty=%f",val[i][0],val[i][1]);cout<<"\n");getch();}

1

2

Figure 1 compare the exact solution with the numerical solution using Runge kutte 4th order method using different step size. It is observed that there is significant error when the calculation is done using Runge Kutte 4th order method with step size 7. This error can be minimized if we reduce the step size from 7 to 3.5. Now the numerical solution is close to the exact solution. Further reduction of step size from 3.5 to 1.75 does not bring any major error reduction.

In Figure 2, we are comparing the exact results with Runge Kutte 1st order method (Euler), Runge Kutte 2nd order method( Heun) and the Runge Kutte 4th order method. It is observed that 4th order method give close approximation to exact solution than Heun’s method and Euler’s method

Book Numerical Solutions using Programming in C++, Volume I, Mittal Publication

Chapter/Papers AP Azai , ., Graph Behaviour, Sindh College Of Engineering, Sindh (*paper)

64 Pages

Internet James Amtoel , Contouring and Its Applications[online] http://www.civilogyusa.gov

document [21/02/2014].

http://civilsimplified.com

http://www.bournemouth.ac.uk/library/using/numerical-equations.html

[Accessed 4 Feb 2014].

By the help of C++ program, it would be easy to analysis results on different cases like step size, initial conditions, boundary values, type of method etc.

Like application of 1st order differential equations in Radioactive science, we can use 2nd order differential equation in practical applications.

We can mould problems of Density, Population, Traffics etc into 2nd order differential equations and can study the behavior of result via graph on different inputs.

Program 1 Program 2

top related