A javascript code for Romberg integration

As I am writing backend JavaScript for simulations in teaching Numerical Methods, I have also started developing some functions for some numerical techniques. Here is a function for Romberg integration.

function auto_integrator_trap_romb_hnm(func,a,b,nmax,tol_ae,tol_rae)
// INPUTS
// func=integrand
// a= lower limit of integration
// b= upper limit of integration
// nmax = number of partitions, n=2^nmax
// tol_ae= maximum absolute approximate error acceptable (should be >=0)
// tol_rae=maximum absolute relative approximate error acceptable (should be >=0)
// OUTPUTS
// integ_value= estimated value of integral

{
//Checking for input errors
	if (typeof a !== 'number') 
		{
		  throw new TypeError('<a> must be a number');
		}
    if (typeof b !== 'number') 
		{
		  throw new TypeError('<b> must be a number');
		}
    if ((!Number.isInteger(nmax)) || (nmax<1))
		{
		  throw new TypeError('<nmax> must be an integer greater than or equal to one.');
		}
	if ((typeof tol_ae !== 'number') || (tol_ae<0)) 
		{
		  throw new TypeError('<tole_ae> must be a number greater than or equal to zero');
		}
	if ((typeof tol_rae !== 'number') || (tol_rae<=0)) 
		{
		  throw new TypeError('<tole_ae> must be a number greater than or equal to zero');
		}
    
	var h=b-a
	// initialize matrix where the values of integral are stored
	
	var Romb = []; // rows
	for (var i = 0; i < nmax+1; i++) 
	{
		Romb.push([]);
		for (var j = 0; j < nmax+1; j++) 
		{
			Romb[i].push(math.bignumber(0)); 
		}
	}
	
	//calculating the value with 1-segment trapezoidal rule
	Romb[0][0]=0.5*h*(func(a)+func(b))
	var integ_val=Romb[0][0]
	
	for (var i=1; i<=nmax; i++)
	// updating the value with double the number of segments
	// by only using the values where they need to be calculated
	// See https://blog.autarkaw.com/2009/02/28/an-efficient-formula-for-an-automatic-integrator-based-on-trapezoidal-rule/
	{
		h=0.5*h
		var integ=0
		for (var j=1; j<=2**i-1; j+=2)
		{
			var integ=integ+func(a+j*h)
		}
	
		Romb[i][0]=0.5*Romb[i-1][0]+integ*h
		// Using Romberg method to calculate next extrapolatable value
		// See https://young.physics.ucsc.edu/115/romberg.pdf
		for (k=1; k<=i; k++)
		{   
			var addterm=Romb[i][k-1]-Romb[i-1][k-1]
			addterm=addterm/(4**k-1.0)
			Romb[i][k]=Romb[i][k-1]+addterm

			//Calculating absolute approximate error
			var Ea=math.abs(Romb[i][k]-Romb[i][k-1])
			
			//Calculating absolute relative approximate error
			var epsa=math.abs(Ea/Romb[i][k])*100.0
			
			//Assigning most recent value to the return variable
			integ_val=Romb[i][k]
			
			// returning the value if either tolerance is met
			if ((epsa<tol_rae) || (Ea<tol_ae))
			{
				return(integ_val)
			}
		}
	}
	// returning the last calculated value of integral whether tolerance is met or not
	return(integ_val)
}

Here we are testing it for a typical integrand of f(x)=1/x. Take it for a spin and see how well it works. Make it even better.

<!DOCTYPE html>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
<html>
<head>
	<title>A test for the automatic integrator based on Romberg integration and trapezoidal rule</title>
	https://cdnjs.cloudflare.com/ajax/libs/mathjs/5.1.2/math.min.js
	http://trap_romberg_2021.js
</head>
<body>
<script>
// This program is written to test the romberg integration scheme that is used
// as an automatic integrator
// INPUTS
// a= lower limit of integration
// b= upper limit of integraton
// nmax= number of partitions, segment is then 2^nmax 
// tol_ae= tolerance on absolute approximate error 
// tol_rae=tolerance on percentage absolute relative approximate error 
var a=0.001
var b=10
var nmax=20
var tol_ea=0.0
var tol_rae=0.0000000005

var abc=auto_integrator_trap_romb_hnm(func,a,b,nmax,tol_ea,tol_rae)
console.log("romberg "+abc)

var exact=math.log(b)-math.log(a)
console.log("exact "+exact)
function func(x)
{
   //val=math.exp(-x)
   //var pi=4*math.atan(1.0)
   //var val=2/math.sqrt(pi)*math.exp(-x*x)
   var val=1/x
   return(val)
}
</script>
</body>
</html>

____________________________

This post is brought to you by

Canvas quiz times for accommodating students with disabilities

Before the pandemic, university students would go to a student-accessibility-services office to take their scheduled examinations and get their needs accommodated.  These accommodations include additional time, a separate room to read aloud, and quiet environments. During the pandemic, accommodations for online examinations are generally monitored by the instructor, provided they only involve giving extra time.

I have made a mistake or two while hand calculating the assigned due time or the additional time that needs to be input in the learning management system such as CANVAS. To minimize such mistakes, I made an excel file, and it has worked well so far. In this blog, I share the excel file with you.   http://www.eng.usf.edu/~kaw/SAS/starting_end_time_for_students_with_accomodations.xlsx

Use the spreadsheet as you see fit. I have protected the cells in the excel file so that they do not get changed inadvertently – you can always unprotect (go to Review->Unprotect in the excel menu) the excel sheet and make modifications to suit your needs.

The inputs are

  1. starting time of the test or when you want the students to have access to the test
  2. time in minutes you want students to be working on the test
  3. time in minutes given to students for uploading files, if any (needed for submitting handwritten free responses, for instance) and
  4. Time over and above the length of the test to create a window in which the test is available.

The instructions for entering the above inputs are as follows.

  1. Enter the starting times in Row 10 (Columns H thru N): e.g., 2:00 PM. Mind the space between 2:00 and PM.
  2. Put the time in minutes for the test in cell H11
  3. Put the time in minutes for uploading of a file, if any. in cell H12. Enter zero if no uploading of the file is needed.
  4. Put the extra time in minutes in cell H13 for creating a window for the test.

