・三次関数と円                          らすかる氏

 xy平面上の三次関数で、単位円で切り取られる長さが6より大きいものはあるか?


 GAIさんからのコメントです。(令和3年3月8日付け)

 直感ではあるわけない(単位円の最長部分の一往復半で6なのだから)と思いつつ、でも、
こんな問題をらすかるさんが問うわけないぞ!と思い直し、試しに、グラフソフトで単位円に
入りこむ原点対称の関数を係数のパラメータを変化させながら探していくと、

  y=f(x)=25*x^3-5.3*x

あたりが弧長が長くなりそうだとみて、計算してみた。(手計算では大変なので、ソフト利用)

 関数と単位円の交点は、

gp > solve(x=0,1,25*x^3-5.3*x=sqrt(1-x^2))
%354 = 0.5600225365

 弧長は原点対称なので、

gp > 2*intnum(x=0,%354,sqrt(1+(75*x^2-5.3)^2))
%356 = 6.789530000

 ワァ〜 6を越えた!!! 原点を通る部分が斜めに走るから可能なんでしょうね。
でも直感を完全に裏切られました。


 らすかるさんからのコメントです。(令和3年3月8日付け)

 残念ながら、solveの使い方が正しくないと思います。

 3つ目のパラメータは、f(x)=0 の f(x) を書きますので、「=」が入った式ではダメです。
(この「=」がどのように判断されたのかは未確認)

 実際、0.5600225365を、25*x^3-5.3*x に代入すると 1.42281 で、sqrt(1-x^2) に代入する
と 0.828477 で、全然違います。「=」を「-」に直して、

solve(x=0,1,25*x^3-5.3*x-sqrt(1-x^2))

とすれば、正しい値(約0.526)が得られます。で、この正しい値では、5.643ぐらいになって、
6を超えません。


 GAIさんからのコメントです。(令和3年3月8日付け)

 あら!この数値は一体どこから?

 指摘されたコマンドの使用ルールに従い、正しく計算していくとどれもこれも 6 の弧長に近
づくものの、決して超えることは起こらない。

 三次曲線の極大極小が単位円内に収まり円内で一続きとなるパターンをx^3の係数が
100000になるくらいまで見たのですが、すべて弧長は6を越えません。

 そこで、極大極小が円外にあり、曲線が円で3か所に切れてしまうタイプについても円外
に出ている部分の弧長を差し引く計算もやってみて調べましたが、これもいずれも条件を
満たしません。

 ただ前提として考えている3次関数は、y=a*x^3-c*x (a>0) タイプしかないだろうと思って
やっています。従って、やっている計算は右半分だけをやっています。
(もしこの前提が間違っていたら、やっている計算はすべて無意味です。)

 ちなみにヒントは貰えますか?
(相当いろいろなパターンで計算するのですが、今のままでは先が見えてきません。)


 DD++さんからのコメントです。(令和3年3月8日付け)

 y=10*x^3-30*x^2-10*x+30

 4 つの交点のうち、y>0 にある 2 つの交点の間で切り取られる曲線の長さは明らかに 6
より長いです。「切り取られる」は「内部にある」ことを意味するわけではないはず。


 らすかるさんからのコメントです。(令和3年3月8日付け)

 なるほど、そういう解釈もありましたか。迂闊でした。「内部にある」という条件でお願いしま
す。

 なお、y=a*x^3-c*x (a>0) の形で、存在します。aを大きくしていくと、6には達しなくても近づ
いていますよね?


 DD++さんからのコメントです。(令和3年3月8日付け)

 薄々思っていましたが、やっぱり題意ではなかったですか。内部にある部分が複数箇所あ
る場合は、その合計値で考えるということでいいんでしょうか?


 らすかるさんからのコメントです。(令和3年3月8日付け)

 合計値の方が長くなることはないような気がしていますので、そういう考え方でも同じ答え
になるのではないかと思っていますが、私の意図を正確に書くと、

 xy平面上の三次関数のある1区間だけが単位円の内部(周上を含む)を通るとき、
その区間内の三次曲線の長さが6より大きいものはあるか?


