Technote (FAQ)
Question
How do you evaluate a constraint containing MATLAB mathematical expression (such as laplace) using PCE (Parametric Constraints Evaluator) without having the error ""XYZ" contains unsupported functions [laplace]" shown on Constraint View window?
Cause
PCE+MAXIMA can not recognize MATLAB mathematical expression like laplace (numerical computation) and fft (symbolic computation). To be able to make these commands recognizable by PCE, you need to apply «ExpressionForMATLAB» stereotype on the constraint block.
Answer
The PCE calls Computer Algebraic Systems (CAS) to solve equations for sets of attribute values, and monitoring the constraints you have defined. MAXIMA and MATLAB (and Symbolic Math Toolbox) are only CAS tools that are currently supported. You can configure PCE to operate in the following 3 manners:
- MAXIMA
- MAXIMA + MATLAB (base)
- MATLAB (base) + MATLAB Symbolic Math Toolbox (MSMT)
To be able to evaluate constraints containing fft or laplace, you should consider adopting either #2 or #3. With MAXIMA alone, such constraint won't be recognized. If you don't have MATLAB installed, a possible workaround would be to evaluate the unrecognized part of your expression using MAXIMA in advance, and replace the original expression with the evaluated result.
<EXAMPLE>
PCE cannot evaluate the following constraint:
output = laplace(x, 100, 100)
Hence, evaluate the laplace using MAXIMA in advance, and replace the part of your constraint by the evaluated result like below:
output = x / 100 // laplace(x, 100, 100), note: we can use a comment
Notes:
- Option #2 and #3 are only available to you if you have a MATLAB and/or MSMT installed.
- PCE will invoke MAXIMA/MATLAB as a back-end process and communicate with them to resolve equations.
- Using MATLAB, you can write causal expressions in the M language using constraint blocks stereotyped with «ExpressionForMatlab», although calculation generally takes longer than when MAXIMA is used alone.
- <<ExpressionForMatlab>> block can have only one constraint, but you can use multiple constraint properties. If your constraint block contains multiple constraints, you should separate it into multiple constraint blocks.
Related information
Performing calculations with the Parametric Constraint
Rate this page:
Copyright and trademark information
IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.