Let’s take an example. I want to give a test that is 40-minutes long that requires students to handwrite free-responses to posed questions. They will be given additional 10 minutes to make a PDF file of the free-responses and upload the file. I want the test to start at 11:40 AM for all students but make it due at 12:45 PM, and hence give a window of 65 minutes within which to complete the test. So the extra time given in minutes to create the window is 15 minutes (65-40-10=15). Based on the example, I would enter 11:40 AM in Row 10 (Columns H thru N), 40 in cell H11, 10 in cell H12, and 15 in cell H13.

The outputs that are needed for the CANVAS LMS are shown in green color. Do not forget to go to publish the quiz, and then go to “Moderate Quiz” to add the extra time for the accommodated students.

Two of the links below are just references to show how to add extra time and add the names of students who get extra time.

Source: https://community.canvaslms.com/t5/Instructor-Guide/How-do-I-assign-a-quiz-to-an-individual-student/ta-p/714

Source: https://support.canvas.fsu.edu/kb/article/977-how-to-allow-extra-time-for-students-on-a-canvas-assessment/

____________________________

This post is brought to you by

A prompt for students to write a discussion post on the most difficult topic in a chapter.

Here is a prompt for students to write a short discussion post on what they found difficult in a particular chapter.

In 50-100 words or more, describe in complete sentences the most difficult concept or exercise for Chapters 01.XX for you or for a classmate. Include categorically why one would struggle with it. This assignment is extra credit for 5 points on the “Online Assignments”.

Grading Criteria

Submissions will be graded on a simple rubric for thoughtfulness, thoroughness, and completeness. Students are expected to answer all prompts with care and in good faith.

A thoughtful, thorough, and complete answer will get you 5 points
An attempt missing mostly one of the above requirements will fetch you 2.5 points
An attempt missing mostly two of the above requirements, or is irrelevant or is generic will be marked 0 points.

An example of a reasonable answer from your differential calculus course could be – “I found the fundamental theorem of calculus to be a different concept because one used dummy variables in the integrals and the upper limit of the integral was a variable. I am used to definite integrals with numbers as the limits of integration.  But when I looked at both parts of the fundamental theorem and worked through a generic example, I was able to get it”

How do I do that in MATLAB for USF students

 

Gaussian quadrature and weights listed as scrapeable data

This file consists of Gauss quadrature points and weights from n=1 to n=30. The blank spaces separate out the value of n, quadrature points, and weights. The points and weights are for the integration limits of [-1,1]. To convert to any finite integration limits [a,b], multiply the weights by (b-a)/2 and use (b-a)/2*QuadPoint+(b+a)/2 for the quadrature points. The data is also given in a scrapeable textfile at https://mathforcollege.com/nm/blog/QuadPointsWeightsUpTo30.txt

 1

0

2.0

 2

-0.57735026918962576450914878050196
0.57735026918962576450914878050196

1.0
1.0

 3

-0.77459666924148337703585307995648
0
0.77459666924148337703585307995648

0.55555555555555555555555555555556
0.88888888888888888888888888888889
0.55555555555555555555555555555556

 4

-0.86113631159405257522394648889281
-0.33998104358485626480266575910324
0.33998104358485626480266575910324
0.86113631159405257522394648889281

0.347854845137453857373063949222
0.652145154862546142626936050778
0.652145154862546142626936050778
0.347854845137453857373063949222

 5

-0.90617984593866399279762687829939
-0.53846931010568309103631442070021
0
0.53846931010568309103631442070021
0.90617984593866399279762687829939

0.23692688505618908751426404071992
0.47862867049936646804129151483564
0.56888888888888888888888888888889
0.47862867049936646804129151483564
0.23692688505618908751426404071992

 6

-0.93246951420315202781230155449399
-0.66120938646626451366139959501991
-0.23861918608319690863050172168071
0.23861918608319690863050172168071
0.66120938646626451366139959501991
0.93246951420315202781230155449399

0.17132449237917034504029614217273
0.36076157304813860756983351383772
0.46791393457269104738987034398955
0.46791393457269104738987034398955
0.36076157304813860756983351383772
0.17132449237917034504029614217273

 7

-0.94910791234275852452618968404785
-0.74153118559939443986386477328079
-0.40584515137739716690660641207696
0
0.40584515137739716690660641207696
0.74153118559939443986386477328079
0.94910791234275852452618968404785

0.12948496616886969327061143267908
0.27970539148927666790146777142378
0.38183005050511894495036977548898
0.41795918367346938775510204081633
0.38183005050511894495036977548898
0.27970539148927666790146777142378
0.12948496616886969327061143267908

 8

-0.96028985649753623168356086856947
-0.79666647741362673959155393647583
-0.52553240991632898581773904918925
-0.18343464249564980493947614236018
0.18343464249564980493947614236018
0.52553240991632898581773904918925
0.79666647741362673959155393647583
0.96028985649753623168356086856947

0.10122853629037625915253135430996
0.22238103445337447054435599442624
0.3137066458778872873379622019866
0.3626837833783619829651504492772
0.3626837833783619829651504492772
0.3137066458778872873379622019866
0.22238103445337447054435599442624
0.10122853629037625915253135430996

 9

-0.96816023950762608983557620290367
-0.83603110732663579429942978806973
-0.61337143270059039730870203934147
-0.32425342340380892903853801464334
0
0.32425342340380892903853801464334
0.61337143270059039730870203934147
0.83603110732663579429942978806973
0.96816023950762608983557620290367

0.081274388361574411971892158110524
0.18064816069485740405847203124291
0.26061069640293546231874286941863
0.31234707704000284006863040658444
0.33023935500125976316452506928697
0.31234707704000284006863040658444
0.26061069640293546231874286941863
0.18064816069485740405847203124291
0.081274388361574411971892158110524

10

-0.97390652851717172007796401208445
-0.86506336668898451073209668842349
-0.67940956829902440623432736511487
-0.43339539412924719079926594316578
-0.14887433898163121088482600112972
0.14887433898163121088482600112972
0.43339539412924719079926594316578
0.67940956829902440623432736511487
0.86506336668898451073209668842349
0.97390652851717172007796401208445

