レムニスケート(lemniscate)と2変数関数の最大「PASSLABO様の【面白い解法】実力模試」をMathematicaとWolframAlphaとsympyでやってみたい。

・sympyで、計算結果だけなら4行でできました。ページ後半です。
・WolframAlphaとsympyの平面グラフがでます。
・(未)空間における曲線はできていません。Mathematicaは、途中です。

# オリジナル(youtube)
【面白い解法】正答率0%！超進学校の実力模試が難問すぎたwww

https://youtu.be/LVLje1gu01w

【正答率0%なのに!?】面白い別解が届きました

https://youtu.be/3r6BxS1tueo

# 「単位」と「不等式」と「2変数関数の最大」の私の気付き3点です。

長文です。
(？？？[この行は、いつものゆうどうです。無視して下さい。今回,会話記録](https://qiita.com/mrrclb48z/items/8427945bae3314d558cb#%E4%BC%9A%E8%A9%B1%E8%A8%98%E9%8C%B22023%E5%B9%B45%E6%9C%88gw%E7%B7%A8)を作成できませんでした。？？？)

**「PASSLABO様の4つの条件(目的関数,制約条件?)」およびコメント欄より**
①x+yの最大値:目的関数
②実数x,y:制約条件
③x>0,y>0:制約条件
④(x^2 + y^2)^2 = x^2 - y^2:制約条件

**私の気付き(1)m?単位です。**　④より
(x^2 + y^2)^2 = x^2 - y^2
x,yの単位をmとすると,
左辺の単位は,m^4
右辺の単位は,m^2 
(x^2 + y^2)^2 = AB(x^2 - y^2)
この式には、AB=1？ a^2(m^2)? が、隠されている事です。
x+yの単位もm?でした。
???**他の過去問**で、この技？を使っている問題を、教えてもらうと幸いです。???　

**私の気付き(2)不等式に、等号がない。** ③より
x=0,y=0でも,レムニスケートが成り立つ。
x,yの定義域に等号がない。という事は、出題者の意図。
いつものあれで？**平面極座標**で解きなさい。一択、ヒントでしょうか?
???教えて下さい。0以上、つまり等号があったら都合が悪いのでしょうか???

**私の気付き(3)「2変数関数の最大とレムニスケート」を絡めた問題でした。** ④より
参考あり

# Mathematicaで
https://reference.wolfram.com/language/ref/Maximize.html.ja?source=footer

```python
In:
Maximize[{x + y, (x^2 + y^2)^2 == x^2 - y^2}, {x, y}]

Out:
{9/2 Root[-3 - 48 #^2 + 64 #^4& , 2, 0] - 
  4 Root[-3 - 48 #^2 + 64 #^4& , 2, 0]^3, {x -> 
   Root[-3 - 48 #^2 + 64 #^4& , 2, 0], 
  y -> 7/2 Root[-3 - 48 #^2 + 64 #^4& , 2, 0] - 
    4 Root[-3 - 48 #^2 + 64 #^4& , 2, 0]^3}}
```

??? x+yの値は、実数でした。???
```python
In:
x =        Cos[t]/(1 + Sin[t]^2);
y = Sin[t]*Cos[t]/(1 + Sin[t]^2);
Maximize[{x + y, x > 0, y > 0}, {t}]
N[Maximize[{x + y, x > 0, y > 0}, {t}]]

Out:
(Cos[2 ArcTan[
Root[1 - 8 # + 6 #^2 - 8 #^3 + #^4& , 1, 0]]] + Cos[2 ArcTan[
Root[1 - 8 # + 6 #^2 - 8 #^3 + #^4& , 1, 0]]] Sin[2 ArcTan[
Root[1 - 8 # + 6 #^2 - 8 #^3 + #^4& , 1, 0]]])/(1 + Sin[2 ArcTan[
Root[1 - 8 # + 6 #^2 - 8 #^3 + #^4& , 1, 0]]]^2), {t -> 2 ArcTan[
Root[1 - 8 # + 6 #^2 - 8 #^3 + #^4& , 1, 0]]}}

{1.13975, {t -> 0.271264}}
```
空間における曲線2本を表示しました。
xy平面上に1本と、空間上に1本z=x+yの表示です。
(作図表示省略。アップロードの方法がわからないので。)
```python
p1 = ParametricPlot3D[
   {Cos[t]/(1 + Sin[t]^2), 
    Sin[t]*Cos[t]/(1 + Sin[t]^2), 
    Cos[t]/(1 + Sin[t]^2) + Sin[t]*Cos[t]/(1 + Sin[t]^2)  },
   
   {t, 0, \[Pi]/2}];
p2 = ParametricPlot3D[
   {Cos[t]/(1 + Sin[t]^2), 
    Sin[t]*Cos[t]/(1 + Sin[t]^2), 
    0  },
   
   {t, 0, \[Pi]/2}];
Show[p1, p2]
```

# WolframAlphaで
~~平面上にレムニスケートの曲線1本の作図だけです。~~
~~https://www.wolframalpha.com/input?i=%28x**2%2By**2%29**2+%3D+%281*1%29*%28x**2-y**2%29&lang=ja~~

(2025-03-06 追加)

https://www.wolframalpha.com/input?i=x%3E0%2Cy%3E0%2C%28x2%2By2%29%5E2%3Dx2-y2%2Cx%2By%E3%81%AE%E6%9C%80%E5%A4%A7%E5%80%A4&lang=ja

https://www.wolframalpha.com/input?i=%28x2%2By2%29%5E2%3Dx2-y2%2Cx%2By%3D3%5E%283%2F4%29%2F2&lang=ja

# sympyで(PASSLABO様の【面白い解法】平面極座標の方法で)
１変数θに直す方法を勉強中です。
[積和の公式](https://qiita.com/mrrclb48z/items/5b1f1946f20ecbca3628)
特に今回さらにラッキーな事に、一項式?になるみたいです。
以下適当に、x+yの直線の傾き135°だから、
45°-30°= 15°
でもいいですか?

# sympyで計算結果だけ(条件式の展開？なら、4行でできました。)
数学の試行錯誤は味わえなくて、申し訳ありません。
```python
from sympy import *
x,y=symbols('x,y',real=True,positive=True)
print("# ",sqrtdenest(sqrtdenest( maximum( (x+solve(  Eq((x**2+y**2)**2,x**2-y**2)  ,y)[0]),x,Interval(0,pi/2) ) ) ) )
#  3**(3/4)/2
```
# sympyで計算だけ(ちょっとくわしく。)
```python
from sympy import *
x,y    =symbols('x,y',real=True,positive=True)
z      =symbols('z'  ,real=True,positive=True)
myCurve=Eq((x**2+y**2)**2,x**2-y**2)
z      =x+y
#
y_Curve=sqrtdenest(sqrtdenest( solve(myCurve,y)[0] ))
z_Curve=z.subs({y:y_Curve})
z_max  =sqrtdenest(sqrtdenest( maximum( z_Curve,x,Interval(0,pi/2) ) ) )
x_ans  =solveset  (Eq(z_Curve,z_max),x,Interval(0,1) ).args[0] 
y_ans  =sqrtdenest(sqrtdenest(y_Curve.subs({x:x_ans})))
t_ans  =Line(Point(0,0),Point(10,0)).angle_between(Line(Point(0,0),Point(x_ans,y_ans)) ).simplify()  
print("# ",z_max,' '*12,float(z_max) )
print("# ",x_ans       ,float(x_ans) )
print("#" ,y_ans       ,float(y_ans) )
print("#" ,t_ans,' '*18,float(t_ans*180/pi)) 
#  3**(3/4)/2              1.1397535284773888
#  3**(1/4)/4 + 3**(3/4)/4 0.8988952674768176
# -3**(1/4)/4 + 3**(3/4)/4 0.24085826100057128
# pi/12                    15.0
```

# sympyで計算だけ(レムニスケートとわかっていれば)
```python
from sympy import *
x,y=symbols('x,y',real=True,positive=True)
t  =symbols('t'  ,real=True,positive=True)
a  =symbols('a'  ,real=True,positive=True)
a=solve(Eq(2*a**2,1),a)[0]
x=2*a**2*(       cos(t))/(1+sin(t)**2)
y=2*a**2*(sin(t)*cos(t))/(1+sin(t)**2)
z=x+y
#
z_max=sqrtdenest(sqrtdenest( maximum( z,t,Interval(0,pi) ) ) ).simplify()
print("# ",z_max,float(z_max))
#  3**(3/4)/2 1.1397535284773888
```

①私の環境は,pycharmです。
②よく聞くのは、Jupyterです。
③web上で、上記のソースを「SymPy Live shell」に、コピー貼り付けでもできました。
黒背景の右上に、マウスを移動すると、コピーマークが発生します。
???　タブレット環境で、コピー貼り付けが実行できませんでした。???
計算時間は、1分以上かかると思います。

https://live.sympy.org/


# ??? sympyで作図
あっているように見えません。
教えて下さい。レムニスケートのカーテン？のイメージです。
~~plotコマンドは、縦横比？異なります。
implictplot勉強中です。~~

```python
from sympy import *
from sympy import symbols, cos, sin
from sympy.plotting import plot3d_parametric_line
x,y=symbols('x,y',real=True,positive=True)
t  =symbols('t'  ,real=True,positive=True)
a  =symbols('a'  ,real=True,positive=True)
a  =solve(Eq(2*a**2,1),a)[0]
x  =2*a**2*(       cos(t))/(1+sin(t)**2)
y  =2*a**2*(sin(t)*cos(t))/(1+sin(t)**2)
plot3d_parametric_line( (x,y,x+y, (t,0,pi/2)),
                        (x,y,0  , (t,0,pi/2))
                      )

```


![0png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/70d32e39-f8b6-9535-f9cb-ef8719bf64fc.png)


# いつもの? sympyの実行環境と 参考のおすすめです。
[(テンプレート)](https://qiita.com/mrrclb48z/items/00dd08b0317069be9342)

# いつもと違うおすすめです。
#### 参考

https://kamelink.com/exam/index.php?%BF%F4%B3%D8I%A1%A6A%A5%C1%A5%A7%A5%C3%A5%AF%A1%F5%A5%EA%A5%D4%A1%BC%A5%C8%A1%A1%C2%E82%BE%CF%A1%A1%A1%F82%BA%C7%C2%E7%A1%A6%BA%C7%BE%AE%A1%A14.2%CA%D1%BF%F4%B4%D8%BF%F4%A4%CE%BA%C7%C2%E7%A1%A6%BA%C7%BE%AE

https://qiita.com/mrrclb48z/items/a5a8b810ff7c9315d5a9

def sqrtdenest(expr, max_iter=3):

http://man.hubwiz.com/docset/SymPy.docset/Contents/Resources/Documents/_modules/sympy/simplify/sqrtdenest.html#:~:text=a1%0A%20%20%20%20return%20a-,%5Bdocs%5D,-def%20sqrtdenest(


https://qiita.com/WolfMoon/items/ad6b23cc72b5b340f27c