Base of Natural Logarithms Vincze Unregistered Posts: 376 Threads: 35 Joined: Jul 2007 08-13-2007, 07:35 PM Is there programmatic way to calculate the base of natural logarithms (or Euler Number) if the function of "e" were not available. I know what the formula is for "e", but how would one pro grammatically find this on say a 35s, or other similar calculator? Edited: 13 Aug 2007, 7:37 p.m. Brad Davis Unregistered Posts: 58 Threads: 6 Joined: Jul 2007 08-13-2007, 08:10 PM Does the 35s not have e^x? You could use a series expansion. Chuck Unregistered Posts: 320 Threads: 59 Joined: Dec 2006 08-13-2007, 08:34 PM Do you want to have unlimited accuracy? or is this close enough? ```848456353 --------- = 2.71828182845904523(4757) 312129649 ``` That's close enough for most calculations. Or use a simple loop to find the sum of 1/n! as n goes from 0, 20. This gives 2.7182818284590452353(39784). Edited: 13 Aug 2007, 8:41 p.m. Katie Wasserman Unregistered Posts: 1,477 Threads: 71 Joined: Jan 2005 08-13-2007, 08:39 PM This is a pretty simple program to write, just a few lines. You can also compute it in the equation solver in several different ways. But it doesn't need to be computed at all on this machine, it's now in the constants menu. Thomas Klemm Unregistered Posts: 735 Threads: 34 Joined: May 2007 08-13-2007, 08:50 PM On the 35s: use the constants menu use the solver with LN(X) = 1 iterate the following steps a few times with initial value 1: ```ENTER LN 2 x<>y - * ``` calculate (1 + 1E-6)^1E6 SINH(1)+COSH(1) ... Just a few ideas. Edited: 14 Aug 2007, 3:03 a.m. Chuck Unregistered Posts: 320 Threads: 59 Joined: Dec 2006 08-13-2007, 08:58 PM Here's the problem I have with the programming required of some calculators. To do a loop from 1 to 20 of 1/n! stored in a register, this is the best I can come up with ... ``` S001 LBL S S002 -1.02 S003 STO I S004 ISG I S005 GTO S007 S006 RTN S007 RCL I S008 INTG S009 ! S010 1/x S011 STO+ E S012 GTO S004 ``` This seems like a rediculous number of steps for a simple loop. CHUCK Thomas Okken Unregistered Posts: 727 Threads: 43 Joined: Jul 2005 08-13-2007, 09:29 PM Erm, I'm not sure if I understand what you're asking here. You say that you know the formula for e, but you can't figure out how to write a program to compute that value? e = 1 + 1/1 + 1/(1*2) + 1/(1*2*3) + 1/(1*2*3*4) + 1/(1*2*3*4*5) + ... Hint: if you number the terms like 0, 1, 2, 3, etc., then for all terms numbered 1 and greater, term n is a factor n smaller than the one before. Just keep summing until adding a term no longer changes your result; thanks to the limited precision of most calculators, that won't take long. If you're going to ask for an actual program, I'm going to start suspecting you're a student asking us to do your homework. ;-) - Thomas Paul Dale Unregistered Posts: 3,229 Threads: 42 Joined: Jul 2006 08-13-2007, 09:57 PM One step less by running the loop backwards. Also better numerically. ```E001 LBL E E002 20 E003 STO I E004 1 E005 RCL I E006 ! E007 1/x E008 + E009 DSE I E010 GTO E005 E011 RTN ``` - Pauli Chuck Unregistered Posts: 320 Threads: 59 Joined: Dec 2006 08-13-2007, 10:06 PM I now see that the STO+ was an unecessary step (since the values remain on the stack), but why would backwards be better numerically? Non comprendo. Paul Dale Unregistered Posts: 3,229 Threads: 42 Joined: Jul 2006 08-13-2007, 10:57 PM It is more stable backwards because you're adding like sized terms the whole time and generally maintaining full precision as well. Going forwards starts with a 1 term and by the time you're near the end, most of the significant digits are beyond the precision of the sum. The difference will likely be at most a digit or two in the last place but it doesn't take any extra effort to work from the small terms to the large. - Pauli Thomas Klemm Unregistered Posts: 735 Threads: 34 Joined: May 2007 08-14-2007, 03:27 AM Use Horner's Method (p. 13-26 in the User's Guide) to avoid factorial: ```E001 LBL E E002 STO I E003 1 E004 RCL/ I E005 1 E006 + E007 DSE I E008 GTO E004 E009 RTN ``` 20 XEQ E001 Thomas Klemm Unregistered Posts: 735 Threads: 34 Joined: May 2007 08-14-2007, 05:23 AM Quote: You can also compute it in the equation solver in several different ways. I've tried to solve the following equation: ```ABS(E^(Pi*i)+1)=0 ``` I would have expected to get: ```NO ROOT FND ``` Instead I got: ```INVALID yx ``` Any ideas why? It seems that somehow E becomes 0, though this case (i.e. 0 with complex exponent) isn't mentioned in the user's guide as a possible reason for that message. What a pity you don't get more information, or is there a way to find out what was the last value of E in case of an error? However it works if 0 is replaced in the equation by 1E-11. Vincze Unregistered Posts: 376 Threads: 35 Joined: Jul 2007 08-14-2007, 08:33 AM I know it is on calculator, but I just curious how the program would be written. Vincze Unregistered Posts: 376 Threads: 35 Joined: Jul 2007 08-14-2007, 08:41 AM But formula is lim n -> infinity (1+1/n)^n. What I don't understand is how you deal with infinity. I guess you could loop a couple hundred times to deliver accuracy, but how was this calculated in past, when e not available. I guess reason I ask is I try and better understand programming on HP calculator, so I thought this would be a good test to see how something like infinity be handled. Thomas Okken Unregistered Posts: 727 Threads: 43 Joined: Jul 2005 08-14-2007, 09:34 AM Dealing with infinity can be tricky, and there is no one answer for all situations. In the case of the series for e, the key insight is that the terms get progressively smaller as n increases, and that in fact, they shrink so quickly that you only need to sum a few in order to reach maximum precision. 1/16! = 4.78e-14, which is too small to affect the value of e when working with 12-digit precision -- so after summing only 16 terms, you're done. If you're working with higher precision, you'll need more terms, of course. You can work out in advance when the terms will become too small to affect the result any further, or you can simply compare each iteration's result to the previous one, and terminate the loop when there is no further change. And if you want the best possible accuracy, you can sum the series from smallest terms to largest (that requires working out which is the smallest term in advance), to minimize the effect of round-off error on the final result. Note that the series for e (or generally speaking, for e^x, and the related series for sin and cos) have the nice property that the terms shrink very quickly, but this is not true for all series, like the notoriously useless tan(x) = 1 - x/3 + x/5 - x/7... In such cases you'll have to look for a more clever approach. - Thomas Vincze Unregistered Posts: 376 Threads: 35 Joined: Jul 2007 08-14-2007, 10:02 AM Okay, but how you write program to do this? I no student in school, but I am student of life, and want to learn how to do something like this. I try some programming but I still very green as you say in America, and still trying to grasp concept of RPN programming. If this was in C, cobol, or assembler, I would know what to do, but I baffled with programming on 35s. Maybe it too simple and that my issue. Don Shepherd Unregistered Posts: 1,392 Threads: 142 Joined: Jun 2007 08-14-2007, 10:11 AM Vincze, you need to get the museum DVD. It has the manuals of almost all HP calculators, and you need to read the programming sections of those manuals. That will teach you how to program in RPN. Vincze Unregistered Posts: 376 Threads: 35 Joined: Jul 2007 08-14-2007, 11:15 AM But I have HP35s and its manual, but it not explain the programming and looping and loop testing, etc. If I want to loop something say 20 times, how would I control that in 35s and take final value and display? It talk about very little in manual. I have friend who has older version of CD's from here. What would be good manual to look at that explain this better than current 35s manual. Don Shepherd Unregistered Posts: 1,392 Threads: 142 Joined: Jun 2007 08-14-2007, 12:48 PM Vincze, how can you say the 35s manual does not discuss programming and looping? Part 2 of the manual is about nothing but programming. Loops are described on pages 14-16 to 14-18. You really need to read these sections and play around with it. Lyuka Unregistered Posts: 169 Threads: 12 Joined: Aug 2007 08-14-2007, 02:02 PM 9242691/3400196 (within 7 digits, error < 9.4e-14) this is also enough for 35s. 49171/18089 (within 16 bit, error < 1.02e-10) may be used in a micro controller. Miguel Toro Unregistered Posts: 239 Threads: 55 Joined: Sep 2006 08-14-2007, 08:00 PM You also could use this: ```(IDIV(I,18)-1)/A = (1-IDIV(I,18))/A + 0*(E+1/I!STO E) + 0*(I+1STO I) Solve for A I=0 R/S E=0 R/S RCL E``` or still: ```(IDIV(I,18)-1)/A = (1-IDIV(I,18))/A + 0*(E/(20-I)+1STO E) + 0*(I+1STO I) Solve for A I=0 R/S E=1 R/S RCL E``` Just amazing! enjoy. Miguel « Next Oldest | Next Newest »

 Possibly Related Threads… Thread Author Replies Views Last Post Interesting Base Conversions - Porting a 1975 HP 25 Program to the HP 35S Eddie W. Shore 1 1,345 10-13-2013, 07:49 PM Last Post: BruceH Natural display V.S. RPN, which is better? Waon Shinyoe (China) 18 4,549 05-06-2013, 08:31 PM Last Post: Gerson W. Barbosa Re: Natural display V.S. RPN, which is better? Waon Shinyoe (China) 2 1,176 05-05-2013, 10:47 AM Last Post: Bunuel66 Calculator natural language user interface Donald Williams 12 3,615 01-07-2012, 09:45 AM Last Post: Vince (Italy) Modular exponentiation with a noninteger base Oliver Unter Ecker 12 3,230 10-31-2011, 08:51 PM Last Post: Oliver Unter Ecker Wp34s base mode question Cristian Arezzini 7 1,958 05-19-2011, 06:46 AM Last Post: Marcus von Cube, Germany WP34 base page view Cristian Arezzini 6 1,992 04-26-2011, 05:51 AM Last Post: Paul Dale HP 35s. Base conversions, fast way Pablo P (Spain) 0 751 06-30-2010, 02:00 PM Last Post: Pablo P (Spain) Say with me: "Natural Complex Entry" Ángel Martin 5 1,742 10-02-2009, 08:57 AM Last Post: Ángel Martin Can the HP 38G do Binary, Hexadecimal, or Octal base kmaciej 2 1,293 02-17-2009, 07:28 PM Last Post: BruceH

Forum Jump: