B Find ##f(x)## such that f(f(x))=##log_ax##

  • #51
Stephen Tashi said:
I'd say it is not difficult to solve such nonlinear equations numerically.

It also possible to solve such equations symbolically, although the theory behind that is a fairly "deep" subject ( e.g. Grobner bases or Wu's method of elimination).
I don't know of any tool that versatile in C++ or any other programming system.

The term "the C++ library" can have various meanings. There are special mathematical libraries written for C++ such as "Symbolic C++" ( https://en.wikipedia.org/wiki/SymbolicC++ ). These libraries are not "standard" components of C++, but many are free software and simple to incorporate in C++ programs.

C++ has some "built-in" functions. There is also a library for C++ called "The Standard Template Library" which is, as the name suggests, a "standard" part of C++.
The project just got simpler. Now forget the polynomials. Could you get approximate functions, such that ##f(f(x))=log_{a^a}x##, by the method suggested by jostpur and see if ##f(a)## converges towards 1? Similarly get function ##g(x)## such that ##g(g(g(x)))=log_{a^{a^a}}x## and see if ##f(a)## converges towards one. I don't think that should be much problem.
jostpuur said:
If you know some programming language, you could write an iteration that seeks to minimize the function

<br /> \mathcal{F}(f) = \int\limits_{\epsilon}^R \big(f\big(f(x)\big) - \ln(x)\big)^2dx<br />

numerically, approximating the function f as some array. The result might tell something.
 
Mathematics news on Phys.org
  • #52
Kumar8434 said:
No. I don't know any programming language.
Kumar8434 said:
I'm in high-school final year. I've just learned some of the advanced concepts from the internet. That's all.

Everybody (almost) must know how to write programs. If you are only at high school, well then it is understandable that you haven't learned programming yet, but you should start a programming hobby as soon as possible.

Kumar8434 said:
I don't know if it can be done by programming. But could you check one thing for me if it is possible with programming and it it's not much work?
Kumar8434 said:
Thanks. That would be great. Please reply if you get something.
Kumar8434 said:
I don't think that should be much problem.

You have a severe attitude problem if you are hoping that other people would start writing some programs to study your problem. I know fully well how to write a program that would minimize the function \mathcal{F}(f) I mentioned earlier, but I'm not going go spend my time on it now, because getting some numerical results and graphs about this f isn't very important to me.

Usually the relationship between the young and energetic, and the old and wise, works so that on their own the young and energetic don't know what to do with their enthusiasm, and then the old guys advice them on how to use their energy in a purposeful way. You should appreciate the fact that I even mentioned the existence of the function \mathcal{F}(f), because on your own you would have never realized that that kind of function could be written down to be minimized.
 
  • #53
jostpuur said:
Everybody (almost) must know how to write programs. If you are only at high school, well then it is understandable that you haven't learned programming yet, but you should start a programming hobby as soon as possible.You have a severe attitude problem if you are hoping that other people would start writing some programs to study your problem. I know fully well how to write a program that would minimize the function \mathcal{F}(f) I mentioned earlier, but I'm not going go spend my time on it now, because getting some numerical results and graphs about this f isn't very important to me.

Usually the relationship between the young and energetic, and the old and wise, works so that on their own the young and energetic don't know what to do with their enthusiasm, and then the old guys advice them on how to use their energy in a purposeful way. You should appreciate the fact that I even mentioned the existence of the function \mathcal{F}(f), because on your own you would have never realized that that kind of function could be written down to be minimized.
He only asked for people's help here. There is nothing wrong with that. That's why PF is here. Whoever wants to help does. We are all volunteers here.
And the function that you mention (or actually functional) is not a secret (he would have found it sooner or later ... by studying), just standard variational calculus.
 
  • #54
Kumar8434 said:
Could you get approximate functions, such that ##f(f(x))=log_{a^a}x##, by the method suggested by jostpur and see if ##f(a)## converges towards 1?
Jostpur suggested a goal, not a specific method. Before charging off to write programs, I prefer to think about the problem a little longer.

One possibility is that there is no continuous function ##f(x)## such at ##f(f(x))## well approximates ##\log_a(x)## everywhere in the set of values ## (0,\infty)##. For example, perhaps when we create a function that does the approximation well on the set of values ##(0, 2a)## the error gets worse and worse for larger values of ##x##.

Here is an amusing way to think about the problem. Suppose I try to find f(x) by creating a table of values. I pick the value x0 arbitrarily and also pick the value of f(x0) arbitrarily. I know that I want f(f(x0)) = log(x0) so the table looks like:

x, f(x), f(f(x))
----------------
1) x_0, f(x0), log(x0)

Then for a second row, I use the value x1 = f(x0). I already know that f( f(x0)) = log(x0). I also know that I want f(f(x_1)) = log(x1), so all three entries of the second row are determined:

x, f(x), f(f(x))
----------------
1) x_0, f(x0), log(x0)
2) f(x0), log(x0), log(x1) = log( f(x0))

Using x3 = f(f(x0)) = log(x0) to form a third row, I get:

x, f(x), f(f(x))
----------------
1) x_0, f(x0), log(x0)
2) x1= f(x0), log(x0), log(x1)
3) x2= log(x0), log(x1), log(x2)

If I continue to follow this process, the only arbitrary choices I made are the values for x0 and f(x0). The rest of the table is determined by those two values. As an approximation, this method doesn't give us much control over what x values appear in the table.
 
  • Like
Likes Stavros Kiri
  • #55