0.066671344308688137593568809893332
0.1494513491505805931457763396577
0.21908636251598204399553493422816
0.26926671930999635509122692156947
0.29552422471475287017389299465134
0.29552422471475287017389299465134
0.26926671930999635509122692156947
0.21908636251598204399553493422816
0.1494513491505805931457763396577
0.066671344308688137593568809893332

11

-0.97822865814605699280393800112286
-0.88706259976809529907515776930393
-0.73015200557404932409341625203115
-0.51909612920681181592572566945861
-0.26954315595234497233153198540086
0
0.26954315595234497233153198540086
0.51909612920681181592572566945861
0.73015200557404932409341625203115
0.88706259976809529907515776930393
0.97822865814605699280393800112286

0.055668567116173666482753720442549
0.12558036946490462463469429922394
0.18629021092773425142609764143166
0.23319376459199047991852370484318
0.26280454451024666218068886989051
0.27292508677790063071448352833634
0.26280454451024666218068886989051
0.23319376459199047991852370484318
0.18629021092773425142609764143166
0.12558036946490462463469429922394
0.055668567116173666482753720442549

12

-0.98156063424671925069054909014928
-0.9041172563704748566784658661191
-0.76990267419430468703689383321282
-0.58731795428661744729670241894053
-0.36783149899818019375269153664372
-0.12523340851146891547244136946385
0.12523340851146891547244136946385
0.36783149899818019375269153664372
0.58731795428661744729670241894053
0.76990267419430468703689383321282
0.9041172563704748566784658661191
0.98156063424671925069054909014928

0.047175336386511827194615961485017
0.106939325995318430960254718194
0.16007832854334622633465252954336
0.2031674267230659217490644558098
0.23349253653835480876084989892488
0.24914704581340278500056243604295
0.24914704581340278500056243604295
0.23349253653835480876084989892488
0.2031674267230659217490644558098
0.16007832854334622633465252954336
0.106939325995318430960254718194
0.047175336386511827194615961485017

13

-0.98418305471858814947282944880711
-0.91759839922297796520654783650072
-0.80157809073330991279420648958286
-0.64234933944034022064398460699552
-0.44849275103644685287791285212764
-0.23045831595513479406552812109799
0
0.23045831595513479406552812109799
0.44849275103644685287791285212764
0.64234933944034022064398460699552
0.80157809073330991279420648958286
0.91759839922297796520654783650072
0.98418305471858814947282944880711

0.040484004765315879520021592200986
0.092121499837728447914421775953797
0.13887351021978723846360177686887
0.1781459807619457382800466919961
0.20781604753688850231252321930605
0.22628318026289723841209018603978
0.23255155323087391019458951526884
0.22628318026289723841209018603978
0.20781604753688850231252321930605
0.1781459807619457382800466919961
0.13887351021978723846360177686887
0.092121499837728447914421775953797
0.040484004765315879520021592200986

14

-0.98628380869681233884159726670405
-0.92843488366357351733639113937787
-0.82720131506976499318979474265039
-0.68729290481168547014801980301933
-0.51524863635815409196529071855119
-0.31911236892788976043567182416848
-0.10805494870734366206624465021983
0.10805494870734366206624465021983
0.31911236892788976043567182416848
0.51524863635815409196529071855119
0.68729290481168547014801980301933
0.82720131506976499318979474265039
0.92843488366357351733639113937787
0.98628380869681233884159726670405

0.035119460331751863031832876138192
0.080158087159760209805633277062854
0.12151857068790318468941480907248
0.15720316715819353456960193862384
0.18553839747793781374171659012516
0.20519846372129560396592406566122
0.21526385346315779019587644331626
0.21526385346315779019587644331626
0.20519846372129560396592406566122
0.18553839747793781374171659012516
0.15720316715819353456960193862384
0.12151857068790318468941480907248
0.080158087159760209805633277062854
0.035119460331751863031832876138192

15

-0.98799251802048542848956571858661
-0.93727339240070590430775894771021
-0.84820658341042721620064832077422
-0.72441773136017004741618605461394
-0.57097217260853884753722673725391
-0.39415134707756336989720737098105
-0.2011940939974345223006283033946
0
0.2011940939974345223006283033946
0.39415134707756336989720737098105
0.57097217260853884753722673725391
0.72441773136017004741618605461394
0.84820658341042721620064832077422
0.93727339240070590430775894771021
0.98799251802048542848956571858661

0.030753241996117268354628393577204
0.070366047488108124709267416450667
0.10715922046717193501186954668587
0.13957067792615431444780479451103
0.16626920581699393355320086048121
0.18616100001556221102680056186642
0.19843148532711157645611832644384
0.20257824192556127288062019996752
0.19843148532711157645611832644384
0.18616100001556221102680056186642
0.16626920581699393355320086048121
0.13957067792615431444780479451103
0.10715922046717193501186954668587
0.070366047488108124709267416450667
0.030753241996117268354628393577204

16

-0.98940093499164993259615417345033
-0.94457502307323257607798841553461
-0.86563120238783174388046789771239
-0.75540440835500303389510119484744
-0.61787624440264374844667176404879
-0.45801677765722738634241944298358
-0.2816035507792589132304605014605
-0.095012509837637440185319335424958
0.095012509837637440185319335424958
0.2816035507792589132304605014605
0.45801677765722738634241944298358
0.61787624440264374844667176404879
0.75540440835500303389510119484744
0.86563120238783174388046789771239
0.94457502307323257607798841553461
0.98940093499164993259615417345033

0.027152459411754094851780572456018
0.062253523938647892862843836994378
0.095158511682492784809925107602246
0.12462897125553387205247628219202
0.14959598881657673208150173054748
0.16915651939500253818931207903036
0.18260341504492358886676366796922
0.18945061045506849628539672320828
0.18945061045506849628539672320828
0.18260341504492358886676366796922
0.16915651939500253818931207903036
0.14959598881657673208150173054748
0.12462897125553387205247628219202
0.095158511682492784809925107602246
0.062253523938647892862843836994378
0.027152459411754094851780572456018

17

