Samir Khan

1971 Reputation

20 Badges

16 years, 193 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 replies submitted by Samir Khan

@9009134 What does the software do? What problem are you trying to solve?

@9009134  Describing in detail how to import and parse the data file isn't something I have the bandwidth to do.

You'll need to (i) understand the format of the data file, (ii) read in the data file line by line, (iii) interpret what the data on each line means.

The format of the data file appears to be describe here

Could you please describe *why* you want the seven parameter version of the polynomials. What are you trying to do with them?

A quick Google search gives you a data file with the coefficients for the 7-parameter Nasa polynomials: https://shepherd.caltech.edu/EDL/PublicResources/sdt/thermo.html. You'll need to parse the data file into a format that Maple understands, though.

Why *specifically* do you want the 7 parameter coefficients, and not the 9 parameter coefficients?

 

Maple already has similar thermodynamic correlations for about 2000 chemicals built into the ThermophysicalData package

For example, here's the molar specific heat capacity, enthalpy and entropy of Jet-A (sorry about the illegible pictures, but the commands should be visible).

   

species:="Jet-A(g)":

cp := ThermophysicalData:-Chemicals:-Property(Cpmolar,"Jet-A(g)",temperature=T,explicit)

cp := 8.314510*piecewise(273.150 < T and T <= 1000.000, -606869.5590/T^2+8328.259590/T-43.12321270+.2572390455*T-0.2629316040e-3*T^2+1.644988940*10^(-7)*T^3-4.645335140*10^(-11)*T^4, 1000.000 < T and T <= 6000.000, 1.858356102*10^7/T^2-76772.19890/T+141.9826133-0.7437524530e-2*T+5.856202550*10^(-7)*T^2+1.223955647*10^(-11)*T^3-3.149201922*10^(-15)*T^4)

(1)

h:=ThermophysicalData:-Chemicals:-Property(Hmolar,species,temperature=T,explicit)

h := 8.314510*T*piecewise(273.150 < T and T <= 1000.000, 606869.5590/T^2+8328.259590*ln(T)/T-43.12321270+.1286195228*T-0.8764386800e-4*T^2+4.112472350*10^(-8)*T^3-9.290670280*10^(-12)*T^4-76069.62760/T, 1000.000 < T and T <= 6000.000, -1.858356102*10^7/T^2-76772.19890*ln(T)/T+141.9826133-0.3718762265e-2*T+1.952067517*10^(-7)*T^2+3.059889118*10^(-12)*T^3-6.298403844*10^(-16)*T^4+422198.9520/T)

(2)

s:=ThermophysicalData:-Chemicals:-Property(Smolar,species,temperature=T,explicit)

s := 8.314510*piecewise(273.150 < T and T <= 1000.000, 303434.7795/T^2-8328.259590/T-43.12321270*ln(T)+.2572390455*T-0.1314658020e-3*T^2+5.483296467*10^(-8)*T^3-1.161333785*10^(-11)*T^4+279.4305937, 1000.000 < T and T <= 6000.000, -9.291780510*10^6/T^2+76772.19890/T+141.9826133*ln(T)-0.7437524530e-2*T+2.928101275*10^(-7)*T^2+4.079852157*10^(-12)*T^3-7.873004805*10^(-16)*T^4-898.6061040)

(3)

@nm You're not the first person to suggest built-in plot themes :)

@mmcdara You're right, the grey background does look like that in ggplot2

@Scot Gould and I had a very productive conversation about the physics of this problem. He commented on and identified mistakes in the application posted recently on the App Center, and I learned a lot from the approach in his document. Thank you @Scot Gould!

@student_md This is a long requested feature. There are no built-in tools but some of our users have come up with clever workarounds

@Carl Love Thank you for pointing this out. While we clear up the definition of Katz centrality, I'll remove that section from the worksheet.

@nm I'll make sure this lands on the right desk

@Christopher2222 What would you like to see in an Astronomy package?

@nm We are listening :) An improved debugger is something many of our customers have requested.

By the way, Maple 2020's new LaTeX export is better. The LaTex generated for your example here has improved

eq:=-(1/2)*1/y = (1/3)*x^3+z:
sol:=solve(eq,y):
latex(sol)

now produces

-{\frac {3}{2\,{x}^{3}+6\,z}}

which renders as

@Christopher2222 I'd love to support more audio import formats!

@mmcdara I wrote a brief explanation here

@Carl Love 
Let's say I start off with these points

X := Array([558, 533, 512, 509, 519, 538, 527, 501, 485, 493, 499, 499, 465, 406, 413, 441, 430, 406, 397, 393, 392, 397, 403, 406, 397, 365, 356, 354, 326, 311, 336, 355, 315, 278, 278, 249, 242, 232, 204, 208, 209, 204, 206, 242, 242, 263, 274, 287, 334, 361, 320, 314, 344, 355, 360, 379, 406, 407, 399, 393, 391, 394, 404, 415, 439, 431, 402, 438, 487, 503, 497, 486, 488, 514, 538, 537, 511, 508, 518, 546]):
Y := Array([420, 412, 431, 480, 522, 505, 444, 431, 480, 591, 605, 548, 444, 416, 426, 478, 516, 533, 488, 395, 305, 356, 463, 525, 418, 414, 488, 465, 416, 458, 497, 495, 463, 409, 488, 514, 458, 512, 441, 441, 485, 412, 508, 493, 463, 516, 437, 403, 503, 482, 495, 429, 416, 499, 439, 407, 490, 533, 392, 309, 333, 452, 520, 529, 499, 452, 418, 416, 492, 593, 606, 544, 448, 429, 482, 518, 508, 450, 424, 414]):

plot(X, Y, style = point)

If I squint my eyes, that might say "maple".

DFT of X and Y points

dft_X := Vector(SignalProcessing:-FFT(X)): 
dft_Y := Vector(SignalProcessing:-FFT(Y)):

Phase and amplitude of sines

n  := numelems(X):

P_X  := Re(argument~(dft_X[2..ceil(n / 2)])):
A_X  := abs(dft_X[2..ceil(n / 2)]):

P_Y  := Re(argument~(dft_Y[2..ceil(n / 2)])):
A_Y  := abs(dft_Y[2..ceil(n / 2)]):

Parametric curves

curve_X := evalf[3](add(seq(A_X[i] * sin(Pi / 2 - 2 * Pi / n * i * t + P_X[i]), i = 1..ceil(n / 2) - 1)));
curve_Y := evalf[3](add(seq(A_Y[i] * sin(Pi / 2 - 2 * Pi / n * i * t + P_Y[i]), i = 1..ceil(n / 2) - 1)));

Plot the parametric curves

plot([curve_X, curve_Y, t = 0 .. n / 2])

I'll upload a complete application to the Application Center soon. It'll include an interactive plot to draw a curve (or some "handwritten" text) to get the 2d discrete data.

This was all inspired by Michael Trott's blog post at Wolfram.com. I also adapted the core code from a discussion at mathematica.stackexchange.com

2 3 4 5 6 7 8 Page 4 of 8