というのが本当のところです。
(最初からこのように厳密に書けばよかったですね。すみません。)

# 「6より大きい」には「周上を含む」は関係ありませんが、「最大値」を考える可能性を考え
 て「周上を含む」としています。(周上を含まないとおそらく最大値が存在しないため)


 DD++さんからのコメントです。(令和3年3月8日付け)

 「内部」が周上を含むなら、それで大丈夫です。

 これは 6 を超えませんが、例えば、y=(1521√3/108)*x^3-(37√3/12)*x みたいな関数を
作ろうとしていたので。
(この三次関数は単位円に対して 2 つの交点と 2 つの内接点を持つので、厳密には 3 つ
の曲線として切り取られる)


 GAIさんからのコメントです。(令和3年3月9日付け)

 求める3次関数を、 f(a,c,x)=a*x^3-c*x (a>0) で、この極小値が円上にある条件は

  4*c^3+9*c-27*a=0

となったので、[0,1]区間で、

 C(a)=real(polroots(4*x^3+9*x-27*a)~[1]);

で、cの値をaで決めて(C(a)は近似値で出るので、実際は円にぎりぎり接する寸前状態)

f(a,x)=a*x^3-C(a)*x;
Q(a)=solve(x=0,1,f(a,x)-sqrt(1-x^2));関数と円の交点のx座標
L(a)=intnum(x=0,Q(a),sqrt(1+(3*a*x^2-C(a))^2));半弧長

とすべてx^3での係数aでの変数にとり、aを変化させてL(a)を追跡した。

 aによりL(a)は最初単調増加で変化していくがa=98000〜100000辺りから減少に転じてきた。
その先a=100000000位まで増やしても減少の方向は変わらなかった。

 そこで、a=99000 あたりを更に詳細に調査すると、a=98878 で最高点に達した。しかし、そ
れでもL(a)の値は2.9985484422225256・・・(2倍しても6を越えることは出来ません。)

 正解となるaはこれより大きいのでしょうか?


 らすかるさんからのコメントです。(令和3年3月9日付け)

 L(a)=intnum(x=0,Q(a),sqrt(1+(3*a*x^2-C(a))^2));半弧長

 intnumはデフォルトでは結構(この関数では)粗くなるようです。

 L(a)=intnum(x=0,Q(a),sqrt(1+(3*a*x^2-C(a))^2),11)

のように最後に「,11」を付ければほぼ正しい値が出ますが、(数が大きいほど正確にはなる
が時間がかかるようになります)おそらくワークメモリが足りなくなりますので、事前に

 default("parisize","400000000")

を実行しておくと良いと思います。なぜこの話をしたかというと、

 aによりL(a)は最初単調増加で変化していくがa=98000〜100000辺りから減少に転じてきた。
その先a=100000000位まで増やしても減少の方向は変わらなかった。

 そこで、a=99000 あたりを更に詳細に調査すると、a=98878 で最高点に達した。しかし、そ
れでもL(a)の値は2.9985484422225256・・・(2倍しても6を越えることは出来ません。)


 この実験結果はその「粗さ」のせいと思われるためです。正しく計算すれば、a≦100000000
では増加すると思います。

 正解となるaはこれより大きいのでしょうか?

 a≦100000000では6に達しないと思います。正解はこれより大きいです。

# 私も「intnumの精度の向上」は今回が初めてです。数学の問題というより「Pari/GPの使い
 方の練習」になってますねw


 GAIさんからのコメントです。(令和3年3月9日付け)

 f(x)=180000000*x^3-1067.0672884864644237791261725216456557*x 位の3次関数で、
弧長=6.000000003693071092336135827185113009 になりましたが正しいのかな?


 らすかるさんからのコメントです。(令和3年3月9日付け)

 はい、正しいと思います。aを大きくするとさらに増え、約8億で最大値をとります。その後は
6に収束するようです。


 DD++さんからのコメントです。(令和3年3月9日付け)

  この極小値が円上にある条件は、4*c^3+9*c-27*a=0

  L(a)=intnum(x=0,Q(a),sqrt(1+(3*a*x^2-C(a))^2));半弧長


 これだと L(a) は円周の外部にある部分も計算してしまっているのでは?それが 6 より大