-0.99057547531441733567543401994067
-0.9506755217687677612227169578958
-0.88023915372698590212295569448816
-0.78151400389680140692523005552048
-0.657671159216690765850302216643
-0.51269053708647696788624656862955
-0.35123176345387631529718551709535
-0.17848418149584785585067749365407
0
0.17848418149584785585067749365407
0.35123176345387631529718551709535
0.51269053708647696788624656862955
0.657671159216690765850302216643
0.78151400389680140692523005552048
0.88023915372698590212295569448816
0.9506755217687677612227169578958
0.99057547531441733567543401994067

0.024148302868547931960110026287565
0.055459529373987201129440165358245
0.085036148317179180883535370191062
0.11188384719340397109478838562636
0.13513636846852547328631998170235
0.15404576107681028808143159480196
0.16800410215645004450997066378832
0.1765627053669926463252709901132
0.17944647035620652545826564426189
0.1765627053669926463252709901132
0.16800410215645004450997066378832
0.15404576107681028808143159480196
0.13513636846852547328631998170235
0.11188384719340397109478838562636
0.085036148317179180883535370191062
0.055459529373987201129440165358245
0.024148302868547931960110026287565

18

-0.99156516842093094673001600470615
-0.95582394957139775518119589292978
-0.89260246649755573920606059112715
-0.80370495897252311568241745501459
-0.69168704306035320787489108128885
-0.55977083107394753460787154852533
-0.41175116146284264603593179383305
-0.25188622569150550958897285487791
-0.084775013041735301242261852935784
0.084775013041735301242261852935784
0.25188622569150550958897285487791
0.41175116146284264603593179383305
0.55977083107394753460787154852533
0.69168704306035320787489108128885
0.80370495897252311568241745501459
0.89260246649755573920606059112715
0.95582394957139775518119589292978
0.99156516842093094673001600470615

0.021616013526483310313342710266452
0.049714548894969796453334946202639
0.076425730254889056529129677616637
0.10094204410628716556281398492483
0.1225552067114784601845191268002
0.14064291467065065120473130375195
0.15468467512626524492541800383637
0.16427648374583272298605377646593
0.16914238296314359184065647013499
0.16914238296314359184065647013499
0.16427648374583272298605377646593
0.15468467512626524492541800383637
0.14064291467065065120473130375195
0.1225552067114784601845191268002
0.10094204410628716556281398492483
0.076425730254889056529129677616637
0.049714548894969796453334946202639
0.021616013526483310313342710266452

19

-0.99240684384358440318901767025326
-0.96020815213483003085277884068765
-0.90315590361481790164266092853231
-0.82271465653714282497892248671271
-0.72096617733522937861709586082378
-0.60054530466168102346963816494624
-0.4645707413759609457172671481041
-0.31656409996362983199011732884984
-0.16035864564022537586809611574074
0
0.16035864564022537586809611574074
0.31656409996362983199011732884984
0.4645707413759609457172671481041
0.60054530466168102346963816494624
0.72096617733522937861709586082378
0.82271465653714282497892248671271
0.90315590361481790164266092853231
0.96020815213483003085277884068765
0.99240684384358440318901767025326

0.019461788229726477036312041464438
0.044814226765699600332838157401994
0.069044542737641226580708258006013
0.09149002162244999946446209412384
0.11156664554733399471602390168177
0.12875396253933622767551578485688
0.1426067021736066117757461094419
0.15276604206585966677885540089766
0.15896884339395434764995643946505
0.16105444984878369597916362532092
0.15896884339395434764995643946505
0.15276604206585966677885540089766
0.1426067021736066117757461094419
0.12875396253933622767551578485688
0.11156664554733399471602390168177
0.09149002162244999946446209412384
0.069044542737641226580708258006013
0.044814226765699600332838157401994
0.019461788229726477036312041464438

20

-0.99312859918509492478612238847132
-0.96397192727791379126766613119728
-0.9122344282513259058677524412033
-0.83911697182221882339452906170152
-0.74633190646015079261430507035564
-0.63605368072651502545283669622629
-0.51086700195082709800436405095525
-0.37370608871541956067254817702493
-0.22778585114164507808049619536857
-0.076526521133497333754640409398838
0.076526521133497333754640409398838
0.22778585114164507808049619536857
0.37370608871541956067254817702493
0.51086700195082709800436405095525
0.63605368072651502545283669622629
0.74633190646015079261430507035564
0.83911697182221882339452906170152
0.9122344282513259058677524412033
0.96397192727791379126766613119728
0.99312859918509492478612238847132

0.017614007139152118311861962351853
0.040601429800386941331039952274932
0.062672048334109063569506535187042
0.083276741576704748724758143222046
0.10193011981724043503675013548035
0.11819453196151841731237737771138
0.13168863844917662689849449974816
0.14209610931838205132929832506716
0.14917298647260374678782873700197
0.1527533871307258506980843319551
0.1527533871307258506980843319551
0.14917298647260374678782873700197
0.14209610931838205132929832506716
0.13168863844917662689849449974816
0.11819453196151841731237737771138
0.10193011981724043503675013548035
0.083276741576704748724758143222046
0.062672048334109063569506535187042
0.040601429800386941331039952274932
0.017614007139152118311861962351853

21

-0.99375217062038950026024203593794
-0.9672268385663062943166222149077
-0.92009933415040082879018713371496
-0.85336336458331728364725063858757
-0.76843996347567790861587785130622
-0.66713880419741231930596666999034
-0.55161883588721980705901879672431
-0.42434212020743878357366888854379
-0.2880213168024010966007925160646
-0.14556185416089509093703098233869
0
0.14556185416089509093703098233869
0.2880213168024010966007925160646
0.42434212020743878357366888854379
0.55161883588721980705901879672431
0.66713880419741231930596666999034
0.76843996347567790861587785130623
0.85336336458331728364725063858756
0.92009933415040082879018713371497
0.96722683856630629431662221490769
0.99375217062038950026024203593794

0.016017228257774333324224616858403
0.036953789770852493799950668299422
0.057134425426857208283635826472357
0.076100113628379302017051653300256
0.093444423456033861553289741113883
0.10879729916714837766347457807013
0.12183141605372853419536717712572
0.13226893863333746178105257449678
0.13988739479107315472213342386758
0.14452440398997005906382716655375
0.14608113364969042719198514768337
0.14452440398997005906382716655375
0.13988739479107315472213342386758
0.13226893863333746178105257449678
0.12183141605372853419536717712574
0.1087972991671483776634745780701
0.09344442345603386155328974111395
0.076100113628379302017051653300153
0.057134425426857208283635826472488
0.036953789770852493799950668299287
0.016017228257774333324224616858503

