possibly serious bug....need someone from HP...

11212017, 06:40 PM
Post: #1




possibly serious bug....need someone from HP...
This is a repost of a different problem, and while trying out various versions of this, I managed to reboot the calculator and another time crashed the calculator where I had to push the reset button hole in the back.
I was trying to find the intersection (algebraicly) between the functions: y = atan(cot(pi*x))/pi + x 1/2 (staircase function) and y = (25x^2)^(1/2) (circle of radius 5) It has a solution for x=4. I can plot them and see the intersection. So, I typed the following: The result is a blank matrix, []. Why didn't it solve it? Then I tried the following, using f(x):= instead of f:=....as in here... Again with solve(f(x)=g(x),x) gives [] again... So, first, I want to know why it doesn't solve it. Next, without changing anything, I tried solve(f=g,x) instead of solve(f(x)=g(x),x), and got that it just hangs forever and I have to reset the calculator. The animated hourglass is going in the upper right. After I reset it and try it again, it reboots the calculator. On the virtual calculator it hangs for a bit and then reboots. Let me know what you find out. 

11212017, 06:47 PM
Post: #2




RE: possibly serious bug....need someone from HP...
I also notice that when I use the f:=, g:= format (instead of f(x):=, g(x):=) method of defining the functions, and try solve(f(x)=g(x),x), I get a strange message where it's trying to evaluate pi(x) instead of pi*x. Then it gives an error message because of this.


11212017, 07:35 PM
Post: #3




RE: possibly serious bug....need someone from HP...
You are confused: there is a difference between a function f and an expression g. A function has arguments unlike an expression. If f is a function, you can compute f(2) or f(x) and get an expression, while g(2) or g(x) does not mean anything.
Regarding solve, it solves polynomiallike equations, i.e. equations that can be rewritten like a polynomial equation, your equation can not be rewritten like that. For more general equations, there is no method for exact solving, you must switch to approx solving (fsolve). You can solve an expression=another expression with respect to a variable, but solving a function=another function does not mean anything : with respect to what would you solve?. I will add a check to avoid the calc reboot in this situation. 

11212017, 07:35 PM
Post: #4




RE: possibly serious bug....need someone from HP...
Just tried on virtual calculator (13012) BETA. Yes, it hung the virtual calculator.


11212017, 08:11 PM
Post: #5




RE: possibly serious bug....need someone from HP...
Maybe there is problem, because cot(pi*x) does not exist, if x is integer.


11212017, 08:44 PM
Post: #6




RE: possibly serious bug....need someone from HP...
Works fine for me with fsolve:
fsolve(g(x)f(x),x=3.1 .. 4.5) returns [4.] and also if you do not even use starting values (which you normally should): fsolve(g(x)f(x),x) returns [4.] solve is the wrong command to use in this example (f(x) is not a polynomial). But if I use solve, i.e., solve(g(x)f(x),x) my physical Prime does not hang, just returns empty brackets. 

11212017, 08:46 PM
Post: #7




RE: possibly serious bug....need someone from HP...
(11212017 08:44 PM)Helge Gabert Wrote: Works fine for me with fsolve:nearly the same as I answered in the related thread. 

11212017, 09:19 PM
Post: #8




RE: possibly serious bug....need someone from HP...
Great minds think alike!
Did you also notice that in the function app, the intersection point cannot be found, regardless how closely you position the cursor to the solution at x=4? 

11212017, 09:26 PM
(This post was last modified: 11212017 09:41 PM by webmasterpdx.)
Post: #9




