x2+xy+y2=3のときx+yの最大値「逆像法とは?」をMathematicaとWolframAlphaとsympyでやってみたい。

**最近,WolframAlphaで,rangeとrestricted(定義域と値域)を見つけました。**
**以下のページの、右上の切り替えです。「日本語とEnglish」**
独立変数の制約条件を指定する：...
https://ja.wolframalpha.com/examples/mathematics/mathematical-functions/domain-and-range

https://qiita.com/mrrclb48z/items/81dff5dd785d018ed110#wolframalpha%E3%81%A7

# オリジナル
【感動解法だが減点注意！】整数問題の超良問に挑戦

https://youtu.be/AqLPzbnfkpo

# Mathematicaで
```
Minimize[ {x + y, x^2 + x*y + y^2 == 3}, {x, y} ]
Maximize[ {x + y, x^2 + x*y + y^2 == 3}, {x, y} ]
{-2, {x -> -1, y -> -1}}
{2, {x -> 1, y -> 1}}
```

作図を勉強中

# WolframAlphaで
#### (英語版)
```
https://ja.wolframalpha.com/input?i=range+of+2x-3+restricted+to+-1%3C%3Dx%3C%3D2&lang=en

Result:
{y element R : -5<=y<=1}(assuming a function from reals to reals)

https://ja.wolframalpha.com/input?i=range+of+x2%2B2x%2B3&lang=en

https://ja.wolframalpha.com/input?i=range+of+%28x2%2B1%29%2Fx+&lang=en

https://ja.wolframalpha.com/input?i=range+of+x-y+restricted+to+x2%2By2%3D1&lang=en

```

https://ja.wolframalpha.com/input?i=range+of+x%2By++restricted+to+x2%2Bxy%2By2%3D3&lang=en

result
{z element R : -2<=z<=2}
(assuming a real-valued function)

#### (日本語版)

https://ja.wolframalpha.com/input?i=x2%2Bxy%2By2%3D3+%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8Bx%2By%E3%81%AE%E5%80%A4%E5%9F%9F

結果
{z element R : -2<=z<=2}
(実数値の関数を仮定しています)

# sympyで
**傾いた楕円の勉強中。未。**

今までだと、maximum関数とminimum関数でした。
以下、何をやっているか、わからなくなっています。

```python
from sympy import *
x  =symbols('x'  ,Real=True)
h,k=symbols('h,k',Real=True)
yy =symbols('yy' ,Real=True)

# youtubeの時刻t=0------------------------------------------------------------
st,en=-1,2
y=2*x-3
print("#",y.subs({x: 2}))
print("#",y.subs({x: 1}))
print("#",y.subs({x:-1}))
print("#",solve(Eq(y,-1),x)[0] in Interval(st,en) )
print("#",solve(Eq(y, 3),x)[0] in Interval(st,en) )
print("#",minimum(y,x,Interval(st,en)),maximum(y,x,Interval(st,en)) )
plot(0,y,(x,st,en))
# 1
# -1
# -5
# True
# False
# -5 1

# youtubeの時刻t=5:00---------------------------------------------------------
y=x**2+2*x+3
print("# 順像法")
yhk=(x+h)**2+k
hk=solve(Eq(yhk,y),[h,k])
print("#",yhk.subs({h:hk[0][0],k:hk[0][1]}))
print("# 逆像法")
print("#",solveset(Eq(y,2)).args[0])
print("#",solveset(Eq(y,0)))
print("#",discriminant(x**2+2*x+3)/4)
print("# 値域")
print("#",minimum(y,x),maximum(y,x))
plot(y)
plot(0,y,(x,-5,5))
# 順像法
# (x + 1)**2 + 2
# 逆像法
# -1
# {-1 - sqrt(2)*I, -1 + sqrt(2)*I}
# -2
# 値域
# 2 oo

# youtubeの時刻t=8:05---------------------------------------------------------
st,en=-1,2
y =    -6*x**2+12*x+2
fx=yy-(-6*x**2+12*x+2)
print("# 逆像法")
gx=fx.coeff(x,2)*(x+h)**2+k-yy
hk=solve(Eq(fx,gx),[h,k])
gx=gx.subs({h:hk[0][0],k:hk[0][1]})
print("# Sandra_4869様より",gx)
print("#",solve(GreaterThan( discriminant(gx)/4,0)))
print("# 値域")
print("#",minimum(y,x,Interval(st,en)),maximum(y,x,Interval(st,en)) )
# 逆像法
# Sandra_4869様より yy + 6*(x - 1)**2 - 8
# (-oo < yy) & (yy <= 8)
# 値域
# -16 8

# youtubeの時刻t=10:53--------------------------------------------------------
st,en=-2,2
y=(x**2+1)/x
print("#",solveset(Eq(y,2)).args[0])
print("#",solveset(Eq(y,0)))
print("#",minimum(y,x,Interval(st,en)),maximum(y,x,Interval(st,en)) )
fx=x**2-yy*x+1
print("#",solve(GreaterThan( discriminant(fx),0)))
plot(0,y,(x,st,en))
# 1
# {-I, I}
# -oo oo
# ((2 <= yy) & (yy < oo)) | ((-oo < yy) & (yy <= -2))
```

#### sympyのplot moduleで作図結果
縦横比異なります。勉強中。

y=2*x-3
![f1-Figure_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/0ada8baf-2b41-c53e-55e8-602c0aee1f48.png)

y=x**2+2*x+3
![f2-Figure_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/70689453-822e-df48-dcac-063afbd2c2e2.png)

y=x**2+2*x+3
![f3-Figure_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/d5a5a005-476b-b5ae-024a-a2ee57f284bc.png)

y=(x**2+1)/x
![f4-Figure_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/529ea2e7-9776-f11b-991c-bd681dfb728f.png)


# 未整理

ContourPlot3Dは2個の引数で呼ばれました．4個の引数が想定されています．


＞Plot3D は Plot と違い，同時に 2 つ以上の図形を扱うことができないので，上下
に分けて描く方法は使えない．平面図形のときと同様に，陰関数表示でも描くことはできるが，また別のパッケージをロードしなければならない．
https://www.ma.noda.tus.ac.jp/u/tg/mathematica/math3.pdf

＞Solve::naqs: Csc[x]+Csc[3 x]==3&&0\[LessFullEqual]x&&x\[LessFullEqual](3 \[Pi])/4は等式と不等式の定量化された系ではありません．


＞楕円を Mathematica で描く

http://nalab.mind.meiji.ac.jp/~mk/zemi2013/mathematica1.pdf


# 参考
＞これをプロットする：

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

以下、おすすめです。rangeとrestrictedです。
＞(参考)Wolfram Alpha による数式処理マニュアル

https://qiita.com/mrrclb48z/items/75904cdc6e84ecef4d03#%E5%8F%82%E8%80%83wolfram-alpha-%E3%81%AB%E3%82%88%E3%82%8B%E6%95%B0%E5%BC%8F%E5%87%A6%E7%90%86%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB