「みんな教えて! 選手権!!」開催のお知らせ

YouTubeで見かけた関数等式の問題です。
----------------------------------------
実数 x に対して定義された実数値の関数 f(x) が
任意の x について以下の等式を満たすとき、
f(1) の値を求めよ。

f(f(x)) = x^2 - x + 1.
----------------------------------------
数オリ予選からの引用だろうかと思いますが、
国も年度もわかりません。ソースが動画なので
何か条件が落ちているかもしれません。

式をいじっていると f(0) = f(1) = 1 が導けるのですが、
問題点はその後です。 f(1) = 1 は必要条件として、
この等式を満たすような関数 f(x) は存在するのでしょうか?
質問は2点です。
(1) そのような f(x) は存在するか?
(2) 存在するとして、それは一意か?

f(x) を陽に表示する数式があればこの上ありませんが、
それはちょっと無理っぽい気もしています。
皆様の御知恵をお待ちします。よろしくお願いします。

質問者からの補足コメント

  • つらい・・・

    No.1 〜 No.3 で理解できたことを書いてみます。
    [1] 1/2≦x<3/4 での値は、任意に与えてよい。
    [2] 1/2≦x<1 での値は、[1] から f(x^2-x+1) = f(x)^2-f(x)+1 で決まる。
    [3] f(1) = 1 である。
    [4] 1<a≦x<a^2-a+1 (aは定数) での値は、任意に与えてよい。
    [5] 1<x での値は、[4] から f(x^2-x+1) = f(x)^2-f(x)+1 で決まる。
    [6] x<1/2 での値は、f(1-x) = f(x) で決まる。

    まだモヤモヤしているのは、
    [1]〜[6] で f(x^2-x+1) = f(x)^2-f(x)+1 の解が構成できるが、
    それは f(f(x)) = x^2-x+1 の解なのか? という点です。

      補足日時:2024/12/28 14:06

A 回答 (5件)

これでいけるかな?



f(x) に対して次の条件をおく:
・f(1) = 1,
・f(a) = f(1/2-a),
・f(f(x)) = x^2-x+1,
・x≧1/2 に対して単調増加,
・f(x) = x+1/8 (1/2≦x≦5/8),
・f(x) = x+1/2 (2≦x≦5/2).

この f(x) は (定義域を全実数に拡張できて) 条件を満たす.

5/8 と 5/2 はそれぞれ 1/2<c<3/4 及び 2<c'<3 であるような実数 c, c' で置き換えることができ, しかも 1/2≦x≦c, 2≦x≦c' で f は (単調増加であれば) 自由に選ぶことができるので無限に存在する.

よって結論としては
(1) YES
(2) Not unique (in fact infinitely many).
    • good
    • 1
この回答へのお礼

ありがとうございます。

回答の趣旨がよく判りません。
f(f( [1/2, 5/8] )) = f( [5/8, 3/4] ) などによって
piecewise に定義してゆくってことなのかな?

再考して、(1) だけなら f(x)=1 (定数関数) でもいいんだなと思いました。
(2) は、No.1の解が未だ理解できていません。
おばかさんにも解る解説をつけていただけるとありがたいです。

お礼日時:2024/12/25 14:29

横からですが、厳密な議論を避けて、直感的なイメージを中心に書きます。



g(x)=x^2-x+1 (定義域x≧1/2)としておきます

(…→)a→f(a)→f(f(a))→f(f(f(a))))→…
という風にfを作用させた結果が矢印の右側になるように数字と矢印を並べた「fの対応列」を考えます。

ここから偶数番または奇数番目を抜き出して矢印でつなげて、
(…→)b→f(f(b))→f(f(f(f(b))))→
を作ります。f(f(x))=g(x)なので、これは実は
(…→)b→g(b)→g(g(b))→…
というbを起点に書いたgの対応列である事が確認できます。

つまり、「gの対応列を2つ交互に並べる」事でfの対応列を作る事が可能です。(1/2以上の実数のみを並べる前提だと、この形の物に限られるはず)
どのgの対応列同士を交互に並べるのか、という組み合わせ方が無数にあるので、fも無数にあるわけですね。