きくなっても、円の内部にある部分が 6 を超えるかどうかに関しては何もわからないと思い
ます。


 GAIさんからのコメントです。(令和3年3月9日付け)

 求める3次関数をf(a,c,x)=a*x^3-c*x (a>0)と仮定しているので、[0,1]区間でとる極小値を与
えるx0は、x0=sqrt(c/(3*a)))で、もし極小値が円の外部なら、[0,x0]区間で3次関数と円の下
部(y=-sqrt(1-x^2))は交わる。

 つまり、solve(x=0,x0,f(a,c,x)+sqrt(1-x^2)) は交点のx座標を示す。

 ところが、 a=180000000,c=1067.0672884864644237791261725216456557 で上記の計算
をさせると、

  ***   domain error in solve: f(a)f(b) > 0

の注意が返される。

 これはつまり[0,x0]区間では2つは交われないことと判断できる。ちなみに、
c=1067.0672884864644237791261725216456558 と最後の数値を+1増やすと、ちゃんと下
記の交点座標を返した。

%292 = 0.0014057206458732095385873262439907722505

従って、この3次関数のグラフはぎりぎり円内で一つながりなので、弧長の計算は精度良く
flagを11(2^11に分割して積分するみたいです。)にして、

L(a)=2*intnum(x=0,Q(a),sqrt(1+(3*a*x^2-C(a))^2),11)
(但しQ(a)=solve(x=0,1,f(a,x)-sqrt(1-x^2)))

で計算しました。

 これは以前、三次曲線の極大極小が単位円内に収まり円内で一続きとなるパターンをx^3
の係数が100000になるくらいまで見たのですが、すべて弧長は6を越えません。そこで極大
極小が円外にあり、曲線が円で3か所に切れてしまうタイプについても円外に出ている部分
の弧長を差し引く計算もやってみて調べましたが、これもいずれも条件を満たしません。

を調査した時、これを判断するプログラムを準備していたのでこれも同時にチェックして探
して解答していました。


 らすかるさんからのコメントです。(令和3年3月9日付け)

 これはつまり[0,x0]区間では2つは交われないことと判断できる。

 グラフを拡大していくとわかりますが、0から極小値までの間では交わらなくても極小値よ
り大きいxで交わる可能性があります。

また

 solve(x=0,x0,f(a,c,x)+sqrt(1-x^2)) は交点のx座標を示す。

 ところが、 a=180000000,c=1067.0672884864644237791261725216456557 で上記の計算
をさせると、

  ***   domain error in solve: f(a)f(b) > 0

の注意が返される。

 これはつまり[0,x0]区間では2つは交われないことと判断できる。


 この結果からは交わらないとは言えないと思います。solve(x=a,b,f(x))は、

「f(a)<0かつf(b)>0」または「f(a)>0かつf(b)<0」の場合に符号が変わる点つまり交点を求
めるものであって、

f(a)>0かつf(b)>0で(a,b)で一度f(x)が負になってまた正に戻るような場合は、上記のエラー
になり、交点があっても解けません。

 交点があるかどうか確かめるには、WolframAlphaに、solve x^2+(ax^3-cx)^2=1 と入力し
て解を調べるとわかります(a,cは具体値)。

 a=180000000,c=1067.0672884864644237791261725216456557の場合は、結果からわか
るように、実数解が6個、虚数解が0個ですから、途中で単位円と交わっています。

(追記) というわけで、詳しく調べると、単位円との交点のx座標は、
    ±0.001405720645873209538587322032 と±0.001405722497727297667857841326

円からはみ出ている部分の三次曲線の長さは、0.000000001851856527706187235230959221

 以前GAIさんが書かれた、6.000000003693071092336135827185113009 からはみ出てい
る部分の長さの2倍を引くと、5.999999999989358036923761356723194567 となり、6に達し
ていませんので、以前私が書いた「はい、正しいと思います。」は撤回させていただきます。


 GAIさんからのコメントです。(令和3年3月9日付け)

 少し安全な所で、a=200000000,c=1105.20877098 でチェック

