HP 42S Question
02-03-2019, 08:17 PM
Post: #1
 lrdheat Senior Member Posts: 645 Joined: Feb 2014
HP 42S Question
I use a neat program for finding extremums by solving to find when d/dx=0. The derivative program goes like this

LBL "DX"
MVAR "X"
MVAR "H"
RCL "X"
RCL "H"
COMPLEX
XEQ "FX"
COMPLEX
END

This works in solve for most routine functions ("FX"). I am having a problem with a more complicated function, where the program for the function ("FX") executes successfully, but my derivative function ("DX") will not work in solve (generates an "invalid type" error).

An example is the following program "(FX") which executes successfully, but not in the solver in program "DX"

LBL "FX"
ENTER
ENTER
ENTER
X^2
5
-
X<0?
+/-
SQRT
END

Is there a way to handle this sort of thing where the DX program can work in solve?
02-03-2019, 08:18 PM
Post: #2
 lrdheat Senior Member Posts: 645 Joined: Feb 2014
RE: HP 42S Question
"H" is some small epsilon such as 1E-5
02-03-2019, 09:38 PM (This post was last modified: 02-03-2019 10:14 PM by Thomas Okken.)
Post: #3
 Thomas Okken Senior Member Posts: 1,300 Joined: Feb 2014
RE: HP 42S Question
The X<0? function doesn't work on complex numbers. That's what's causing the Invalid Type error message. This makes sense because the complex numbers are not an ordered set, unlike the reals. None of the inequality tests work with them, but X=Y? and X≠Y? do. N.B. Those tests do exhibit some behavior that might be surprising and mathematically questionable, specifically, they consider x and x+0i to be not equal.

In the case of real numbers, the sequence X<0? +/- is equivalent to ABS, but if you want this to work with complex numbers, you should replace it with the actual ABS function, if you want the square root of the magnitude of the number, or leave it out, since SQRT works on all complex numbers.
02-03-2019, 10:02 PM
Post: #4
 lrdheat Senior Member Posts: 645 Joined: Feb 2014
RE: HP 42S Question
I had utilized the ABS function initially, it didn't work in "DX" as it is written, which is why I resorted to X<0?, +/-. I had been getting the same invalid error statement. I'm flummoxed at this point (my skill level, admittedly pedestrian).
02-03-2019, 10:11 PM
Post: #5
 Thomas Okken Senior Member Posts: 1,300 Joined: Feb 2014
RE: HP 42S Question
If simply taking the square root is not an option, i.e. you want to force the real part of the complex number to be nonnegative, you could do this:

COMPLEX
RCL ST Y
SIGN
STO× ST Z
×
COMPLEX
02-04-2019, 05:47 AM
Post: #6
 Thomas Klemm Senior Member Posts: 1,447 Joined: Dec 2013
RE: HP 42S Question
(02-03-2019 10:11 PM)Thomas Okken Wrote:  If simply taking the square root is not an option, i.e. you want to force the real part of the complex number to be nonnegative, you could do this:

COMPLEX
RCL ST Y
SIGN
STO× ST Z
×
COMPLEX

(08-25-2018 08:00 PM)Thomas Klemm Wrote:  Unfortunately $$x=\Re[z]$$ and $$y=\Im[z]$$ aren't analytic functions. So anything based on these values isn't analytic as well.

Quote:Just add the check straight into Fx

This violates the precondition of this algorithm: the function must be analytical

In your case I'd rather separate the functions:

$$f(z)=\sqrt{z^2-5}$$

$$g(z)=\sqrt{5-z^2}$$

What is your "more complicated function"?

Cheers
Thomas
02-04-2019, 03:07 PM
Post: #7
 lrdheat Senior Member Posts: 645 Joined: Feb 2014
RE: HP 42S Question
Thanks, Thomas.

That was the more complicated function! Functions without absolute values or odd numbered nroots and such mostly work fine in "FX" and then in "DX".
02-04-2019, 05:39 PM
Post: #8
 SammysHP Member Posts: 134 Joined: Jul 2018
RE: HP 42S Question
Some background for the complex step differentiation and its limitations: https://blogs.mathworks.com/cleve/2013/1...entiation/
02-05-2019, 06:15 AM
Post: #9
 lrdheat Senior Member Posts: 645 Joined: Feb 2014
RE: HP 42S Question
Thanks for the blog.
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)