Many students ask me how do I do this or that in MATLAB. So I thought why not have a small series of my next few blogs do that. In this blog, I show you how to solve an initial value ordinary differential equation.

- The MATLAB program link is here.
- The HTML version of the MATLAB program is here.
**DO NOT COPY AND PASTE THE PROGRAM BELOW BECAUSE THE SINGLE QUOTES DO NOT TRANSLATE TO THE CORRECT SINGLE QUOTES IN MATLAB EDITOR.****DOWNLOAD THE MATLAB PROGRAM****INSTEAD**

%% HOW DO I DO THAT IN MATLAB SERIES?

% In this series, I am answering questions that students have asked

% me about MATLAB. Most of the questions relate to a mathematical

% procedure.

%% TOPIC

% How do I solve an initial value ordinary differential equation?

%% SUMMARY

% Language : Matlab 2020b;

% Authors : Autar Kaw;

% Mfile available at

% http://nm.mathforcollege.com/blog/ode_initial_updated.m;

% Last Revised : December 22 2020;

% Abstract: This program shows you how to solve an

% initial value ordinary differential equation.

clc

clear all

%% INTRODUCTION

disp(‘ABSTRACT’)

disp(‘ This program shows you how to solve’)

disp(‘ an initial value ordinary differential equation’)

disp(‘ ‘)

disp(‘AUTHOR’)

disp(‘ Autar K Kaw of http://autarkaw.wordpress.com‘)

disp(‘ ‘)

disp(‘MFILE SOURCE’)

disp(‘ http://nm.mathforcollege.com/blog/ode_initial_updated.m‘)

disp(‘ ‘)

disp(‘LAST REVISED’)

disp(‘ Dec 22 2020’)

disp(‘ ‘)

%% INPUTS

% Solve the ordinary differential equation 3y”+5y’+7y=11exp(-x)

% Define x as a symbol

% Define y(x)n as a symbol also

syms x y(x)

%The ODE

Dy=diff(y);

ode_eqn=3*diff(y,x,2)+5*diff(y,x,1)+7*y == 11*exp(-13*x);

% The initial conditions

iv_1=Dy(0)==17;

iv_2=y(0)==19;

% The value at which y is sought at

xval=2.0;

%% DISPLAYING INPUTS

disp(‘INPUTS’)

func=[‘ The ODE to be solved is ‘ char(ode_eqn)];

disp(func)

iv_explain=[‘ The initial conditions are %s’ char(iv_1) ‘ ‘ char(iv_2)];

disp(iv_explain)

fprintf(‘ The value of y is sought at x=%g’,xval)

disp(‘ ‘)

%% THE CODE

conds=[iv_1 iv_2];

% Finding the solution of the ordinary differential equation

soln=dsolve(ode_eqn,conds);

soln=simplify(soln);

% vpa below uses variable-precision arithmetic (VPA) to compute each

% element of soln to 5 decimal digits of accuracy

soln=vpa(soln,5);

%% DISPLAYING OUTPUTS

disp(‘ ‘)

disp(‘OUTPUTS’)

output=[‘ The solution to the ODE is ‘ char(soln)];

disp(output)

value=subs(soln,x,xval);

fprintf(‘ The value of y at x=%g is %g’,xval,value)

disp(‘ ‘)

This post is brought to you by

- Holistic Numerical Methods Open Course Ware:
- Numerical Methods for the STEM undergraduate at http://nm.MathForCollege.com;
- Introduction to Matrix Algebra for the STEM undergraduate at http://ma.MathForCollege.com

- the textbooks on
- the Massive Open Online Course (MOOCs) available at