An Introduction to MathCAD You can always find a solution !! When things go wrong f( x) 5 x 4 7 9 x f1 ( x) d f( x) dx f1 ( x) 5x 4 3 2 18 0x 3 3 16x 2 1 33 76 4x 2 6 54 0x x 1 60 39 29 6 3 09 84 48 2 67 52 8x 3 09 84 48 56 34 roo ts f( x) 0 so lv e x 78 12 9 t urni ng s f1 ( x) 0 so lv e x “Result is too large to Display” MathCAD #6 dpl 2001 2 Can we fix it ? Yes we can !! f( x) 5 1 .0 x f1 ( x) d f( x) dx f1 ( x) 4 5 .0 x 4 7 9 x 3 2 18 0x 3 3 16x 2 1 33 76 4x 2 6 54 0x x 1 60 39 29 6 3 09 84 48 2 67 52 8x 3 09 84 48 5 6. 3 4. roo ts f( x) 0 so lv e x 7 8. 1 2. 9. 2 7.0 33 16 34 3 82 32 02 82 9 2 t urni ng s f1 ( x) 0 so lv e x 1 0.4 81 80 37 7 90 12 76 21 3 7 3 1.6 78 24 97 7 42 97 67 92 7 6 6 9.0 36 71 74 4 29 47 11 11 5 3 Force solver to work with real numbers MathCAD #6 dpl 2001 3 What if its still broken ? f( x) 5 x 4 7 9 x f1 ( x) d f( x) dx f1 ( x) 5x 4 3 2 18 0x 3 3 16x 2 1 33 76 4x 2 6 54 0x x 3 09 84 48 2 67 52 8x 1 60 39 29 6 3 09 84 48 56 34 roo ts f( x) 0 so lv e x 78 12 9 2 7.0 33 16 3 43 84 46 2 61 37 t urni ng s f1 ( x) 0 .00 01so lv e x 1 0.4 81 80 3 77 86 52 3 27 20 3 1.6 78 24 9 77 40 81 3 98 83 1 6 9.0 36 71 7 44 30 17 1 89 74 9 Risky !! – OK in this case MathCAD #6 dpl 2001 4 Still can’t solve it ? Use polyroots to find roots Use coeffs keyword on solver to get coefficients of x 3 09 84 48 2 67 52 8 cfsx f1 ( x) co effs x 6 54 0 3 16 5 2 7.0 33 p ol yroo ts( cfsx ) 1 0.4 82 3 1.6 78 6 9.0 37 MathCAD #6 dpl 2001 5 Still can’t solve it ? Graph shows maxima & minima => there must be solutions Try guessing & using roots(f1(x),x) MathCAD #6 dpl 2001 6 Solving ODEs numerically Produce numeric solution to system of ODEs. Must have initial conditions Manipulate equations Use one of several different solvers Produces matrix of solutions MathCAD #6 dpl 2001 7 First order linear ODE #1 Radioactive decay, Newton’s law of cooling etc d A dt k A A is amount of material temperature difference etc k is rate constant MathCAD #6 dpl 2001 8 First order linear ODE #2 Define initial conditions as a vector 1st order so only 1 element in vector Can’t use units in ODE solver Call vector ‘ic’ Element 0 = A at t=0 ic0 100 MathCAD #6 dpl 2001 9 First order linear ODE #3 Now define ODE & manipulate for mathCAD d A dt k kA 0 .1 D( t A ) kA MathCAD #6 dpl 2001 10 First order linear ODE #4 Now define range of solution t0 0 t1 5 N 1 00 0 Start time Finish Time Number of Points And solve using rkfixed Soln rkfixed( ic t0 t1 N D) Creates matrix ‘Soln’ containing solution MathCAD #6 dpl 2001 11 First order linear ODE #5 The Solution Matrix 0 1 0 0 100 1 5·10 -3 99.501 2 0.01 99.005 3 0.015 98.511 4 0.02 98.02 5 0.025 97.531 6 0.03 97.045 Sol n 7 0.035 96.561 8 0.04 96.079 9 0.045 95.6 10 0.05 95.123 11 0.055 94.649 12 0.06 94.176 13 0.065 93.707 14 0.07 93.239 15 0.075 92.774 0.08 92.312 Column 0 holds t values Column 1 holds A values 1 row of matrix per timestep (0..N) MathCAD #6 dpl 2001 12 First order linear ODE #6 Plot the results Use M<> to extract columns Use subscripting to extract rows i 0 N 1 00 1 Soln i 50 0 0 2 4 6 0 Soln i MathCAD #6 dpl 2001 13 Second Order ODE Same steps as for first order Slightly less obvious manipulation Replace ODE by system of 1st orders Can use symbolic solver to formulate equations MathCAD #6 dpl 2001 14 Second Order ODE Example #1 Damped SHM – LCR circuit – Damped Pendulum d L i dt i R q C 0 Substitute for i & divide through by L d q i dt Gives: d 2 q d t2 Rd L dt q MathCAD #6 dpl 2001 1 q 0 LC 15 Second Order ODE Example #2 d 2 q d t2 Rd L dt 1 q 0 LC q rewrite equation (by hand) substituting 2 d q q2 d t2 d q q1 dt q q0 Gives manipulated equation: q2 R L q1 MathCAD #6 dpl 2001 1 q0 0 LC 16 Second Order ODE Example #3 R q2 L Use q2 R L q1 1 q0 0 L C solver to solve for q2 q1 1 q0 0 solve q2 L C ( R q1 C q0 ) ( L C ) Now ready to create D(t,q) function MathCAD #6 dpl 2001 17 Second Order ODE Example #4 Equations d q q1 dt to create D(t,q) d 2 q q2 d t2 ( R q1 C q0 ) ( L C ) 2 row vector to hold D(t,q) Change subscripts for suffixes q1 D( t q ) R q1 C d q dt q0 ( L C ) MathCAD #6 dpl 2001 d 2 q d t2 18 Second Order ODE Example #5 Specify initial conditions For second order need 2 elements in ic vector ic 1 Charge (q) at t=0 0 Current (dq/dt) at t=0 Also need to specify constants in D(t,q) equations Watch for lack of units !! L 10 2 C 10 3 R MathCAD #6 dpl 2001 1 19 Second Order ODE Example #6 Define times and number of points as before Call rkfixed to solve t1 0.1 t0 0 N 10 00 So ln rkfixed( ic 0 t1 N D) Matrix Soln filled with solution points MathCAD #6 dpl 2001 20 Second Order ODE Example #7 • The solution matrix 0 0 1 2 3 4 5 6 Soln 7 8 9 10 11 12 13 14 15 1 0 1·10 2·10 3·10 4·10 5·10 6·10 7·10 8·10 9·10 1·10 1.1·10 1.2·10 1.3·10 1.4·10 1.5·10 1.6·10 -4 -4 -4 -4 -4 -4 -4 -4 -4 -3 -3 -3 -3 -3 -3 -3 2 1 1 0.998 0.996 0.992 0.988 0.982 0.976 0.969 0.961 0.952 0.942 0.932 0.92 0.908 0.895 0.881 0 -9.949 -19.788 -29.51 -39.106 -48.568 -57.887 -67.055 -76.066 -84.912 -93.585 -102.078 -110.386 -118.501 -126.417 -134.129 -141.631 Column 0 holds t values Column 1 holds q values Column 2 holds dq/dt values MathCAD #6 dpl 2001 21 Second Order ODE Example #8 Graphing Time the solution 0 Soln Charge 1 Soln 1 0 .5 Ch arg e 0 0 .5 1 0 0 .0 5 0 .1 Time MathCAD #6 dpl 2001 22 Surely nothing can go wrong ? Solution relies on numeric integration which divides timestep up into smaller chunks for integration If system is changing much faster than timestep, solution will fail Clues to look for: – “found a number >10^307” – Singularity at tfinish MathCAD #6 dpl 2001 23 Can we fix it ? Check time constants Try more point in solution (N) Try smaller interval Use a different solver – ‘Stiff’ systems give problems – Special solvers for stiff systems – See Quicksheet & help system MathCAD #6 dpl 2001 24