Samir Khan

1966 Reputation

20 Badges

16 years, 164 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

You can certainly rescale kg/(m^2*s^2) to N/m^3 using the Context Panel. You need to use the "Enter Unit" field to specify your custom unit:

You can convert to torque units (e.g. N*m, lbf*ft etc) with the Context Panel.

  • Click on the result you want to rescale to torque (this probably has units of energy e.g. J) and open the Context Panel

  • Locate the "Enter Unit" box in the Context Panel, and enter your desired units of torque (e.g. N*m)

  • Press Enter

You should now find that your result is rescaled to units of torque

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

restart:

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

(1)

 

Download Optimization_with_units.mw

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), Draw.io, 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

a:=Matrix(n,n,(i,j)->2^(i+j)) 

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: http://www.trustiot.ecnu.edu.cn/show.aspx?info_lb=629&flag=101&info_id=1673

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
         break
      elif HeatBalance_code(atemp, Tinit)*HeatBalance_code(c, Tinit) < 0 then
         btemp := c
      else
         atemp := c
      end if
   end do:

return atemp:

end proc:

 

1 2 3 4 Page 2 of 4