Wolfram Alphaで、 solve x^2+(200000000x^3-1105.20877098x)^2=1
x = ± 0.00271442
x = ± (0.00135721 + 3.48685×10^-9 i)
x = ± (0.00135721 - 3.48685×10^-9 i)

曲線は円内のみ

gp > Q(a,c)=solve(x=0,1,f(a,c,x)-sqrt(1-x^2));
gp > Q(200000000,1105.20877098)
% = 0.0027144159499202208564104710258226855434

全弧長は

gp > L(a,c)=2*intnum(x=0,Q(a,c),sqrt(1+(3*a*x^2-c)^2),11)
%=6.0000000465288191057126516366860961831


 らすかるさんからのコメントです。(令和3年3月9日付け)

 今度は本当に大丈夫ですね。私の方でもきちんと確認しました。私も、最初はGAIさんと同
じく「極値あたりで交わらないようにパラメータを設定して長さを求める」という方法(ただし私
は、cを与えてからaを計算)で調べていましたが、のちのDD++さんの
「y=(1521√3/108)*x^3-(37√3/12)*x」に刺激され、(最大値を知りたかったこともあり)
「2点で交差、2点で接する三次関数」の方法で求め直しました。

 x^2+y^2=1に(±t,干√(1-t^2))(t>0)で接する三次関数をゴリゴリ計算してみると、式が

  y={x^2-(3-2t^2)t^2}x/{2t^3√(1-t^2)}

となり(グラフを描いてtを変えてみるとわかりやすいです)、(接点ではない)交点のx座標は
±2t√(1-t^2)となりますので、

f(t)=2∫[0〜2t√(1-t^2)]√{1+((3x^2+2t^4-3t^2)/(2t^3√(1-t^2)))^2}dx

により「x=±tで接するときの長さ」が求められます。その結果

t>0.00140966504450408404502では、(長さ)<6
t=0.00140966504450408404501で、(長さ)>6
(このときa=178493597.952127428, c=1064.08221517549066)
(つまりa<178493597では長さは6に届かない)

 その後、tが小さくなるにつれ長さは増加し、t=0.00085500583241で長さの最大値が

 6.00000024367898164275703611 (このときa=799950163.05744989, c=1754.3737836422112)

 そして、さらにtが小さくなると長さは減少して、t→+0のとき(長さ)→6+0となっているようで
すが、tをどんどん小さくするとintnumの精度がおいつかなくなって、Pari/GPで正確な値が計
算できなくなるため、「6を下回ることなく6に収束する」かどうかは確認できませんでした。
(6に収束することは直感的に自明)


 GAIさんからのコメントです。(令和3年3月10日付け)

 3次曲線 y=a*x^3-c*x (a>0) の極値が円 x^2+y^2=1 上にあるように
なる方程式群

  y=(4*c^3+9*c)/27*x^3-c*x・・・・・@

と3次曲線が円内で接しながら動く方程式群(やっとこの式が導けました。)

  y=(x^3-(3-2*t^2)*x)/(2*t^3*sqrt(1-t^2))・・・・・A

をグラフで見較べてみると面白いですね。

 パラメータcを大きくしていく変化とtを小さくしていく変化が平行していて、x^3での係数に相
当する部分の数値が大きくなると2つのグラフはとても良く似たものになるが、それが小さく
なっていくと全く別のものに分かれてしまう。

 これが勘違いを引き起こした原因ですね。


 DD++さんからのコメントです。(令和3年3月10日付け)

 2 つの接点を

  (cos(π/2+θ/2), sin(π/2+θ/2)) と (cos(3π/2+θ/2), sin(3π/2+θ/2))

とおくと、残り 2 つの交点が

 (cos(π/2-θ), sin(π/2-θ)) と (cos(3π/2-θ), sin(3π/2-θ))

