Please choose a more helpful title next time. A better description of your question in the thread itself would help as well.
No need to round anything.
(a^2 + b^2) / (a * b - a / b) = (a / b + b / a)
Plug in a = 1, b = 2:
(1 + 4) / (2 - 1/2) = (1/2 + 2)
Simplify: 5/(3/2) = 5/2
10/3 = 5/2 - wrong.
>>> a = 1.
>>> b = 2.
>>> (a**2. + b**2.) / (a * b - a / b)
3.3333333333333335
>>> (a / b + b / a)
2.5
>>>
sorry, I misunderstood you. I know that it is an inequality, yet, I'll show you results soon; and explain more in detail
If a or b is zero, the equation is undefined. Also, if ab = a/b, the denominator on the LHS is zero and the equation is undefined. This will be true if b = 1. So we can assume that a and b are both nonzero and that b is not 1.
Then we have:
a^2 + b^2 = (ab - a/b) (a/b + b/a)
a^2 + b^2 = a^2 + b^2 - a^2/b^2 - 1
1 = - a^2 / b^2
If a and b are both real, this equation cannot be satisfied.
Even though there isn't an algebraic solution, PeterDonis, the computed results are shown below.
The variables magn_tone and magn_overtone are both real numbers (float values) taken from complex values of a Decimation in Time Fast Fourier Transform. With (a) taken as magn_tone and (b) taken as magn_overtone, the result is of (LHS / RHS) is 1 as shown by the logcat printout. So can anyone guess my proof?
The variables magn_tone and magn_overtone are both real numbers (float values) taken from complex values of a Decimation in Time Fast Fourier Transform. With (a) taken as magn_tone and (b) taken as magn_overtone, the result is of (LHS / RHS) is 1 as shown by the logcat printout. So can anyone guess my proof?
Please show us your code -- as text, not as an unreadable screen shot, as well as text output of your program, also as text. As @PeterDonis's work shows, your equation has no real solutions.
a = magn_tone * magn_overtone - magn_tone / magn_overtone;
b = magn_tone * magn_tone + magn_overtone * magn_overtone;
c = magn_tone / magn_overtone + magn_overtone / magn_tone;
System.out.println("test " + titr + " " + a + " " + " " + b + " " + c + " " + (b / a) / c + " " + (b / (c * a)));
Output:
I/System.out: energy 357.80927 357.80914 1.0000004
I/System.out: test 11 1717917.5 3723351.0 2.1673625 1.0000004 1.0000002
I/System.out: test 16 4019146.8 1.0260614E7 2.5529332 1.0000001 1.0000001
I/System.out: test 20 1481639.5 6989745.5 4.717561 1.000003 1.000003
I/System.out: test 22 2799359.3 5692193.0 2.0333905 1.0000005 1.0000005
I/System.out: test 24 1794318.6 6313421.5 3.5185556 1.0000018 1.0000018
I/System.out: test 26 2411329.8 1.0595829E7 4.3941774 1.0000018 1.0000017
I/System.out: test 28 1013812.2 8442358.0 8.327271 1.0000081 1.0000082
I/System.out: test 34 231074.9 2355332.0 10.1924925 1.0000436 1.0000436
I/System.out: test 38 93007.39 595468.94 6.401953 1.0000671 1.0000672
I/System.out: test 41 54108.297 197785.27 3.6551328 1.000062 1.000062
I/System.out: test 45 46744.566 286885.6 6.1365194 1.0001278 1.0001278
I/System.out: test 49 13876.021 28539.824 2.0565848 1.0000914 1.0000914
I/System.out: test 51 15818.587 34646.367 2.190018 1.0000975 1.0000975
I/System.out: test break
What does this have to do with the first post?
In your output line you are printing titr, a, b, c, (b/a)/c, and b/(c *a). The last two numbers can be easily shown to be equal. So what?
The fact that a few pairs of these numbers aren't equal is a result of using float numbers in the division.
What does this have to do with the first post?
In your output line you are printing titr, a, b, c, (b/a)/c, and b/(c *a). The last two numbers can be easily shown to be equal. So what?
The OP's code is the implementation of the original formula, just with confusing variable names.
What was a in the original post is magn_tone, what was b in the original post is magn_overtone.
OP then calculates a*b-a/b and calls it "a", a^2+b^2 and calls it "b", and a/b+b/c and calls it "c". Afterwards the code takes the ratio of a/b (left side) and c (right side).
By choosing numbers appropriately, you can make the difference between the LHS and RHS of the equation in the OP as small as you like; you just can't make it zero. The formula for the difference is:
$$
D = \frac{a/b + b/a}{b^2 - 1}
$$
This is undefined if ##a## or ##b## is zero or if ##b = 1##, as I posted earlier. And it's easy to see that, by making ##b## larger and larger, you can make ##D## as small as you like; you just can't make it zero. (Setting ##a = b## minimizes ##D## for a given value of ##b##, so it's easiest to assume that as well.)
by making bbb larger and larger, you can make DDD as small as you like
At a large scale, there are differences:
>>> a = 2.1433184E10
>>> b = 4.547415E9
>>>
>>> (a**2.0 + b**2.0) / (a * b - a / b) - (a / b + b / a)
-8.881784197001252e-16
>>> (a / b + b / a) / (b * b - 1.0)
2.381855352654287e-19
>>>
It may seem trivial, yet I find it important to note. My aim with this post has been to further the understanding of signal processing.
There is a mathematical identity here that disproved algebra. I'll have to do some more thinking on the topic, yet if you have any further input, I would be glad to share some of my observations regarding the idea.
There is a mathematical identity here that disproved algebra.
No, it doesn't. See below.
Here's your equation from post #1.
ADDA said:
(a^2 + b^2) / (a * b - a / b) = (a / b + b / a)
PeterDonis said:
By choosing numbers appropriately, you can make the difference between the LHS and RHS of the equation in the OP as small as you like; you just can't make it zero.
Which means that (a^2 + b^2) / (a * b - a / b) isn't exactly equal to (a / b + b / a). For some values of a and b, the two expressions are approximately equal, which is different from being equal.
There are always differences. We've proven that mathematically in this thread.
However, if you set ##a = b## and make ##b## very large, the difference gets very small. That's what I showed in my previous post. You can easily verify that by trying out values.
(a^2 + b^2) / (a * b - a / b) = (a / b + b / a)
(a^2 + b^2) = (a / b + b / a) * (a * b - a / b)
(a^2 + b^2) = a^2 + b^2 - a^2 / b^2 - 1
0 = - a^2 / b^2 - 1
>>> a = 1662.4321
>>> b = 485.04932
>>> (a**2.0 + b**2.0) / (a * b - a / b)
3.719133235962503
>>> (a / b + b / a)
3.719117428216946
>>> 4.0 + 1.0 / b
4.002061646019832
(a^2 + b^2) / (a * b - a / b) = (a / b + b / a)
(a^2 + b^2) = (a / b + b / a) * (a * b - a / b)
(a^2 + b^2) = a^2 + b^2 - a^2 / b^2 - 1
0 = - a^2 / b^2 - 1
This is old news. It was worked out many posts ago. Since the last equation above is equivalent to -a^2/b^2 = 1, this is why there are no solutions.
ADDA said:
>>> a = 1662.4321
>>> b = 485.04932
>>> (a**2.0 + b**2.0) / (a * b - a / b)
3.719133235962503
>>> (a / b + b / a)
3.719117428216946
>>> 4.0 + 1.0 / b
4.002061646019832
In my opinion, the numbers speak for themselves... there is a real valued solution:
>>> a = 620254.25
>>> b = 100934.39
>>> (a**2.0 + b**2.0) / (a * b - a / b)
6.307853755558177
>>> (a / b + b / a)
6.307853754939016 6.30785375 == 6.30785375
>>> (a**2.0 + b**2.0) / (a * b - a / b)
6.307853755558177
>>> (a / b + b / a)
6.307853754939016
6.30785375 == 6.30785375
Sorry, but rounding to a finite number of decimal places does not constitute a "real-valued solution", no matter how many times you keep repeating numbers.