#1さんの例(のうちx>1の部分)というのは、

2≦x<3/2の実数xに対し「xを起点に書いたgの対応列」と「x+1/2を起点に書いたgの対応列」を交互に並べて、
…→g^(-1)(x)→g^(-1)(x+1/2)→x→x+1/2→g(x)→g(x+1/2)→…
というfの対応列を作る事でfを構成しています

最終的に作ろうとしている物が、上記のようにgの対応列を交互に並べたものだだというイメージを持っていれば、#1さんの例がどういう物か見通しがよくなるのでは?と思ったので、参考まで。却って分かりにくければ無視して下さい。
    • good
    • 1
この回答へのお礼

ありがとう

お礼日時:2024/12/29 08:11

とりあえず f(x^2-x+1) = f(x)^2-f(x)+1 については忘れた方がいいと思う. これを満たしたからといって, 必ず f(f(x)) = x^2-x+1 となるわけではないから. 例えば自身で言及されているように f(x)=1 で成り立つし, あるいは f(x)=x でもいい.



以下 g(x) = x^2-x+1 とする. また「名前が大文字の関数」は対応する「小文字の名前の関数」の逆関数とする. 例えば 上の g(x) は x≧1/2 に対し連続で狭義単調増加かつ g(1/2) = 3/4 だから [1/2, ∞) から [3/4, ∞) への全単射であり, その逆関数は G(x) と表すことにする.

でまずは 1/2≦x<1 のとき. 定数 a∈(1/2, 3/4) を固定し 3つの区間を
I[0] = [1/2, a], I[1] = [a, 3/4], I[2] = [3/4, g(a)] (= g(I[0]))
で定める. I[0] から I[1] への全単射な関数 f[0](x) は f[0](1/2) = a かつ f[0](a) = 3/4 であるものとする. ここで I[1] から I[2] への関数 f[1](x) を
f[1](x) = g(F[0](x))
で定義する (F[0](x) は f[0](x) の逆関数だ). すると f[1](a) = 3/4, f[1](3/4) = g(a) でありしかも f[1](x) は I[1] から I[2] への全単射である. そして, x∈I[0] に対し
f[1](f[0](x)) = g(x)
を満たす. 同じように I[3] = [g(a), g(3/4)] (= g(I[1])) として
f[2](x) = g(F[1](x))
とおけば x∈I[1] に対して f[2](f[1](x)) = g(x) である. 本当はこれを繰り返すことで
[1/2, 1) の範囲を被覆できる
ことを示す必要があるのだが面倒くさそうなのでパス.

これで, あとは f として「x∈[1/2, 1) が与えられたときにその属する範囲に応じて適切な f[?] を適用する」関数とすれば
x∈[1/2, 1) に対し f(f(x)) = g(x) であるような全単射 f
が得られる.

一方 1<x のときはこのように単純にいかないので「途中の区間」からはじめて大小両方向に広げる作戦をとる. そこで, 例えば g(2)=3 であることから区間 [2, 3] からスタートする.

1/2≦x<1 のときと同様 2<a<3 である定数 a をとって I[0] = [2, a], I[1] = [a, 3], I[2] = [3, g(a)] (= g(I[0])) とする. 関数 f[0](x): I[0]→I[1] を f[0](2) = a, f[0](a) = 3 であるような全単射な関数とすると, [2, ∞) へは全く同様に拡張できる. 逆に (1, 2) への拡張では
I[-1] = [G(a), 2] (= G(I[1]))
として I[-1] から I[0] への関数
f[-1](x) = F[0](g(x))
を作る. f[-1](G(a)) = 2, f[-1](2) = a かつ f[-1](x) は I[-1] から I[0] への全単射であり, しかも x∈I[-1] に対し
f[0](f[-1](x)) = g(x)
である. G(x) によって同様に範囲を I[-2] = G(I[0]), I[-3] = G(I[-1]), ... と広げていくと, 最終的に (1, 2) の範囲が埋まる (ここも証明はパス).