になるという驚きの性質。
(ただし、0<θ<2π/3。また θ=2π/3 の場合は三重解になりますが、それも含めちゃって
もいいかもしれません)

 私はこちらで計算していたのですが、本体の三次関数が

 y = 2(1+cosθ)/(sinθ)^3*x^3-(2+cosθ)/sinθ*x

 切り取られる部分の長さが、

L(θ) = 2* ∫[0->sinθ] √{1+(6(1+cosθ)/(sinθ)^3*x^2-(2+cosθ)/sinθ)^2} dx

となり、x = t*sinθ と置換すると、

 L(θ) = 2* ∫[0->1] √{(sinθ)^2+(6(1+cosθ)*t^2-(2+cosθ))^2} dt

という積分範囲に θ を含まない形になりました。これを θ で微分して、

∂L(θ)/∂θ

=  -4sinθ* ∫[0->1] (3t^2-1)(6t^2*(cosθ+1)-1)/√{(sinθ)^2+(6(1+cosθ)*t^2-(2+cosθ))^2} dt

となるので、あとはこれが 0 になるような θ の値を出せれば最大値問題解決!

と思ったのですが、残念ながら私の腕力ではこのへんで限界でした。一応、らすかるさんの
計算を信じると、θ=0.00171001 付近で ∂L(θ)/∂θ=0 となりそうですが、お手上げ。

 θ≒0 で近似しようと思ったときに t=1/2 付近で怪しげな挙動をするのがすごく嫌だ……。

 あと、らすかるさんが刺激を受けたという y=(1521√3/108)*x^3-(37√3/12)*x ですが、
最初の項を 9 で約分できることに気づいていなかった。


 らすかるさんからのコメントです。(令和3年3月10日付け)

 Pari/GPで上記の積分をf(x)=intnum(t=0,1,(θをxに置き換えた式),11)と定義して

 solve(x=0.00171,0.00172,f(x))

を実行すると、 0.001710011873168334861336404844 という結果が得られますので、確か
にこの付近で0になるようです。

 実際、f(0.001710011873168334861336404844)≒-1.769×10^(-29)となります。

 WolframAlphaで解析的な積分を試みましたが、やはり無理そうでした。

 また、上の結果から、私が

 t=0.00085500583241で長さの最大値が6.00000024367898164275703611

と書いた最大値をとるtのより精密な値が、t=0.000855005832410938827595944648… で
あったことがわかりました。


 りらひいさんからのコメントです。(令和3年3月10日付け)

 原点対称で「2点で交差、2点で接する三次関数」を求めたところまでしか私は行けていま
せん。

 c^2 > 3 として、 y = (2/27)*{c*(c^2+9)±(c^2-3)√(c^2-3)}*x^3 - c*x

複号+は[交点、接点、原点、接点、交点]の順番
複号−は[接点、交点、原点、交点、接点]の順番

 接点のx座標を計算しているところでしたが、お二方の式を見て私のセンスのなさを実感
しました。まあ、このままいっても長さの積分ができなくて行き詰りますが。


 GAIさんからのコメントです。(令和3年3月11日付け)

 DD++さんの、思ってもいない三角関数を用いる手法を、らすかるさんが作業されているの
を参考に追試してみました。

 intnumのflagをもっと精度が上がると思って12にして実行すると、

t=sin(0.0017100118731683348613354252316106960073/2)
=0.000855005832410938827595 45484233154020332

に辿り着きました。

 残り 2 つの交点が (cos(π/2-θ), sin(π/2-θ)) と (cos(3π/2-θ), sin(3π/2-θ)) になる
という驚きの性質、これが起こるなんて本当に驚きです。

 これを、らすかるさんのコメント

 (接点ではない)交点のx座標は±2t√(1-t^2)となりますので

から思い付けたのでしょうか?いずれにしろ、お二人とも頼りになります。


 DD++さんからのコメントです。(令和3年3月11日付け)

 いえ、それより前から思いついていました。三次関数が単位円に内接するというのを処理
する方法はいろいろありますが、試しに極座標を使ったときに発見しました。

 y=a*x^3-c*x は、極座標では a*r^2=(1+(tanθ)^2)*(c+tanθ) になります。

 r の極大値が 1 ということは、右辺の極大値を a とすればよく、円から外部に出るときの
角は、右辺=a の重解でない解を求めればよいことになります。

 この方程式を tanθ の三次方程式と考えた場合、一次の係数には a も c も含まれず、た
だ単に 1 になっています。それを利用して、解と係数の関係の式を作ると、そこに見事に倍
角の公式が出現します。


 りらひいさんからのコメントです。(令和3年3月13日付け)

 ということは、y=a*x^3-c*x が単位円と6点

(cos(π/2-α), sin(π/2-α)) 、(cos(π/2-β), sin(π/2-β)) 、(cos(π/2-γ), sin(π/2-γ))

(cos(3π/2-α), sin(3π/2-α)) 、(cos(3π/2-β), sin(3π/2-β)) 、(cos(3π/2-γ), sin(3π/2-γ))

で交わるときは、 α+β+γ=nπ (n∈N) になるということですかね?


 GAIさんからのコメントです。(令和3年3月13日付け)

 数値実験すると、

(a,c)=(4,3)->n=-3/4 (a/cに相当)
    =(3,3)->n=-1  (同上)
     =(2,21/10)->n=-1
     =(2,2)->n=-1 (ただし、(-1,0)、(1,0)と交わり、他の2点では円と接する。)

 その他(a,c)ではnは分数型にもならないようです。

(a,c)=(5,4)->n=-0.77037090468364278249797523357904501207
     =(8,5)->n=-0.63497327191869205739310971614742855349

など。


 DD++さんからのコメントです。(令和3年3月13日付け)

 りらひいさん、言われてみればそうですね。

 cot の加法定理の形になるので、cotγ=-cot(α+β) すなわち γ=-(α+β)+nπ になりま
すね。

……なるはずなんですが、GAI さんの数値計算はそれ本当です?


 GAIさんからのコメントです。(令和3年3月13日付け)

 (a,c)=(8,5)の場合:単位円x^2+y^2=1 と3次関数y=8*x^3-5*xの交点のx座標は、次のコマ
ンドで計算してくれる。

gp > Q=polroots(x^2+(8*x^3-5*x)^2-1);
gp > for(n=1,6,print(n";"Q[n]))

1;-0.84007077909130598673303287578796665756 + 0.E-38*I
2;-0.70710678118654752440084436210484903928 + 0.E-38*I
3;-0.21043071571642333837537840192713907569 + 0.E-38*I
4;0.21043071571642333837537840192713907569 + 0.E-38*I
5;0.70710678118654752440084436210484903928 + 0.E-38*I
6;0.84007077909130598673303287578796665756 + 0.E-38*I

の6点がとれる。

 交わる6点が、

(cos(π/2-α), sin(π/2-α))=(sinα,cosα) 、(cos(π/2-β), sin(π/2-β))=(sinβ,cosβ)
(cos(π/2-γ), sin(π/2-γ))=(sinγ,cosγ) 、(cos(3π/2-α), sin(3π/2-α))=(-sinα,-cosα)
(cos(3π/2-β), sin(3π/2-β))=(-sinβ,-cosβ) 、(cos(3π/2-γ), sin(3π/2-γ))=(-sinγ,-cosγ)

と仮定されているので、

sinα=-0.8400707790913059867330328757879666575
sinβ=-0.70710678118654752440084436210484903928
sinγ=-0.21043071571642333837537840192713907569

を対応させてみる。これから、

α=asin(-0.84007077909130598673303287578796665756)
%19 = -0.99741368314281856162889693056948024106

β=asin(-0.70710678118654752440084436210484903928)
%20 = -0.78539816339744830961566084581987572104

γ=asin(-0.21043071571642333837537840192713907569)
%21 = -0.21201551974537025201323608474960452002

よって、α+β+γ=%19+%20+%21= -1.9948273662856371232577938611389604821

従って、 (α+β+γ)/π=-0.63497327191869205739310971614742855349 として計算して
いました。

 自分の認識は、 (tanθ)^3+c*(tanθ)^2+tanθ+c-a=0 が重根と一つの実数根をもつとき