22

-0.9942945854823992920730314211613
-0.97006049783542872712395098676527
-0.92695677218717400052069293925905
-0.86581257772030013653642563701938
-0.78781680597920816200427795540835
-0.69448726318668278005068983576226
-0.58764040350691159295887692763865
-0.46935583798675702640633071096641
-0.34193582089208422515814742042738
-0.20786042668822128547884653391955
-0.069739273319722221213841796118628
0.069739273319722221213841796118628
0.20786042668822128547884653391955
0.34193582089208422515814742042738
0.46935583798675702640633071096641
0.58764040350691159295887692763865
0.69448726318668278005068983576226
0.78781680597920816200427795540835
0.86581257772030013653642563701938
0.92695677218717400052069293925905
0.97006049783542872712395098676527
0.9942945854823992920730314211613

0.014627995298272200684991098047185
0.033774901584814154793302246865913
0.052293335152683285940312051273211
0.069796468424520488094961418930218
0.085941606217067727414443681372703
0.10041414444288096493207883783054
0.11293229608053921839340060742178
0.12325237681051242428556098615481
0.13117350478706237073296499253031
0.13654149834601517135257383123152
0.13925187285563199337541024834181
0.13925187285563199337541024834181
0.13654149834601517135257383123152
0.13117350478706237073296499253031
0.12325237681051242428556098615481
0.11293229608053921839340060742178
0.10041414444288096493207883783054
0.085941606217067727414443681372703
0.069796468424520488094961418930218
0.052293335152683285940312051273211
0.033774901584814154793302246865913
0.014627995298272200684991098047185

23

-0.99476933499755212352392571544557
-0.97254247121811523195602407682078
-0.93297108682601610234919698903842
-0.87675235827044166737815688593415
-0.80488840161883989215111840699678
-0.71866136313195019446162448374862
-0.6196098757636461563850973116496
-0.50950147784600754968979304786685
-0.39030103803029083142148887288061
-0.26413568097034493053386953828331
-0.13325682429846611093174268224177
0
0.13325682429846611093174268224177
0.26413568097034493053386953828331
0.39030103803029083142148887288061
0.50950147784600754968979304786685
0.6196098757636461563850973116496
0.71866136313195019446162448374862
0.80488840161883989215111840699678
0.87675235827044166737815688593415
0.93297108682601610234919698903842
0.97254247121811523195602407682078
0.99476933499755212352392571544557

0.013411859487141772081309493458615
0.030988005856979444310694219641885
0.048037671731084668571641071632034
0.064232421408525852127169615158911
0.079281411776718954922892524742043
0.092915766060035147477018617369765
0.10489209146454141007408618501474
0.11499664022241136494164351293396
0.12304908430672953046757840067201
0.12890572218808214997859533939979
0.13246203940469661737164246470332
0.13365457218610617535145711054584
0.13246203940469661737164246470332
0.12890572218808214997859533939979
0.12304908430672953046757840067201
0.11499664022241136494164351293396
0.10489209146454141007408618501474
0.092915766060035147477018617369765
0.079281411776718954922892524742043
0.064232421408525852127169615158911
0.048037671731084668571641071632034
0.030988005856979444310694219641885
0.013411859487141772081309493458615

24

-0.99518721999702136017999740970074
-0.97472855597130949819839199300817
-0.93827455200273275852364900170872
-0.8864155270044010342131543419822
-0.82000198597390292195394987266975
-0.74012419157855436424382810309998
-0.64809365193697556925249578691075
-0.54542147138883953565837561721837
-0.43379350762604513848708423191335
-0.31504267969616337438679329131981
-0.19111886747361630915863982075707
-0.064056892862605626085043082624745
0.064056892862605626085043082624745
0.19111886747361630915863982075707
0.31504267969616337438679329131981
0.43379350762604513848708423191335
0.54542147138883953565837561721837
0.64809365193697556925249578691075
0.74012419157855436424382810309998
0.82000198597390292195394987266975
0.8864155270044010342131543419822
0.93827455200273275852364900170872
0.97472855597130949819839199300817
0.99518721999702136017999740970074

0.012341229799987199546805667070037
0.028531388628933663181307815951878
0.044277438817419806168602748211338
0.059298584915436780746367758500109
0.073346481411080305734033615253117
0.086190161531953275917185202983743
0.097618652104113888269880664464247
0.10744427011596563478257734244661
0.11550566805372560135334448390678
0.12167047292780339120446315347626
0.12583745634682829612137538251118
0.1279381953467521569740561652247
0.1279381953467521569740561652247
0.12583745634682829612137538251118
0.12167047292780339120446315347626
0.11550566805372560135334448390678
0.10744427011596563478257734244661
0.097618652104113888269880664464247
0.086190161531953275917185202983743
0.073346481411080305734033615253117
0.059298584915436780746367758500109
0.044277438817419806168602748211338
0.028531388628933663181307815951878
0.012341229799987199546805667070037

25

-0.9955569697904980979087849468939
-0.97666392145951751149831538647959
-0.94297457122897433941401116965847
-0.8949919978782753688510420067828
-0.83344262876083400142102110869357
-0.75925926303735763057728286520436
-0.67356636847346836448512063324762
-0.57766293024122296772368984161265
-0.47300273144571496052218211500919
-0.36117230580938783773582173012764
-0.24386688372098843204519036279745
-0.12286469261071039638735981880804
0
0.12286469261071039638735981880804
0.24386688372098843204519036279745
0.36117230580938783773582173012764
0.47300273144571496052218211500919
0.57766293024122296772368984161265
0.67356636847346836448512063324762
0.75925926303735763057728286520436
0.83344262876083400142102110869357
0.8949919978782753688510420067828
0.94297457122897433941401116965847
0.97666392145951751149831538647959
0.9955569697904980979087849468939

