Post Reply 
Using FROOT recursively on the HP-71?
02-05-2017, 07:42 AM (This post was last modified: 02-05-2017 07:43 AM by Ángel Martin.)
Post: #7
RE: Using FROOT recursively on the HP-71?
(02-04-2017 10:01 PM)Valentin Albillo Wrote:  .
Hi again, Àngel:

(02-04-2017 01:16 PM)Ángel Martin Wrote:  I assumed FNROOT will return just *one* value (the first root found within the interval), but what does FVAR mean in the statement below:

DEF FNF = X*X+Y*Y <or whatever your function is>
DEF FNY (X) = FNROOT (Y1, Y2, FNF (X, FVAR ) )

Did you read the PDF article of mine I mentioned ? The first line of code you include above does not appear in any of the two examples in my article and in fact it's wrong, you'd need two user-defined functions, FNF(X,Y) and FNG(X,y) (not just a parameterless one), like this:

10 DEF FNF(X,Y)=f(x,y)
20 DEF FNG(X,Y)=g(x,y)

your single FNF above isn't sufficient and further, it lacks the X,Y parameters. Also, as seen in both my examples, you need a second FNROOT which calls the nested FNROOT in your second line above which is taken from my second example.

FVAR is to FNROOT as IVAR is to INTEGRAL, i.e., the variable you're solving for (integrating). In other words, it stands for the unknown being solved for (the "x" in "x^2-2=0", so to say).

I'd suggest you key-in any or both of my examples, run them to see how they work, and if needed do include some PRINT or DISP debugging statements to see how the variables are converging on the final X,Y solutions. This will probably help a lot.

Best regards.
V.

Hi Valentín,

Yes I read your articles. Your code works just great, which I of course never doubted it wouldn't. And certainly the first line is lacking the variables in the definition and is not taken from your article - it was my futile attempt to short-cut the description of the issue in this post - "my bad", as they say nowadays.

My idea to apply the method to the 41's case is proving not to be very likely to work, for a couple of reasons. First off, thanks to Sylvain I got hold of the FROOT description and the "FVAR" syntax is clear to me - as you also put in your reply above it defines which variable is used in the solving. Right there there's a fundamental difference with the 41's version of SOLVE, which obviously can only deal with one variable.

I'm using the second template in your article - not the one based on the sum of the squares of both functions. If I understand it correctly it first obtains a root for Y (say "yr") using the second equation within [y1, y2] - thus with X constant. Then that yr is kept fixed and the first equation is used to solve for X within the interval [x1, x2]. The beauty is that for each X guess first the Yr root is obtained, and then Xr is attempted - repeating it so until both exist. So it's a sequential application, not a simultaneous one moving the (x,y) point. I think I get it.


Besides there's something funky that I need to troubleshoot. The buffer swapping idea works flawlessly with INTEG, so double integrals are calculated with a nested call to INTEG without a glitch. Yet for SOLVE I'm getting DUP BUF errors - it is as if the method called SOLVE three times instead of two; which makes no sense.

So back to the drawing board - let's see if at least I can conclude on the reason why it wouldn't work... Thanks again for your comments.

Best,
ÁM

"To live or die by your own sword one must first learn to wield it aptly."
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: Using FROOT recursively on the HP-71? - Ángel Martin - 02-05-2017 07:42 AM



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