How do I solve an initial value ODE problem in MATLAB? Updated for MATLAB 2020a

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 2008a;
% Authors : Autar Kaw;
% Mfile available at
% http://numericalmethods.eng.usf.edu/blog/ode_initial.m;
% Last Revised : May 14, 2009;
% 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 https://autarkaw.wordpress.com’)
disp(‘ ‘)
disp(‘MFILE SOURCE’)
disp(‘ http://numericalmethods.eng.usf.edu/blog/ode_initial.m’)
disp(‘ ‘)
disp(‘LAST REVISED’)
disp(‘ May 14, 2009’)
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

Using Microsoft Forms as a Personal Response System

While the pandemic has shifted our face-to-face classes to remote learning, finding new tools that are simple to use for the student as well as the instructor is quite a task.

One of the tools I am using to create the initial discussion in my weekly sessions for my Numerical Methods course at the University of South Florida is the  Microsoft Forms Quiz.  The quiz replaces the personal response system I used to use as that now costs students more than $30 a semester.  Microsoft Forms Pro is free to use.  To get it, just go to forms.office.com.

The quiz question options include the multiple-choice, fill-in-the-blank, and multiple-answers type of questions.  I do not use the quiz for grading or attendance. Hence, I do not have to worry about LMS compatibility or academic integrity – the quiz is just a plain way for the student to gauge their understanding so far and for the instructor to know what they know well and on what they may need help.

To avoid repeating what others have written succinctly about how to make a quiz, go here to learn how to develop a quiz and add a question, and if you are a STEM educator and want to add equations or math symbols, see an example here.

Mobile Preview

The pallete of equations is limited but does serve my purpose mostly for a Numerical Methods course.

Equation Pallete

For example, the pallete does not have options for matrices and integrals, but you can get around that by using an image.  However, only one image can be added to a question stem.  On top of that, an image is not an available feature at all for the options in a multiple-choice question.  To get around the limitation of one image in the question stem and none in the options, you can save the whole question and the options as an image (in MS word, make your text with equations, cut and paste them as a picture, right-click to save the picture as an image; alternatively, take a screenshot and crop it), and then use the options within MS Forms to direct to the choices.  See the figure below for an example.  However, do make images of small size in width so that they fit well on a smartphone without having to magnify the image.  A width of fewer than 600 pixels and keeping the height to be of similar magnitude as the width works best.

Using an image to present a question with many equations

The choices for previews are for a computer and a mobile phone; themes are available, but it is best to use simple school colors; the quiz can be shared with anyone through a link or QR code or embedded link or email.

Share Options

Here is an example of a quiz I made for the course.  Try it out by clicking on the link or by using your smartphone camera app to scan the QR code below. No one is grading, and I will not know who you are.

QR Code

Options for responses include accepting responses or not, and the start and end time.

Settings

How do I use a quiz in the class?

I use a tablet for the synchronous online sessions. I use Blackboard Collaborate Ultra as the live-streaming app (video conferencing tool) to teach the class.  It would be similar if you are using Zoom, MS Teams, or YouTube live-streaming.

While streaming the class, I paste the QR code image in an OneNote file and also put the link to the quiz in the chatbox of the streaming app as an alternative.

I open the quiz on a separate computer (a dual monitor connected to your tablet will do as well) so that I can see the responses getting updated in real-time. This gauges when the discussion about the quiz should resume, and how it should be conducted.

How do I refer to the quiz during the discussion so that I can write on the quiz itself as well? I just make a PDF file of the quiz and insert it into an OneNote page. Creating the PDF file is tricky because only the first page of the MS Forms Quiz can be printed.  To get all pages of the quiz printed as a PDF file, open a browser and go to the shareable link you gave to the students.  Now you can print all the pages of the quiz.

While discussing the quiz, students communicate verbally via their microphone or the chatbox of the streaming app. You can step it up and use break-out rooms of your streaming app to practice using the think-pair-share technique.

___________________

This post is brought to you by

How do I do that in MATLAB

HOW DO I DO THAT IN MATLAB SERIES?

A short sample programming project to exhibit how to submit one

Here is a short sample of the submission expectations for a programming project in numerical methods.

The assigned sample project assignment [PDF]; the corresponding mfile [m]; the expected complete submission report [PDF]; learn how to make a single pdf file from various parts of the sample project [BLOG].

COVID19 Regression Model and Other Thoughts

March 28, 2020
I am not an epidemiologist but do regression modeling for a living. I have done regression modeling to predict student grades just after the first test, and now we will be using adaptive learning metrics to improve our identification schemes even earlier in the semester. It is not to spell boom or doom to a student but only to intervene early with personalized recommendations.
Looking at whatever data I can use and have time to scrape, four things are reasonably clear at this time to me about COVID19.
1) First, the rate of infection is exponential but it does not stay like that forever.  The logistic function of the infection rate is analogous to how the mass of a moving rocket decreases as it burns up its fuel. F=ma, but m is not a constant.
2) Second, President Trump is finally thinking about quarantining NY, NJ, CT area. A little late but it will definitely decrease the power of the exponent.
3) Third, we have to get more testing done but one which is totally random. We could have found the effect of the spring breakers coming to FL and of the college kids being sent home to parents who are having kids late in life. Please do not send your grandkids to grandpa/grandma’s retirement home. They may be the children of the corn.
4) Fourth, Florida and Louisiana need to get their head straightened out and use tougher rules to keep people inside and a method to keep outsiders out. They are the next hot zone.