0.011393798501026287947902964113235
0.026354986615032137261901815295299
0.040939156701306312655623487711646
0.054904695975835191925936891540473
0.068038333812356917207187185656708
0.080140700335001018013234959669111
0.091028261982963649811497220702892
0.10053594906705064420220689039269
0.10851962447426365311609395705012
0.11485825914571164833932554586956
0.1194557635357847722281781265129
0.12224244299031004168895951894585
0.12317605372671545120390287307905
0.12224244299031004168895951894585
0.1194557635357847722281781265129
0.11485825914571164833932554586956
0.10851962447426365311609395705012
0.10053594906705064420220689039269
0.091028261982963649811497220702892
0.080140700335001018013234959669111
0.068038333812356917207187185656708
0.054904695975835191925936891540473
0.040939156701306312655623487711646
0.026354986615032137261901815295299
0.011393798501026287947902964113235

26

-0.99588570114561692900321695932291
-0.97838544595647099110058035431193
-0.94715906666171425013591528351804
-0.90263786198430707421766559923121
-0.84544594278849801879750706146784
-0.77638594882067885619296724724228
-0.69642726041995726486381391372942
-0.60669229301761806323197874691689
-0.50844071482450571769570306472557
-0.40305175512348630648107737709888
-0.29200483948595689514283538207783
-0.17685882035689018396905774841834
-0.059230093429313207093718575198403
0.059230093429313207093718575198403
0.17685882035689018396905774841834
0.29200483948595689514283538207783
0.40305175512348630648107737709888
0.50844071482450571769570306472557
0.60669229301761806323197874691689
0.69642726041995726486381391372942
0.77638594882067885619296724724228
0.84544594278849801879750706146784
0.90263786198430707421766559923121
0.94715906666171425013591528351804
0.97838544595647099110058035431193
0.99588570114561692900321695932291

0.010551372617343007155651187685252
0.024417851092631908789615827519788
0.03796238329436276395030314124885
0.050975825297147811998319900724073
0.063274046329574835539453689907045
0.074684149765659745887075796102848
0.085045894313485239210447765079982
0.094213800355914148463664883067303
0.10205916109442542323841407025343
0.108471840528576590656579426728
0.1133618165463196665494407184426
0.11666044348529658204466250754036
0.11832141527926227651637108570047
0.11832141527926227651637108570047
0.11666044348529658204466250754036
0.1133618165463196665494407184426
0.108471840528576590656579426728
0.10205916109442542323841407025343
0.094213800355914148463664883067303
0.085045894313485239210447765079982
0.074684149765659745887075796102848
0.063274046329574835539453689907045
0.050975825297147811998319900724073
0.03796238329436276395030314124885
0.024417851092631908789615827519788
0.010551372617343007155651187685252

27

-0.99617926288898856693888720838123
-0.97992347596150122285587335566105
-0.95090055781470500685190803064388
-0.90948232067749110430064501820969
-0.85620790801829449030273722270684
-0.79177163907050822714439734410727
-0.71701347373942369929481621164234
-0.63290797194649514092773463763449
-0.54055156457945689490030094155998
-0.44114825175002688058597415568928
-0.33599390363850889973031903420728
-0.22645936543953685885723910736023
-0.11397258560952996693289498386998
0
0.11397258560952996693289498386998
0.22645936543953685885723910736023
0.33599390363850889973031903420728
0.44114825175002688058597415568928
0.54055156457945689490030094155998
0.63290797194649514092773463763449
0.71701347373942369929481621164234
0.79177163907050822714439734410727
0.85620790801829449030273722270684
0.90948232067749110430064501820969
0.95090055781470500685190803064388
0.97992347596150122285587335566105
0.99617926288898856693888720838123

0.0097989960512943602611500550912591
0.022686231596180623196034206446761
0.035297053757419711022578289304712
0.047449412520615062704096710114185
0.058983536859833599110300833719532
0.069748823766245592984322888356667
0.079604867773057771263074959009842
0.088423158543756950194322802853749
0.096088727370028507565652646558106
0.10250163781774579867124771153266
0.10757828578853318721216298442666
0.11125248835684519267216309604285
0.1134763461089651486203699480921
0.11422086737895698904504573690184
0.1134763461089651486203699480921
0.11125248835684519267216309604285
0.10757828578853318721216298442666
0.10250163781774579867124771153266
0.096088727370028507565652646558106
0.088423158543756950194322802853749
0.079604867773057771263074959009842
0.069748823766245592984322888356667
0.058983536859833599110300833719532
0.047449412520615062704096710114185
0.035297053757419711022578289304712
0.022686231596180623196034206446761
0.0097989960512943602611500550912591

28

-0.99644249757395444995043639048331
-0.98130316537087275369455994580783
-0.95425928062893819725410183970522
-0.91563302639213207386968942332993
-0.86589252257439504894225456737969
-0.80564137091717917144788595542528
-0.73561087801363177202814451029253
-0.65665109403886496121989817650674
-0.56972047181140171930800328335643
-0.47587422495511826103441184766743
-0.37625151608907871022135720955609
-0.27206162763517807767682635612577
-0.16456928213338077128147177789117
-0.05507928988403427042651652734188
0.05507928988403427042651652734188
0.16456928213338077128147177789117
0.27206162763517807767682635612577
0.37625151608907871022135720955609
0.47587422495511826103441184766743
0.56972047181140171930800328335643
0.65665109403886496121989817650674
0.73561087801363177202814451029253
0.80564137091717917144788595542528
0.86589252257439504894225456737969
0.91563302639213207386968942332993
0.95425928062893819725410183970522
0.98130316537087275369455994580783
0.99644249757395444995043639048331

0.0091242825930945177388161539229517
0.021132112592771259751500380993265
0.032901427782304379977630819170532
0.044272934759004227839587877653207
0.055107345675716745431482918226946
0.065272923966999595793397566775505
0.074646214234568779023931887173022
0.083113417228901218390396498244332
0.090571744393032840942186031336784
0.096930657997929915850489006095441
0.10211296757806076981421663850571
0.10605576592284641791041643699681
0.10871119225829413525357151930367
0.11004701301647519628237626560182
0.11004701301647519628237626560182
0.10871119225829413525357151930367
0.10605576592284641791041643699681
0.10211296757806076981421663850571
0.096930657997929915850489006095441
0.090571744393032840942186031336784
0.083113417228901218390396498244332
0.074646214234568779023931887173022
0.065272923966999595793397566775505
0.055107345675716745431482918226946
0.044272934759004227839587877653207
0.032901427782304379977630819170532
0.021132112592771259751500380993265
0.0091242825930945177388161539229517

29

-0.99667944226059658616319153254935
-0.98254550526141317487092601578638
-0.95728559577808772579820803698082
-0.92118023295305878509375343608311
-0.87463780492010279041779342125658
-0.81818548761525244498957221457878
-0.75246285173447713391261007721214
-0.67821453760268651515618500539199
-0.59628179713822782037958621118899
-0.50759295512422764210262791962752
-0.41315288817400866389070658603162
-0.31403163786763993494819592319105
-0.21135228616600107450637572890294
-0.10627823013267923017098239243038
0
0.10627823013267923017098239243038
0.21135228616600107450637572890294
0.31403163786763993494819592319105
0.41315288817400866389070658603162
0.50759295512422764210262791962752
0.59628179713822782037958621118899
0.67821453760268651515618500539199
0.75246285173447713391261007721214
0.81818548761525244498957221457878
0.87463780492010279041779342125658
0.92118023295305878509375343608311
0.95728559577808772579820803698082
0.98254550526141317487092601578638
0.99667944226059658616319153254935

0.0085169038787464096542638133022498
0.019732085056122705983859801640396
0.030740492202093622644408525374617
0.041402062518682836104830010114077
0.051594826902497923912594381179543
0.061203090657079138542109848023907
0.070117933255051278569581486948879
0.07823832713576378382814488865968
0.085472257366172527545344849297208
0.091737757139258763347966411077111
0.096963834094408606301900074882689
0.1010912737599149661218205469075
0.10407331007772937391332847128512
0.10587615509732094140659132785219
0.10647938171831424424651112690968
0.10587615509732094140659132785219
0.10407331007772937391332847128512
0.1010912737599149661218205469075
0.096963834094408606301900074882689
0.091737757139258763347966411077111
0.085472257366172527545344849297208
0.07823832713576378382814488865968
0.070117933255051278569581486948879
0.061203090657079138542109848023907
0.051594826902497923912594381179543
0.041402062518682836104830010114077
0.030740492202093622644408525374617
0.019732085056122705983859801640396
0.0085169038787464096542638133022498

30

-0.9968934840746495402716300509187
-0.98366812327974720997003258160566
-0.9600218649683075122168710255818
-0.92620004742927432587932427708047
-0.88256053579205268154311646253023
-0.8295657623827683974428981197325
-0.7677774321048261949179773409745
-0.69785049479331579693229238802664
-0.62052618298924286114047755643119
-0.53662414814201989926416979331107
-0.44703376953808917678060990032285
-0.35270472553087811347103720708937
-0.25463692616788984643980512981781
-0.15386991360858354696379467274326
-0.051471842555317695833025213166723
0.051471842555317695833025213166723
0.15386991360858354696379467274326
0.25463692616788984643980512981781
0.35270472553087811347103720708937
0.44703376953808917678060990032285
0.53662414814201989926416979331107
0.62052618298924286114047755643119
0.69785049479331579693229238802664
0.7677774321048261949179773409745
0.8295657623827683974428981197325
0.88256053579205268154311646253023
0.92620004742927432587932427708047
0.9600218649683075122168710255818
0.98366812327974720997003258160566
0.9968934840746495402716300509187

0.0079681924961666056154658834746736
0.018466468311090959142302131912047
0.028784707883323369349719179611292
0.038799192569627049596801936446348
0.048402672830594052902938140422808
0.057493156217619066481721689402056
0.065974229882180495128128515115962
0.073755974737705206268243850022191
0.08075589522942021535469493846053
0.086899787201082979802387530715126
0.092122522237786128717632707087619
0.09636873717464425963946862635181
0.099593420586795267062780282103569
0.10176238974840550459642895216855
0.10285265289355884034128563670542
0.10285265289355884034128563670542
0.10176238974840550459642895216855
0.099593420586795267062780282103569
0.09636873717464425963946862635181
0.092122522237786128717632707087619
0.086899787201082979802387530715126
0.08075589522942021535469493846053
0.073755974737705206268243850022191
0.065974229882180495128128515115962
0.057493156217619066481721689402056
0.048402672830594052902938140422808
0.038799192569627049596801936446348
0.028784707883323369349719179611292
0.018466468311090959142302131912047
0.0079681924961666056154658834746736

______________________

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

Numerical Methods with Applications

Introduction to Programming Concepts Using MATLAB

the Massive Open Online Course (MOOCs) available at

Numerical Methods 

Introduction to Matrix Algebra

Multiple Choice Analyzer

How many instructors revise their multiple-choice tests based on their students’ responses? If one wishes to make a better multiple-choice test, a statistical analysis of these responses could be helpful.

We have developed a freely available web-based program to analyze a multiple-choice test, and it requires no programming experience – just your student response data and the answer key in two excel spreadsheets.

The program outputs a pdf file that goes beyond the usual scoring but includes many other metrics, which would help the instructor to revise the test for improving its reliability.

The outputs include difficulty index, discrimination index, Cronbach alpha, item response theory, and distractor analysis. It also outputs if a question should be kept or removed based on four different criteria. The source code is open-access, and we invite others to improve it.

The description is given here at https://www.garrickadenbuie.com/project/mc-test-analysis/

The program can be accessed at https://apps.garrickadenbuie.com/mctestanalysis/

How to make the input excel files is at http://www.eng.usf.edu/~kaw/MCTestAnalysis/MCTestAnalysis_input.pdf

An example of a hypothetical output report is here at https://www.garrickadenbuie.com/project/2017-07-06-mc-test-analysis_files/MCTestAnalysis_Example-Report.pdf

The source code for developers is at https://github.com/gadenbuie/mctestanalysis

You can use our free scanning program https://blog.autarkaw.com/2021/09/29/a-multiple-choice-question-response-reader/ to give multiple-choice tests in the classroom.  The scanning program generates the input files needed to analyze its results through the mctestanalysis program.

_________________

This post is brought to you by

An Example of Doing Learner Introductions in an Online Class

An Example of Doing Learner Introductions in an Online Class

Getting coherent, complete, and thoughtful learner introductions in an online class requires intentional prompting and guidance.