RE: possibly serious bug....need someone from HP...
(11212017 07:35 PM)parisse Wrote: You are confused: there is a difference between a function f and an expression g. A function has arguments unlike an expression. If f is a function, you can compute f(2) or f(x) and get an expression, while g(2) or g(x) does not mean anything.Yes, I was confused. I thought I saw f:=.... and you could then replace x by typing f(x)....but it's not so (just tested it). Thats what happens when you don't have a CAS manual. However, I could type f=g, as that would create an equation. I missed the line in the help where it says it has to be a polynomial. So, I tried fsolve, and it worked! Now, what I'm really trying to do is this. I'm trying to solve the intersection between the following 2 functions: f(x):=atan(cot(pi*x))/pi + x 1/2 g(x):=(z^nx^n)^1/n The problem specified above was this with z set to 5 and n set to 2. What I was trying to do was find the x value at the intersection between f(x) and g(x) in terms of z and n. I can't do this with fsolve, but with csolve(f(x)=g(x),x), I got: (z^ne^(i*n*pi))^(1/n) however, when I evaluate this with z=5, n=2, I get 2*(6)^(1/2), and not 4 (which is the correct answer). First question is why do I get an incorrect answer and secondly, is there a way to solve this? Thx 

11212017, 10:14 PM
Post: #10




RE: possibly serious bug....need someone from HP...  
11212017, 10:28 PM
Post: #11




RE: possibly serious bug....need someone from HP...
fsolve(f(x)=g(x),x) gives me 4 as the answer.
Also, when I plot f(x) and g(x) in the advanced plot and I select intersection, it goes to 4,3 on both curves, and I can visually see that this is where they intersect. I know that at any integer point for x, the curve moves asymptotically, but right before, but infinitely close to x=n, y is an integer and y goes to y+1 immediately after x=n. I'm trying to simulate a staircase function using f(x). I have a problem where I'm trying to mix discrete math and analog math, using the staircase function. If I can do this, it would prove very very useful to me. However, 2 root 6 is out in left field.... 

11212017, 10:55 PM
Post: #12




RE: possibly serious bug....need someone from HP...  
11222017, 12:49 AM
Post: #13




RE: possibly serious bug....need someone from HP...
yes, and that's fine.
However, I need to understand where 2 root 6 comes from... 

11222017, 01:32 AM
Post: #14




RE: possibly serious bug....need someone from HP...
OK, so to avoid the discontinuous part of f(x), I subtracted a small value from x....and tried:
csolve(f(x0.001)=g(x),x) and I get (z^ne^(pi*i*n))^(1/n) ...when I put n:=2, this becomes... sqrt(z^2(12.15E14*i)) The imag term is so small I can ignore it, so it becomes: sqrt(z^21) ...when z:=5, this becomes... sqrt(5^21) = sqrt(251) = sqrt(24) = 2*sqrt(6) The real answer is z1, not sqrt(z^21). So, I'm wondering how it arrives at that... 

11222017, 06:36 AM
Post: #15




RE: possibly serious bug....need someone from HP...
Another thing that you should keep in mind when running solve or fsolve is that they expect the expressions inside to be continuous, otherwise you can't do much, solve won't work because polynomiallike equations are continuous, fsolve won't work because you can't apply iterative methods, think for example about bisection. There is no magic, before trying some bizarre input to solve, you should ask yourself could I do it by hand if I could compute very quickly? That's why you must learn the corresponding math before.


11222017, 11:17 AM
Post: #16




RE: possibly serious bug....need someone from HP...
in fact, what I was doing to keep the calculation in the continuous part of the curve was to use xdeltaX, where deltaX I varied from 0.001 to 0.5.....seems to work as long as I use a value in that range.
However, I still don't know how it achieved it's result as stated in my previous post....and it doesn't make much sense. 

11222017, 01:45 PM
Post: #17




RE: possibly serious bug....need someone from HP...
Did you notice that csolve gives you an informational message
csolve(g(x)f(x)=0,x) "Simplification assuming n near 0" "Simplification assuming z near 0" Since neither z nor n are near zero, here is your answer. 

11232017, 02:55 AM
Post: #18




RE: possibly serious bug....need someone from HP...
That's kind of annoying...
z near 0 means? ...could mean is a small integer. ...could mean is infinitely close to zero as in .0000001 It also doesn't say: Answer will be completely wrong if z isn't infinitely closer to zero. Also, I don't want it to simplify it. Hmmm....I'll have to try it with assume(z > 4) and see what happens...when I get a chance. 

« Next Oldest  Next Newest »

User(s) browsing this thread: