cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
NG
NG
Level II

Complex Numbers in JMP

I'm trying to work on some Electrochemical Impedance Spectroscopy, which uses Complex Numbers and has a response in the form of a Bode or Nyquist plot. I found a plugin for JMP, but I can't find documentation on it:

 

https://community.jmp.com/t5/JMP-Add-Ins/Complex-Numbers/ta-p/22616

 

I've attached a sample JMP table containing a simple RC circuit with R=500 and C=.001.

 

I want to use JMP to fit the experimental data for multiple experiments at once using the non-linear platform and then compare the models to the experiments graphically (this is going to be an iterative process to get the model right). The challenge I've run into is JMP does not natively support complex numbers. I can work around this by parameterizing like in the "fit" column, but then I have to do extra work to split out the parameters to another column.

 

I may be making the "fit" and "split out" part of things more complicated than it needs to be. Is there either a simplier way to use parameters from one column in another column _or_ use complex numbers in JMP?

 

 

1 ACCEPTED SOLUTION

Accepted Solutions

Re: Complex Numbers in JMP

As of the release of JMP 19 (and as of feature freeze of JMP 20), JMP does not currently have a native "Complex Number" data type for data table columns, nor are there built-in column formula functions (such as Col Std Dev() or Col Mean()) designed to operate directly on complex numbers within a single column.  In addition to the use of this suggested Add-in which can still be made available in the JMP Marketplace by request at the following link Access to JMP User Community Add-ins section - Insufficient privileges - User Community  (please follow the requested procedure, including the at mention to JMP's responsible product manager), there are at least two other approaches that can be taken: 

 

The first (and likely the most practical) involves basically a two-column representation (real and imaginary parts) in JMP.  In practice this would entail storing the real component in one numeric column and the imaginary component in a second numeric column, calculating the Col Mean() or the Col StdDev() on the real and imaginary columns independently, and then computing the magnitude or phase angle using standard JMP column formulas.

 

The second involves the use of JMP's seamless Python Integration  (new in JMP 18 and improved further in JMP 19) see here: Integrating JMP and Python | JMP.  So, using JMP's built-in Python integration, it is possible to pass column data directly to Python, perform complex operations using NumPy ( numpy.complex128, np.std(), np.mean(), FFTs, etc.) for example, and then write the resulting scalar or vector outputs back to columns inside a JMP data table.

As always, we remain available to you (the licensed JMP user) to answer additional questions as they come up! 

Sincerely,

-JMP Technical Support ([email protected])

 

View solution in original post

3 REPLIES 3

Re: Complex Numbers in JMP

Sorry for the late reply here. Install the Complex Numbers add-in, and you'll find help documentation in the menus: Add-ins > Complex Numbers> Help.

Much of the functionality of the add-in consists of JSL functions to do math on complex numbers. 

Re: Complex Numbers in JMP

For mor information on the functionality and use of the Complex Numbers add-in please see this post:  Solved: Complex Numbers in JSL - User Community.

Re: Complex Numbers in JMP

As of the release of JMP 19 (and as of feature freeze of JMP 20), JMP does not currently have a native "Complex Number" data type for data table columns, nor are there built-in column formula functions (such as Col Std Dev() or Col Mean()) designed to operate directly on complex numbers within a single column.  In addition to the use of this suggested Add-in which can still be made available in the JMP Marketplace by request at the following link Access to JMP User Community Add-ins section - Insufficient privileges - User Community  (please follow the requested procedure, including the at mention to JMP's responsible product manager), there are at least two other approaches that can be taken: 

 

The first (and likely the most practical) involves basically a two-column representation (real and imaginary parts) in JMP.  In practice this would entail storing the real component in one numeric column and the imaginary component in a second numeric column, calculating the Col Mean() or the Col StdDev() on the real and imaginary columns independently, and then computing the magnitude or phase angle using standard JMP column formulas.

 

The second involves the use of JMP's seamless Python Integration  (new in JMP 18 and improved further in JMP 19) see here: Integrating JMP and Python | JMP.  So, using JMP's built-in Python integration, it is possible to pass column data directly to Python, perform complex operations using NumPy ( numpy.complex128, np.std(), np.mean(), FFTs, etc.) for example, and then write the resulting scalar or vector outputs back to columns inside a JMP data table.

As always, we remain available to you (the licensed JMP user) to answer additional questions as they come up! 

Sincerely,

-JMP Technical Support ([email protected])

 

Recommended Articles