https://www.codexa.net/how-to-use-google-colaboratory/
テキストセルを作ってください。 - テキストセルに何か文章を書いてみてください。文章は「あ」だけでも構いません。
- TeX 形式で次のような式を打ってみてください。「このセル」をダブルクリックで開くとどうすれば式が打てるかわかるので、そのコピペで構いません。他にも資料を漁ってどんな風に書くとどう表示されるか眺めてみるといいでしょう。
$$\int_0^1 f(x) \, dx$$
- コードセルを作ってください。
01-basic_01_fundamental.ipynb
を参考に print("Hello, World!")
を実行してみてください。「実行結果出力欄」に「Hello, World!」と出れば成功です。
- もう 1 つコードセルを作ってください。
01-basic_03_matplotlib.ipynb
を参考に、グラフを 1 つ書いてみてください。コピペでグラフが出てくることを確認するだけで十分です。 - お好みでの追加タスク:いろいろ推測しながらプログラムを少しいじってみて、直線以外のグラフを描いたり、グラフを描く範囲を変えてみてください。
プログラムを勉強するときの注意
- プログラミング「言語」と言われるように、いわゆる語学を勉強するときのコツがある程度流用できます。
- 「英作文は英借文」というように、既に動いている(通じる)「例文」をコピペしてみましょう。そこからパーツを少し変えてみてどうなるか試します。
- プログラミング言語は機械が意味を判定するので、文法に厳格に沿っていないと「きちんと文法通りに話せ」と怒られます。
- ある程度まで来たらこの文法もきちんと勉強する必要があります。
- よほどの趣味を持っていない限り、文法の勉強は初学の段階であまり面白いものでもないので、まずは
01-basic_01_fundamental.ipynb
に書いてあることを雑に眺めて気分を掴んでください。 - 公式のチュートリアルも参考になります。
- Web 上の資源の問題として、リンクがたくさん張られている関係でいろいろな所に飛ばされる(飛びたくなる)ことがあります。本だと自分でページを飛ばさない限り一直線の道を歩むしかないので、Web 上の資源で勉強すると気が散るなら本を買ってざっと眺めるのも一手です。
- 一般の語学でも実際に読み書きしないと身につかないように、プログラムも実際に読み書きしないと身につきません。Jupyter notebook 配布のいいところはすぐにコード実行できるところにあります。パチパチ実行してみてください。
解答例
参考:TeX
$f(x)$
のように 1 つのドルマークで囲むと地の文に普通に埋め込まれる式として $\int f(x) dx$ が書けます。 $$\int f(x) dx, \left{a\in A \mid a>0, b>0 \text{かつ} c>0\right}$$
と 2 つのドルマークで囲むと別行立ての式 $$\int f(x) dx$$ が書けます。 \begin{align} \int f(x) dx \end{align}
などと書くと、数式環境下での式が書けます。 \begin{align} \int f(x) dx \end{align} - 複数行ある複雑な式を書くときは数式環境下で式を書きます:参考リンク。
- 数式環境と
$$\int f(x)dx$$
型との違い・使い分けについては次のように考えましょう. $$\int f(x) dx$$
はあくまで地の文に埋め込みたいが縦・横に長い式なので別行立ての方が見やすい場合に使う \begin{align} \int f(x) dx \end{align}
は複数行にわたるハードな式展開・計算を書くときに使う.
$\epsilon$ $\varepsilon$
$$A = (a_{ij}) = \begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1n} \ a_{21} & a_{22} & \cdots & a_{2n} \ \vdots & \vdots & \ddots & \vdots \ a_{m1} & a_{m2} & \cdots & a_{mn} \end{pmatrix}.$$
参考:Markdown
- テキストセルは TeX の他, markdown という形式で書けます.
- 参考リンク
- 参考リンク
- 参考リンク
- 段落分けや文字の強調などはこの形式に沿っています.
- 主に技術系の文書を書くために使われる書式なので, 過度な装飾はできません (そもそもそういう機能がない).
コード例
- sympy のサンプルを紹介します。
- Google Colab 上ではオリジナルの Jupyter より面倒で、追加処理が必要です。
- オリジナルの Jupyter では動くのに Google Colab 上では動かない (らしい) プログラムもあります
- 例:4 次方程式の解の公式の表示.
- 実際に一通り眺めて sympy をできる限り Google Colab 上でも動くようにするのはこの勉強会の目的の 1 つです.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | !pip install --upgrade sympy
import sympy as sp
from sympy.plotting import plot
from IPython.display import display
def custom_latex_printer(expr, **options):
from IPython.display import Math, HTML
from google.colab.output._publish import javascript
url = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-AMS_CHTML"
javascript(content="""window.MathJax = {
tex2jax: {
inlineMath: [ ['$','$'] ],
processEscapes: true
}
};""")
javascript(url=url)
return sp.latex(expr, **options)
sp.init_printing(use_latex="mathjax", latex_printer=custom_latex_printer)
x = sp.Symbol('x')
expr = x**2-12*x+8
display(expr)
|
1
2
3
4
5
6
7
8
9
10
11
12
13 | Collecting sympy
[?25l Downloading https://files.pythonhosted.org/packages/ce/5b/acc12e3c0d0be685601fc2b2d20ed18dc0bf461380e763afc9d0a548deb0/sympy-1.5.1-py2.py3-none-any.whl (5.6MB)
[K |████████████████████████████████| 5.6MB 8.4MB/s
[?25hRequirement already satisfied, skipping upgrade: mpmath>=0.19 in /usr/local/lib/python3.6/dist-packages (from sympy) (1.1.0)
Installing collected packages: sympy
Found existing installation: sympy 1.1.1
Uninstalling sympy-1.1.1:
Successfully uninstalled sympy-1.1.1
Successfully installed sympy-1.5.1
<IPython.core.display.Javascript object>
|
$\displaystyle x^{2} - 12 x + 8$
| x = sp.Symbol('x')
y = sp.Symbol('y')
expr1 = 2*x + 3*y - 6
expr2 = 3*x + 2*y - 12
display(expr1)
display(expr2)
#display(sp.solve((expr1, expr2))) # Math Processing error になる
|
| <IPython.core.display.Javascript object>
|
$\displaystyle 2 x + 3 y - 6$
| <IPython.core.display.Javascript object>
|
$\displaystyle 3 x + 2 y - 12$
| display(sp.solve((expr1, expr2)))
|
| <IPython.core.display.Javascript object>
|
$\displaystyle \left{ x : \frac{24}{5}, \ y : - \frac{6}{5}\right}$
- 上の方程式は厳密解として $x=4.8,y=-1.2$ を持つ。
- これの近似解として例えば $x=4.78888888,y=-1.1999999$
| p = plot(-(2/3)*x - 2, - (3/2)*x - 6, legend=True, show=False)
p[0].line_color = 'b'
p[1].line_color = 'r'
p.show()
|
| /usr/local/lib/python3.6/dist-packages/sympy/plotting/plot.py:1065: MatplotlibDeprecationWarning:
The set_smart_bounds function was deprecated in Matplotlib 3.2 and will be removed two minor releases later.
self.ax[i].spines['left'].set_smart_bounds(True)
/usr/local/lib/python3.6/dist-packages/sympy/plotting/plot.py:1066: MatplotlibDeprecationWarning:
The set_smart_bounds function was deprecated in Matplotlib 3.2 and will be removed two minor releases later.
self.ax[i].spines['bottom'].set_smart_bounds(False)
|
| eq1 = x**2 + y**2 - 1
eq2 = x - y
plot1 = sp.plot_implicit(eq1, line_color="blue", show=False)
plot2 = sp.plot_implicit(eq2, line_color="green", show=False)
plot1.extend(plot2)
plot1.show()
|
1
2
3
4
5
6
7
8
9
10
11
12 | /usr/local/lib/python3.6/dist-packages/sympy/plotting/plot.py:1065: MatplotlibDeprecationWarning:
The set_smart_bounds function was deprecated in Matplotlib 3.2 and will be removed two minor releases later.
self.ax[i].spines['left'].set_smart_bounds(True)
/usr/local/lib/python3.6/dist-packages/sympy/plotting/plot.py:1066: MatplotlibDeprecationWarning:
The set_smart_bounds function was deprecated in Matplotlib 3.2 and will be removed two minor releases later.
self.ax[i].spines['bottom'].set_smart_bounds(False)
/usr/local/lib/python3.6/dist-packages/sympy/plotting/plot.py:1096: MatplotlibDeprecationWarning:
The set_smart_bounds function was deprecated in Matplotlib 3.2 and will be removed two minor releases later.
ax.spines['left'].set_smart_bounds(False)
/usr/local/lib/python3.6/dist-packages/sympy/plotting/plot.py:1097: MatplotlibDeprecationWarning:
The set_smart_bounds function was deprecated in Matplotlib 3.2 and will be removed two minor releases later.
ax.spines['bottom'].set_smart_bounds(False)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 | import sympy as sp
from sympy.plotting import plot
from IPython.display import display
def custom_latex_printer(expr, **options):
from IPython.display import Math, HTML
from google.colab.output._publish import javascript
url = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-AMS_CHTML"
javascript(content="""window.MathJax = {
tex2jax: {
inlineMath: [ ['$','$'] ],
processEscapes: true
}
};""")
javascript(url=url)
return sp.latex(expr, **options)
a,b,c,d,x = sp.symbols('a,b,c,d,x')
expr = a*x**3 + b*x**2 + c*x + d
display(sp.solve(expr, x, dict=True))
|
$\displaystyle \left[ \left{ x : - \frac{- \frac{3 c}{a} + \frac{b^{2}}{a^{2}}}{3 \sqrt[3]{\frac{\sqrt{- 4 \left(- \frac{3 c}{a} + \frac{b^{2}}{a^{2}}\right)^{3} + \left(\frac{27 d}{a} - \frac{9 b c}{a^{2}} + \frac{2 b^{3}}{a^{3}}\right)^{2}}}{2} + \frac{27 d}{2 a} - \frac{9 b c}{2 a^{2}} + \frac{b^{3}}{a^{3}}}} - \frac{\sqrt[3]{\frac{\sqrt{- 4 \left(- \frac{3 c}{a} + \frac{b^{2}}{a^{2}}\right)^{3} + \left(\frac{27 d}{a} - \frac{9 b c}{a^{2}} + \frac{2 b^{3}}{a^{3}}\right)^{2}}}{2} + \frac{27 d}{2 a} - \frac{9 b c}{2 a^{2}} + \frac{b^{3}}{a^{3}}}}{3} - \frac{b}{3 a}\right}, \ \left{ x : - \frac{- \frac{3 c}{a} + \frac{b^{2}}{a^{2}}}{3 \left(- \frac{1}{2} - \frac{\sqrt{3} i}{2}\right) \sqrt[3]{\frac{\sqrt{- 4 \left(- \frac{3 c}{a} + \frac{b^{2}}{a^{2}}\right)^{3} + \left(\frac{27 d}{a} - \frac{9 b c}{a^{2}} + \frac{2 b^{3}}{a^{3}}\right)^{2}}}{2} + \frac{27 d}{2 a} - \frac{9 b c}{2 a^{2}} + \frac{b^{3}}{a^{3}}}} - \frac{\left(- \frac{1}{2} - \frac{\sqrt{3} i}{2}\right) \sqrt[3]{\frac{\sqrt{- 4 \left(- \frac{3 c}{a} + \frac{b^{2}}{a^{2}}\right)^{3} + \left(\frac{27 d}{a} - \frac{9 b c}{a^{2}} + \frac{2 b^{3}}{a^{3}}\right)^{2}}}{2} + \frac{27 d}{2 a} - \frac{9 b c}{2 a^{2}} + \frac{b^{3}}{a^{3}}}}{3} - \frac{b}{3 a}\right}, \ \left{ x : - \frac{- \frac{3 c}{a} + \frac{b^{2}}{a^{2}}}{3 \left(- \frac{1}{2} + \frac{\sqrt{3} i}{2}\right) \sqrt[3]{\frac{\sqrt{- 4 \left(- \frac{3 c}{a} + \frac{b^{2}}{a^{2}}\right)^{3} + \left(\frac{27 d}{a} - \frac{9 b c}{a^{2}} + \frac{2 b^{3}}{a^{3}}\right)^{2}}}{2} + \frac{27 d}{2 a} - \frac{9 b c}{2 a^{2}} + \frac{b^{3}}{a^{3}}}} - \frac{\left(- \frac{1}{2} + \frac{\sqrt{3} i}{2}\right) \sqrt[3]{\frac{\sqrt{- 4 \left(- \frac{3 c}{a} + \frac{b^{2}}{a^{2}}\right)^{3} + \left(\frac{27 d}{a} - \frac{9 b c}{a^{2}} + \frac{2 b^{3}}{a^{3}}\right)^{2}}}{2} + \frac{27 d}{2 a} - \frac{9 b c}{2 a^{2}} + \frac{b^{3}}{a^{3}}}}{3} - \frac{b}{3 a}\right}\right]$
Previous: 中高数学+物理+プログラミングのオンライン勉強会 Next: オンライン数学勉強会用イントロ back to top