By Joanna Bartell and Autar Kaw

September 2, 2020

Whether we are teaching online, face-to-face, or somewhere in between, having students introduce themselves is essential to the community building process for a class. When students know something about other students, it is easier for students to communicate with each other as well as with the instructor.

I have been teaching a core lecture class in Numerical Methods for three decades now. Although I am well-versed in several pedagogies, including hybrid, blended, and flipped learning, Numerical Methods had never been taught entirely online before the Summer 2020 semester. I come to know students by remembering their names, asking for their name when a student asks questions, or while conducting in-class active learning exercises in a flipped classroom.

In summer 2020, because of the COVID19 crisis, I had to teach the course online. I chose to give the “learner introduction” assignment to students to get to know them better as well to get students to know their peers.

The prompt of the assignment read as follows.

Since Jed and I have introduced ourselves, we would like you to do the same now by the end of the first week of classes. It will make it easier to communicate with you and your classmates. Say something about yourself (nothing personal), and what you expect from the course. About 50-100 words would be sufficient.

and the grading rubric was as follows.

You already have two samples of introduction, and you are not asked to give a lengthy introduction.
5 points for a reasonable introduction
2.5 points for less than a reasonable introduction.
0 points for an irrelevant introduction.

Although all students participated in this low stakes assignment (about 0.25% points), several responses were rich and gave an extended introduction full of anecdotes, but many of them were not uniform, lacked coherency, and some used instant messaging dialect and included several spelling and grammar mistakes.

Dr. Joanna Bartell is an instructor of Communication in the College of Engineering (CoE) at the University of South Florida, working to develop the CoE’s integrated communication program. Before joining the CoE in 2018, Dr. Bartell taught core communication courses for over a decade, including Interpersonal Communication and Persuasion courses. She is also well-versed in several pedagogies, including writing center and feminist pedagogy, which take highly individual, student-centered approaches. Who better to ask than Joanna about what can be done to elicit a better response from students.

I contacted Joanna, and she shared some of her experiences and suggestions, which she has outlined below:

Consider your request:
The learner introduction is a situating assignment, where you’re asking students to 1) talk a little bit about themselves, and 2) both understand and articulate their expectations. These are significant assignments and can help students understand and manage their expectations and involvement in the class. The reciprocity mechanism you include at the beginning of the prompt is helpful (“We opened up, now it’s your turn”) for getting students to respond to and mimic your introductory offering.

In your learner introduction assignment, students are asked to answer the following:

      1. Who are you?
      2. What do you expect from this course?

The rest of the assignment should be based on this request and what you hope students will gain from it.

Know your desired length and word count thresholds:
In my experience, while most students excel at writing as few words as possible, they’re not generally very good at getting the necessary information into those few words – concise writing is a skill that takes practice. Sentence lengths vary, with very long, complex sentences using up to 80 words (possibly more, but not typically), and very short sentences using as few as three words (e.g., “The dog ran.”), so knowing what you want from your students is key to writing the prompt.

For a skilled, concise writer, an adequate answer to the learner introduction prompts will probably be a minimum of 3 full-length, descriptive sentences (~20-25 words each), while an average writer will need more.

Define your preferred boundaries:
Most students like defined boundaries, which I have to balance with my desire to let students interpret clear assignment instructions and respond thoughtfully and creatively. Engineering students in particular, really want word counts. I find a balance between my pedagogical approach and students’ desires for rigid boundaries by locating a reasonable minimum threshold, as described above, and then doubling it (or more). This balance of expectations communicates to students that there is a general range for an acceptable response, but that they have agency and independence in how they respond. In my experience, this approach seems to satisfy students’ needs for boundaries and makes them feel more comfortable to connect and engage in a way that suits them.

 In your learner introduction prompt, the instructors’ introductions model style and boundaries.

Define the audience:
This isn’t always necessary, but for assignments like this learner introduction assignment, I like to remind students that their writing is going to be seen by an audience of their peers. To take this a step further, I like to define what “an audience of their peers” is, exactly, and what kind of expectations that the audience has.

This is the prompt structure and wording that Joanna suggested, which we used for the class this Fall:

Rafael, Nicole, and I introduced ourselves, and we would like all of you to do the same. Introducing yourselves to us and your classmates will make communicating with one another easier. As part of your introduction, include the following:

W [e.g., "where you're from," or, for distance learning, "where you're living right now"]
X [e.g., "your field of study"]
Y [e.g., "your desired profession after graduation"]
Z [e.g., "your favorite pastime or hobby"]

Your introduction must be clear, organized, and professional; you are introducing yourselves to learning colleagues who expect appropriate professionalism and personal engagement. Write 75-125 words or more.

About the rubrics, Joanna suggested defining the rubric points a little more. She noted that she prefers to grade assignments like the learner introduction assignment using the general notions of “thoughtful and complete.”

The existing rubric point of “a reasonable introduction” is highly debatable and may signal to students that this assignment is low expectations and low stakes. Although it might not be particularly high stakes, I like to use early assignments to set expectations for students that, even in low stakes assignments, students are expected to meaningfully engage in the course content, tasks, and assignments.

The grading rubric we used was as follows:

You already have three samples of introduction, and you are not asked to give a lengthy introduction.

10 points for a clear, organized, and professional introduction.
5 points for mostly missing one of the above three requirements.
0 points for mostly missing two or more of the above three requirements.

So I tried it in the Fall 2020 semester, and I noticed that almost all the learner introductions were coherent, complete, and had anecdotal components.

This semester, I left voice feedback for all the learner introductions. Many students were pleasantly surprised and thanked me for the feedback on possible courses to take and career paths to explore.

It may be “small stuff,” but it is the accumulation of “small stuff” that makes up the quality of the classroom environment.

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 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

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.

[youtube https://www.youtube.com/watch?v=5LOuj-quBpc]

The above video shows you how you can use Microsoft forms as a personal response system (clickers). We take you through four steps – how to make a quiz, options in settings, how to share, and how to see the responses.

However, many times, we just want to follow a tool through text and pictures, and here it is.

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

Need help with programming in MATLAB

These are MATLAB course videos from a professor at Vanderbilt University.  I have made a playlist here for the prerequisite information you need for EML3041 Computational Methods course!