Scilab has a very important and useful in-built function ode() which can be used to evaluate an ordinary differential equation or a set of coupled first order differential equations.
The syntax is as follows:
y=ode(y0,x0,x,f)
where,
y0=initial value of y
x0=initial value of xx=value of x at which you want to calculate y.
The following examples illustrate the use of the ode to solve a given differential equation:
funcprot(0) clf; function dx=f(x, y) dx=exp(-x); endfunction y0=0; x0=0; x=[0:0.5:10]; sol=ode(y0,x0,x,f); plot2d(x,sol,5) xlabel('x'); ylabel('y(x)'); xtitle('y(x) vs. x');
Output:
funcprot(0) clf; function dx=f(x, y) dx=x^2-exp(-x)*y; endfunction y0=0; x0=0; x=[0:0.5:10]; sol=ode(y0,x0,x,f); plot2d(x,sol,5) xlabel('x'); ylabel('y(x)'); xtitle('y(x) vs. x');
Output:
Video:
If you’re new to Scilab and are looking for some good quality tutorials then check out this playlist:
Ph.D. researcher at Friedrich-Schiller University Jena, Germany. I’m a physicist specializing in computational material science. I write efficient codes for simulating light-matter interactions at atomic scales. I like to develop Physics, DFT, and Machine Learning related apps and software from time to time. Can code in most of the popular languages. I like to share my knowledge in Physics and applications using this Blog and a YouTube channel.
can we solve harmonic oscillator using ode command?but i am facing some problem.can you solve any 2nd order differential equation(physics based)
Hi there,
I have in fact created a couple of tutorials on how to sole a second order ode. Scilab can solve it numerically and then you can plot the results. So I believe a harmonic oscillator should be easy simulate.