は、tanθ0,tanθ0,tanθ1 が上記の解なら、解と係数の関係から、

 tanθ0*tanθ0+2*tanθ0*tanθ1=1

で、これから tanθ1=(1-(tanθ0)^2)/(2*tanθ0)=1/tan(2*θ0) での関係式が成立するも
のと思っていました。

 従って、単位円と3次関数y=a*x^3-c*x(a>0) が異なる6点で交わるなら、その6点の座標
を、

(cosα,sinα)、(cosβ,sinβ)、(cosγ,sinγ)、(-cosα,-sinα)、(-cosβ-,sinβ)、(-cosγ,-sinγ)

と仮定しておけば、(*)は異なる3実根 tanα、tanβ、tanγを持ち、

 tanα+tanβ+tanγ=-c
 tanα*tanβ+tanβ*tanγ+tanγ*tanα=1
 tanα*tanβ*tanγ=a-c

ここに加法定理から、

tan(α+β+γ)
=(tanα+tanβ+tanγ-tanα*tanβ*tanγ)/(1-(tanα*tanβ+tanβ*tanγ+tanγ*tanα))
=-c-(a-c)/(1-1)=-a/0->±∞

従って、 α+β+γ=π/2+n*π  <=> α+β+γ=(1/2+n)*π (n∈Z) は成立する。

になりませんかね?

 上記の y=8*x^3-5*x では、

cosα=0.84007077909130598673303287578796665756から
α= acos(0.84007077909130598673303287578796665756)
%34 = 0.57338264365207805760242476107027120104

cosβ=-0.21043071571642333837537840192713907569
β= acos(-0.21043071571642333837537840192713907569)
%35 = 1.7828118465402668712445577763893559621

cosγ=-0.70710678118654752440084436210484903928
γ=acos(-0.70710678118654752440084436210484903928)
%36 = 2.3561944901923449288469825374596271631

で対応すると。

gp > %34+%35+%36
%37 = 4.7123889803846898576939650749192543263
gp > %37/Pi
%38 = 1.5000000000000000000000000000000000000

(追伸) グラフを参考にα、β、γをとる位置を下記で指定すれば、

gp >α=asin(0.21043071571642333837537840192713907569)
%44 = 0.21201551974537025201323608474960452002
gp >β=asin(-0.70710678118654752440084436210484903928)
%45 = -0.78539816339744830961566084581987572104
gp >γ=asin(-0.84007077909130598673303287578796665756)
%46 = -0.99741368314281856162889693056948024106
gp > %44+%45+%46
%47 = -1.5707963267948966192313216916397514421
gp > %/Pi
%48 = -0.49999999999999999999999999999999999999

になりました。


 りらひいさんからのコメントです。(令和3年3月13日付け)

 単位円 x^2+y^2=1 と3次関数 y=8*x^3-5*x のグラフを描いてみれば、明らかに
-π<α<-π/2 なので、

α=asin(-0.84007077909130598673303287578796665756)
%19 = -0.99741368314281856162889693056948024106


ではなくて、

α=-π-asin(-0.84007077909130598673303287578796665756)≒-2.14417897 です。

β、γは、-π/2と0の間にあるのでそのままで大丈夫です。すると、

 α+β+γ≒-3.14159265≒-π

となります。

「もしくは」

 asin関数が -π/2 〜 π/2 の値を返すことを見込んで、y軸正の向きから±π/2の範囲
にある解、すなわち第一象限または第二象限の3解を最初から選んでおくことです。

 GAIさんの投稿をコピペして少し書き換えると、

sinα=+0.8400707790913059867330328757879666575
sinβ=-0.70710678118654752440084436210484903928
sinγ=-0.21043071571642333837537840192713907569

を対応させてみる。これから

α=asin(+0.84007077909130598673303287578796665756)
%19 = +0.99741368314281856162889693056948024106
β=asin(-0.70710678118654752440084436210484903928)
%20 = -0.78539816339744830961566084581987572104
γ=asin(-0.21043071571642333837537840192713907569)
%21 = -0.21201551974537025201323608474960452002