How to Make a PDF file

Before COVID19 hit our lives, it was so easy for the student to submit a hard copy.  Now with soft copies being asked for, they and the instructors have to learn a bit.

So, I had this programming assignment before COVID19 closed our face-to-face classes. It involved handwritten pages, a published file, and writing out a short description of conclusions with equations in a word processor.  The student would print them all out at home or at the university, and collate them.  But now it has to be scanned and uploaded to the CANVAS learning management system.

So, if these three types of documents were to be uploaded as one pdf file, what would you do.  I am assuming that everyone has a smartphone (an iPhone or an android phone)

If you have a printer and a scanner

Print all the documents and scan the document as a pdf file

If you have a printer but no scanner

Print all the documents.  Download the CamScanner app on your iPhone or Android and follow the instructions of this YouTube video.

Follow the directions up to the time it tells you how to email the document as I do not want you to email it to me.

If you have neither a printer nor a scanner

a) Take the handwritten documents. Download the CamScanner app on your iPhone or Android and follow the instructions of this

Follow the directions up to the time it tells you how to email the document as I want you to upload it to CANVAS.

b) For typing the pages that include equations, use MS 365 Word, and develop your document.  Save it as a .docx file first, and only then save it as .pdf file.  You can save a document as a pdf file within MS 365 Word itself.

c) a MATLAB file can be published as a pdf file. See https://autarkaw.org/2020/03/25/how-to-publish-in-matlab/

d) Merge pdf documents with Acrobat Pro. If you do not have Acrobat Pro as it costs money, use https://smallpdf.com/merge-pdf . Just drag the pdf files, and it will merge them for you.

____________________

The brute force way

(not recommended though but desperate times require desperate measures)

a) Take photos of each handwritten page.  Send the images to your email and save them on your computer.   Insert images (Insert -> Pictures in Word Menu) of the handwritten work into an MS 365 Word doc. But check your file size. It can get too big for CANVAS to handle and your internet to upload.  The limit may be 100MB.

b) For typing the pages that include equations, continue with the MS Word doc.

c) a MATLAB file can be published as a doc file. See https://autarkaw.org/2020/03/25/how-to-publish-in-matlab/  Cut and paste it into the word doc.

d) Save it as a .docx file first, and only then save it as .pdf file.  You can save a document as a pdf file within MS 365 Word itself.

______

This post is brought to you by

How to PUBLISH in MATLAB

This is how you can get your mfile published.

Click anywhere in the mfile (if your cursor is not in the mfile, you may not get the proper menu open)

-> Go to PUBLISH
-> Click on Down Black Arrow under Publish
-> Choose Edit Publishing Option
-> click on Output file format and the right column entry will show html, but if you click on html, you will get a drop-down box as shown in the figure below.  Choose your option.

You can click on the figure below to see a larger version of the figure.

____________________

This post is brought to you by

Ability to break long fprintf statements

Problem:
A student sent me an email – ” I can’t figure out how to continue my text on another line in the editor while using the fprintf command in MATLAB.  It seems like this should be something simple, but I can’t figure it out.  The closest thing I have tried is:
fprintf(‘filler filler filler’, …
‘filler filler’)

When I run this script, this only displays the content within the first set of quotes though.

Solution:
Assign the long strings to variables, and then use the fprintf statements

abc=’My name is’
def=’ Slim Shady, also known as Marshall Mathers’
fprintf([abc def])

or you could do the following, especially if you have other non-string variables to print

abc=’My name is’
def=’ Slim Shady, also known as Marshall Mathers’
fprintf(‘%s %s’,abc,def)

_____________________

This post is brought to you by

On Making A Video Lecture on iPad and Uploading to YouTube

On Making A Video Lecture on iPad and Uploading to YouTube

Guest Blogger: Rasim Guldiken

Date: March 20, 2020

While we are scrambling to take the courses we teach from face-to-face format to remote format, we all could use simple tools to make the process simple and easy to implement.  I have created two extensive tutorials.

The first tutorial  shows step-by-step instructions on screencasting your lecture with an iPad using any stylus, editing the video in the Imovie app of iPad, uploading it to YouTube, or directly to your LMS.

The second tutorial illustrates on how to embed any YouTube video to your Canvas LMS course content.

I have been recording and uploading the videos to my Canvas course since Spring 2019, but following the same procedure has been frustrating as it takes several hours for videos to process. I really can’t blame anyone; there is an unprecedented load to the servers.

That is the reason I created this alternative method tutorial on using 1) YouTube as a platform to upload and store your content  and then 2) embedding the videos to Canvas.

This process works flawlessly as the videos are not stored on the LMS servers.

About the guest blogger

Dr. Rasim Guldiken is an Associate Professor of Mechanical Engineering at the University of South Florida.  His engineering education interests lie in open courseware for a course in Fluid Mechanics, metacognitive activities, and flipped learning.