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 a boundary 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 a boundary value ordinary differential equation?

%% SUMMARY

% Language : Matlab 2008a;

% Authors : Autar Kaw;

% Mfile available at

% http://numericalmethods.eng.usf.edu/blog/ode_boundaryvalue.m;

% Last Revised : May 26, 2009;

% Abstract: This program shows you how to solve an

% boundary value ordinary differential equation.

clc

clear all

%% INTRODUCTION

disp(‘ABSTRACT’)

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

disp(‘ a boundary value ordinary differential equation’)

disp(‘ ‘)

disp(‘AUTHOR’)

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

disp(‘ ‘)

disp(‘MFILE SOURCE’)

disp(‘ http://numericalmethods.eng.usf.edu/blog/ode_boundaryvalue.m’)

disp(‘ ‘)

disp(‘LAST REVISED’)

disp(‘ May 26, 2009’)

disp(‘ ‘)

%% INPUTS

% Solve the ordinary differential equation

% y”-0.0000002y=0.000000075*x*(75-x)

% Define x as a symbol

syms x

%The ODE

ode_eqn=’D2y-0.000002*y=0.000000075*x*(75-x)’;

% The initial conditions

iv_1=’y(0)=0′;

iv_2=’y(75)=0′;

% The value at which y is sought at

xval=37.5;

%% DISPLAYING INPUTS

disp(‘INPUTS’)

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

disp(func)

iv_explain=[‘ The boundary conditions are ‘ iv_1 ‘ ‘ iv_2];

disp(iv_explain)

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

disp(‘ ‘)

%% THE CODE

% Finding the solution of the ordinary differential equation

soln=dsolve(ode_eqn,iv_1,iv_2,’x’);

% 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: Numerical Methods for the STEM undergraduate at http://numericalmethods.eng.usf.edu, the textbook on Numerical Methods with Applications available from the lulu storefront, and the YouTube video lectures available at http://numericalmethods.eng.usf.edu/videos and http://www.youtube.com/numericalmethodsguy

Subscribe to the blog via a reader or email to stay updated with this blog. Let the information follow you.

how about for C language?

LikeLike