Samir Khan

1649 Reputation

19 Badges

14 years, 88 days

My role is to help customers better exploit our tools. I’ve worked in selling, supporting and marketing maths and simulation software for all my professional career.

I’m fascinated by the full breadth and range of application of Maple. From financial mathematics and engineering to probability and calculus, I’m always impressed by what our users do with our tools.

However much I strenuously deny it, I’m a geek at heart. My first encounter with Maple was as an undergraduate when I used it to symbolically solve the differential equations that described the heat transfer in a series of stirred tanks. My colleagues brute-forced the problem with a numerical solution in Fortran (but they got the marks because that was the point of the course). I’ve since dramatized the process in a worksheet, and never fail to bore people with the story behind it.

I was born, raised and spent my formative years in England’s second city, Birmingham. I graduated with a degree in Chemical Engineering from The University of Nottingham, and after completing a PhD in Fluid Dynamics at Herriot-Watt University in Edinburgh, I started working for Adept Scientific – Maplesoft’s partner in the UK.

MaplePrimes Activity

These are answers submitted by Samir Khan

The Optimization package understands units, so you could do something like this:


XU:=Vector([1*Unit(s), 2*Unit(s), 3*Unit(s), 4*Unit(s), 5*Unit(s), 6*Unit(s)]):
YU:=Vector( [2*Unit(m), 3*Unit(m), 4*Unit(m), 3.5*Unit(m), 5.8*Unit(m), 7*Unit(m)]):

sse:=(a,b,c)->add( (a+b*XU[i]+c*XU[i]^2 - YU[i])^2, i = 1..6):

Optimization:-Minimize(sse(a,b,c),initialpoint = {a=1*Unit(m),b=1*Unit(m/s), c=1*Unit(m/s^2)})

Warning, (in sse) `i` is implicitly declared local


[1.287714285714*Units:-Unit(m^2), [a = HFloat(1.9599999999999476)*Units:-Unit(m), b = HFloat(0.16500000000003545)*Units:-Unit(m/s), c = HFloat(0.11071428571428099)*Units:-Unit(m/s^2)]]




Add this option to the plot command: useunits=[deg,lbf]

Subscripts in Flow can only contain alphanumeric characters, with any other characters escaping to the baseline.

The content menu is not available in Flow.

i. View>Print Extents displays the page margins

ii. Yes, the Draw tools only appears on an imported image. For a future release, we will introduce a blank mini-canvas that you can insert and draw on

iii. Assuming you mean the images in the in-product Application Gallery and the online Application center, the images were created in a mixture of Microsoft Word (using the drawing tools),, Libre CAD, and Libre Draw

iv. We will consider this for a future release.

v. That should work (the process is the same as described in the User Guide). Please contact technical support and they'll help.

You can use a code window (Edit>Code) to write a Maple-language procedure that contains a loop. You can then call that procedure in the canvas.

But you don't need a loop for your specific example - try filling the Matrix entirely within the constructor like so


For Flow 2021, you need activate both Maple and Flow

  • Open Maple, go to Help > About, click on Reactivate License, and reactivate with the Purchase Code
  • Then open Maple Flow, go to Help > About, click on Reactivate License, and reactivate with the Purchase Code

Flow 2022 (ready very soon!)  will be a single installer, so you don't need a prior installation of Maple.

You can't convert Maple Flow sheets to Maple sheets

Maple Flow's forward-in-space evaluation model does not support assign().

You can try x:=eval(x,s) instead.

ThermophysicalData:-Property(P, water, T = (273.15 + 24)*Unit(K), Q = 0)


It's available here:

There's a zip file which contains an mla. I haven't installed or used it, so I don't know if it works

You say you want to plot the frequency-time characteristics of the signal. Assuming that's actually what you want, then use SignalProcessing:-Spectrogram with your time-domain data.


Look at this application: C Code to calculation flame temperature of octane

bisection := proc (a, b, Tinit)

   local epsilonABS, epsilonSTEP, c, atemp, btemp:

   epsilonABS := 0.1:
   epsilonSTEP := 0.1:
   atemp := a:
   btemp := b:

   while epsilonSTEP <= btemp-atemp or epsilonABS <= abs(HeatBalance_code(atemp, Tinit))
         and epsilonABS <= abs(HeatBalance_code(btemp, Tinit)) do
      c := (atemp + btemp) / 2:
      if abs(HeatBalance_code(c, Tinit)) <= 0 then
      elif HeatBalance_code(atemp, Tinit)*HeatBalance_code(c, Tinit) < 0 then
         btemp := c
         atemp := c
      end if
   end do:

return atemp:

end proc:


Maple 2018 lets you use units in fsolve.

For that worksheet, the result of fsolve becomes this:

See the attached worksheet for the complete application with units




The maps (and rotatable globe) in this application were developed with Maple 2017's world map tools (the application contains the plots, but not the code used to create the plots - I can give this to you in a separate worksheet)

1 2 3 Page 1 of 3