よって、 α+β+γ=%19+%20+%21= 0 従って、(α+β+γ)/π=0 みたいな感じになるかと
思います。


 従って、単位円と3次関数y=a*x^3-c*x(a>0) が異なる6点で交わるなら、その6点の座標
を、

(cosα,sinα)、(cosβ,sinβ)、(cosγ,sinγ)、(-cosα,-sinα)、(-cosβ-,sinβ)、(-cosγ,-sinγ)

と仮定しておけば、


α+β+γ=π/2+n*π  <=> α+β+γ=(1/2+n)*π (n∈Z) は成立する。

になりませんかね?


 なりそうですね。わたしが示した式の文字には「'」をつけて、

 α=π/2-α' 、β=π/2-β' 、γ=π/2-γ'

とすれば、 α+β+γ=(1/2+n)*π (n∈Z) と α'+β'+γ'=n'*π (n'∈Z) は等価です。
(n'=1-n、n=1-n')


 ところで、y軸対称な二次関数が単位円の内側で切り取られる長さの最大って、もうどこか
に載っていますか?長さは多分求まったけれど、最大値がわからないです。

 y=k*x^2-1が単位円で切り取られる長さをL(k)とすると、

 k>1/2 のとき、L(k)={√(8*k-3)*√(8*k-4)+log(√(8*k-3)+√(8*k-4))}/(2*k)

となり、 dL(k)/dk={4*√(8*k-3)/√(8*k-4)-log(√(8*k-3)+√(8*k-4))}/(2*k^2)

となると思うのですが、どうでしょうか。

 dL(k)/dk=0 は k=94.091 付近に解がありそうですが、数値計算するしかないんですかね?


 GAIさんからのコメントです。(令和3年3月14日付け)

 面白い。これも弧長が4を超えるんですね。( 4.0026702976799552884212294780585000792・・・)

直感ではkが大きければ大きいほど弧長は長くなるように思えて、決して4を超えることは、あ
り得ないと思ってしまう。


 DD++さんからのコメントです。(令和3年3月13日付け)

 高校数学でもよくハマることなのですが、0≦θ≦π をとりうる θ の値を求めるとき、sinθ
を出すと鋭角か鈍角かを別に考えないといけません。cosθ を出すと 0≦θ≦π 範囲では
値の重複がないので、ミスが起こりにくいです。

 x 座標(sin の値)から y 座標(cos の値)を出し、そこから arccos で角度を出してみてもら
えませんか?


 GAIさんからのコメントです。(令和3年3月14日付け)

 なるほど、cos をsin に変更した時何処をα、β、γに選ぶかを象限を気にしながら選ば
ないといけなかったわけですね。高校数学がこんな時役に立ってくるのか!


 らすかるさんからのコメントです。(令和3年3月14日付け)

 dL(k)/dk=0 は k=94.091 付近に解がありそうですが、数値計算するしかないんですかね?

 式をこねくりまわして何とかランベルトのW関数を使って解を書き表せないかと試行錯誤し
てみたのですが、うまくいきませんでした。

 数値計算するにしても、置き換えて式を単純化した方が楽かと思います。

4√(8k-3)/√(8k-4)-log(√(8k-3)+√(8k-4))=0 で、8√(8k-3)/√(8k-4)=t とおくと、

k=(t^2-48)/(2t^2-128)

また、 √{(t+8)/(t-8)}=√(8k-3)+√(8k-4) なので、

 4√(8k-3)/√(8k-4)-log(√(8k-3)+√(8k-4))=0

に代入して整理すると、 t-log((t+8)/(t-8))=0

 ここで、f(t)=t-log((t+8)/(t-8)) とおくと、f'(t)=(t^2-48)/(t^2-64) なので、tの初期値を8.005

として、 t←t-{t-log((t+8)/(t-8))}(t^2-64)/(t^2-48) を繰り返せば、

 t=8.005340595359910576842458956117…

が得られ、k=(t^2-48)/(2t^2-128)に代入して、

 k=94.091281195985373635077639355665…

を得ます。

# 元の式が正しいかどうかは確認していません。



              投稿一覧に戻る