残った x=1 に対しては f(1)=1 が強制される.
    • good
    • 1
この回答へのお礼

そうか、 [2] も [5] も f(x^2-x+1) = f(x)^2-f(x)+1 じゃなく
f(f(x)) = x^2-x+1 のままで普通に行けましたね。
なんで、こんなとこにひっかかってたんだろう?
思い込みって怖いですね。スッキリしました。ありがとうございました。

お礼日時:2024/12/29 08:09

#2 の方法で構築すると, 1/2≦x<1 に対する f は 1/2≦x<3/4 におけるふるまいのみで確定する. その意味では, 「x = 1/2 近傍でのふるまいだけで実数全域での f(x) が決まってしまう」というのは (実数全域ではない, というところを無視すれば) 間違っていない.



ただし, この方法では
・1/2≦x<3/4 を 1/2≦x<c と c≦x<3/4 に分割する
・1/2≦x<c から c≦x<3/4 への単調増加な連続関数を決める
の 2箇所で f の挙動を無限に設定できる. 前者では分割点 c の決め方が (1/2<c<3/4 でありさえすればよいので) 無限に存在するし, 後者も 2つの端点 (f(1/2) = c と f(c) = 3/4) 以外は「連続かつ単調増加」でありさえすれば完全に自由に選ぶことができる.

つまり, f が「x = 1/2 近傍でのふるまい」で決まるのは正しいんだけど, その「x = 1/2 近傍でのふるまい」が無限に存在するので結果として f は無限に存在する.
    • good
    • 1
この回答へのお礼

ああ、いろいろ見落としてました。
特に「どうしても x=1 の前後で分断されてしまう」は大切でしたね。
x ≦ 3/4 の部分については、 f(x^2-x+1) = f(x)^2 - f(x) + 1 で制限されない
から任意に与えてよく、それを拡張してゆけば良いのですね。

しかし、x > 1 の部分については、小さな区間で定義を与えても
それがより小さい x での f(x) と f(x^2-x+1) = f(x)^2 - f(x) + 1 と整合するか
を最初の区間内でさえ検証しないといけないように思うのですが、
任意に与えられるんでしょうか?

あと、ひとつ。
(3) f(x^2-x+1) = f(x)^2 - f(x) + 1 から f(f(x)) = x^2 - x + 1 は再現できるのか?
にもちょっと引っかかっています。

お礼日時:2024/12/26 23:22

まず訂正. f(a) = f(1/2-a) ではなく f(a) = f(1-a). 軸が 1/2 であることに注意を全部持っていかれた.



コンセプトは「f を piecewise に与える」というのがまさにその通り.

a, b (1/2≦a<b) をてきとうにもってきて f(a) = b, f(b) = f(f(a)) (a<x<b や f(a)<x<f(b) に対してはてきとうに単調増加になるように設定する) としてしまう. すると f(f(x)) を繰り返し適用することで
[a, b] → [f(f(a)), f(f(b))](f は 2個) → [f(f(f(f(a)))). f(f(f(f(b))))](f は 4個) → ...,
[f(a), f(b)] → [f(f(f(a))), f(f(f(b)))](f は 3個) → ...
のように定義域を拡張できて, しかも b = f(a), f(f(a)) = f(b), ... だからうまく全部つなげられる. 逆に a より小さいところは「f(f(x)) の逆関数」を使って定義できるはずで, こちらも全ての範囲がつながる.

というのが基本的なところなんだけど, 実際にやるとどうしても x=1 の前後で分断されてしまうので「1/2≦x<1」と「1<x」にわけてそれぞれで同じことをする必要があるのでした.
    • good
    • 1
この回答へのお礼

なるほど。

原式を f(x^2-x+1) = f(f(f(x))) = f(x)^2 - f(x) + 1 に変形してみたとき、
x^2-x+1 ≧ x が何かの役割を果たすことは感じていました。

そのやり方だと、x = 1/2 近傍でのふるまいだけで
実数全域での f(x) が決まってしまうように思うのですが、
(2) in fact infinitely many となるのでしょうか?

お礼日時:2024/12/26 00:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A