jostpuur said:
Everybody (almost) must know how to write programs. If you are only at high school, well then it is understandable that you haven't learned programming yet, but you should start a programming hobby as soon as possible.You have a severe attitude problem if you are hoping that other people would start writing some programs to study your problem. I know fully well how to write a program that would minimize the function \mathcal{F}(f) I mentioned earlier, but I'm not going go spend my time on it now, because getting some numerical results and graphs about this f isn't very important to me.

Usually the relationship between the young and energetic, and the old and wise, works so that on their own the young and energetic don't know what to do with their enthusiasm, and then the old guys advice them on how to use their energy in a purposeful way. You should appreciate the fact that I even mentioned the existence of the function \mathcal{F}(f), because on your own you would have never realized that that kind of function could be written down to be minimized.
I fully appreciate your effort. I don't know advanced programming concepts yet. I haven't even started arrays. So, I thought instead of working on my skills for months and then checking my work, I'd ask Stephen Tashi to quickly check it only if it wasn't too much work. As he later mentioned that the task was difficult, so I didn't further force him to do anything.
 
  • #56
Stephen Tashi said:
Jostpur suggested a goal, not a specific method. Before charging off to write programs, I prefer to think about the problem a little longer.

One possibility is that there is no continuous function ##f(x)## such at ##f(f(x))## well approximates ##\log_a(x)## everywhere in the set of values ## (0,\infty)##. For example, perhaps when we create a function that does the approximation well on the set of values ##(0, 2a)## the error gets worse and worse for larger values of ##x##.

Here is an amusing way to think about the problem. Suppose I try to find f(x) by creating a table of values. I pick the value x0 arbitrarily and also pick the value of f(x0) arbitrarily. I know that I want f(f(x0)) = log(x0) so the table looks like:

x, f(x), f(f(x))
----------------
1) x_0, f(x0), log(x0)

Then for a second row, I use the value x1 = f(x0). I already know that f( f(x0)) = log(x0). I also know that I want f(f(x_1)) = log(x1), so all three entries of the second row are determined:

x, f(x), f(f(x))
----------------
1) x_0, f(x0), log(x0)
2) f(x0), log(x0), log(x1) = log( f(x0))

Using x3 = f(f(x0)) = log(x0) to form a third row, I get:

x, f(x), f(f(x))
----------------
1) x_0, f(x0), log(x0)
2) x1= f(x0), log(x0), log(x1)
3) x2= log(x0), log(x1), log(x2)

If I continue to follow this process, the only arbitrary choices I made are the values for x0 and f(x0). The rest of the table is determined by those two values. As an approximation, this method doesn't give us much control over what x values appear in the table.
I think we can get exact functions ##f(x)## such that ##f(f(x))=logx## using limits. If we assume ##f(x)## to be of degree ##n##. Then ##f(f(x))## will be of degree ##n^2##. Now, we ignore the terms containing powers of ##x## greater than ##n##, and then we solve ##n+1## equations in ##n+1## variables to get the coefficients. Since we're working with symbolic ##n##, so I think the coefficients will be functions of ##n##. So, the exact coefficients can be obtained by applying ##\lim_{n\rightarrow \infty}## to those functions. But, of course, I'm not saying that solving those seriously complicated non-linear equations in terms of ##n## is practically possible.
 
  • #57
Stavros Kiri said:
I tend to agree.
Could there be a family of functions, one for each point, such that ##f(f(x))=log_ax##?
For example, by using a first degree polynomial, I got this function which when applied twice to ##c## gives you ##a^c##:
$$x\sqrt{a^c\log_ea}+\frac{a^c(1-c\log_ea)}{\sqrt{a^c\log_ea}+1}$$
Problem is it itself depends upon ##c##. So, I guess there are different functions for different points.
Similarly, this function when applied ##n## times to ##c## gives you exactly ##a^c##:
$$x(a^c\log_ea)^{\frac{1}{n}}+\frac{a^c(1-c\log_ea)}{\sum_{k=0}^{n-1}(a^c\log_ea)^{\frac{k}{n}}}$$
But the problem is these functions themselves depend upon ##c##.
 
  • #59
SlowThinker said:
Kumar, you should try to read the document
http://tetration.org/IF.pdf
again. If you get past the unfortunate notation, it seems to answer your questions.
It looks as if the author has some good knowledge of the subject, in particular it seems obvious that the Taylor expansion should be performed at the function's fixed point(s) (0.318132 + 1.337236i for log(x)).
I tried to read it again, but it's too hard to read something when you don't understand more than half of the terms. He said that it involves college level maths. So, I've it saved and I'll read it again when I get to that level. I know that, in the paper, he proves that functional-roots exist and are unique. But how it's proved is far beyond my knowledge.
 
  • #60
A random thought:

Sometimes "changing coordinates" or "changing variables" is useful. What would such a "changing" be in the problem at hand?

In group theory, there is the notion of the "inner automorphisms" of a group. Any group can be regarded as set of functions. Applying the idea of an "inner automorphism", let ##g(x)## be a given 1-to-1 function with inverse function ##g^{-1}(x)##. Define the transformation ##T(f(x)) = g( f( g^{-1}(x)))##. So ##T## is a transformation that changes a function ##f## into another function.

The basic daydream goes like this. Suppose we can find a function ##g## such that ##T(ln(x))## transforms ##ln(x)## into some function ##h(x)## that is easy to express as ##h(x) = s(s(x))## Then we could use the inverse transformation ##T^{-1}s(x) = g^{-1}( s( g(x))) = r(x)## to express ##ln(x)## as ##ln(x) = r(r(x))##.

I don't know if this really helps solve the title of the thread, but at least it is an excuse to review "inner automorphisms".
 
Back
Top