🦁

Github Copilot + VSCode + LaTeX

2023/04/29に公開

はじめに

最近,ChatGPTをはじめとしたサービスがとても注目されています。GuthubのCopilotを使って,何かLaTeXで使えないか考えてみました。

https://docs.github.com/ja/copilot/getting-started-with-github-copilot

GuthubのCopilotは私のライセンスだと,60日間は無償です。教育機関だと無償で利用できるので申請してみようかな。

ちょっと使ってみたところ,計算をしながら提案してもらえるようなので,実験してみることにしました。

計算例

次の定積分の計算をすることにしました。

\int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{dx}{\sin x}

VSCodeとGuthub Copilot

VSCodeでGuthub Copilotを利用する時に機能拡張を入れておきます。

https://marketplace.visualstudio.com/items?itemName=GitHub.copilot

Guthub CopilotからのLaTeXのコードの提案(1)

まずは,提案されるままに書いてみました。

ここからスタート

\begin{align}
    \int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{dx}{\sin x}
\end{align}

最初のCopilotの提案

\begin{align}
    \int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{dx}{\sin x}
    &=\int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{\sin x}{\sin^2 x}dx\\
    &=\int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{\sin x}{1-\cos^2 x}dx\\
    &=\int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{\sin x}{(1-\cos x)(1+\cos x)}dx\\
    &=\int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{\sin x}{2\sin^2 \frac{x}2\cos^2 \frac{x}2}dx\\
    &=\int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{\sin x}{2\sin^2 \frac{x}2(1-\sin^2 \frac{x}2)}dx\\
    &=\int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{\sin x}{2\sin^2 \frac{x}2(1-\sin \frac{x}2)(1+\sin \frac{x}2)}dx\\
    &=\int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{\sin x}{2\sin^2 \frac{x}2(1-\sin \frac{x}2)(1+\sin \frac{x}2)}dx\\
    &=\int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{\sin x}{2\sin^2 \frac{x}2(1-\sin \frac{x}2)(1+\sin \frac{x}2)}dx\\
    &=\int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{\sin x}{2\sin^2 \frac{x}2(1-\sin \frac{x}2)(1+\sin \frac{x}2)}dx\\
    &=\int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{\sin x}{2\sin^2 \frac{x}2(1-\sin \frac{x}2)(1+\sin \frac{x}2)}dx\\
    &=\int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{\sin x}{2\sin^2 \frac{x}2(1-\sin \frac{x}2)(1+\sin \frac{x}2)}dx\\
\end{align}

⑥から同じ結果を繰り返してしまい,copilotも諦めたのか⑫のところで打ち切られました。

③のあとはt=\cos xとおいて置換積分すると良さそうなので,その誘導をしてみます。

Cοpilotの提案の修正

t=\cos xとおいて,続きを作ってみました。

\begin{align}
    &t=\cos x %ここからスタート
\begin{align}
    &t=\cos x\quad\text{とおくと}\\
    &\begin{cases}
        x=\frac{\pi}4\Rightarrow t=\frac{\sqrt{2}}2\\
        x=\frac{\pi}2\Rightarrow t=0
    \end{cases}\\
    &\therefore\int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{\sin x}{(1-\cos x)(1+\cos x)}dx
    =\int_{\frac{\sqrt{2}}2}^0\dfrac{dt}{(1-t)(1+t)}\\
    &=\int_{\frac{\sqrt{2}}2}^0\left(\dfrac{A}{1-t}+\dfrac{B}{1+t}\right)dt\\
    &=\int_{\frac{\sqrt{2}}2}^0\left(\dfrac{A(1+t)+B(1-t)}{(1-t)(1+t)}\right)dt\\
    &=\int_{\frac{\sqrt{2}}2}^0\left(\dfrac{(A+B)+(A-B)t}{1-t^2}\right)dt\\
    &=\int_{\frac{\sqrt{2}}2}^0\left(\dfrac{(A+B)+(A-B)t}{(1-t)(1+t)}\right)dt\\
    &=\int_{\frac{\sqrt{2}}2}^0\left(\dfrac{(A+B)+(A-B)t}{(1-t)(1+t)}\right)dt\\
    &=\int_{\frac{\sqrt{2}}2}^0\left(\dfrac{(A+B)+(A-B)t}{(1-t)(1+t)}\right)dt\\
    &=\int_{\frac{\sqrt{2}}2}^0\left(\dfrac{(A+B)+(A-B)t}{(1-t)(1+t)}\right)dt\\
    &=\int_{\frac{\sqrt{2}}2}^0\left(\dfrac{(A+B)+(A-B)t}{(1-t)(1+t)}\right)dt\\
    &=\int_{\frac{\sqrt{2}}2}^0\left(\dfrac{(A+B)+(A-B)t}{(1-t)(1+t)}\right)dt\\
    &=\int_{\frac{\sqrt{2}}2}^0\left(\dfrac{(A+B)+(A-B)t}{(1-t)(1+t)}\right)dt\\
    &=\int_{\frac{\sqrt{2}}2}^0\left(\dfrac{(A+B)+(A-B)t}{(1-t)(1+t)}\right)dt
\end{align}

⑤積分区間の置き換えはバッチリです!
⑥部分分数分解の積分で止まってますね。
⑤の後に微分の結果も入れたいので,ちょっと修正します。

Cοpilotの提案の修正(2)

t=\cos xとおいて,続きを作ってみました。

\begin{align}
    &t=\cos x \quad\text{とおくと}\\
    &\begin{cases}
        x=\frac{\pi}4\Rightarrow t=\frac{\sqrt{2}}2\\
        x=\frac{\pi}2\Rightarrow t=0
    \end{cases}\\
    &dt= %ここからスタート

\begin{align}
    &t=\cos x\quad\text{とおくと}\\
    &\begin{cases}
        x=\frac{\pi}4\Rightarrow t=\frac{\sqrt{2}}2\\
        x=\frac{\pi}2\Rightarrow t=0
    \end{cases}\\
    &dt=-\sin xdx\\
    &\therefore\int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{\sin x}{(1-\cos x)(1+\cos x)}dx\\
    &=\int_{\frac{\sqrt{2}}2}^0\dfrac{-dt}{(1-t)(1+t)}\\
    &=\int_0^{\frac{\sqrt{2}}2}\dfrac{dt}{(1-t)(1+t)}\\
    &=\int_0^{\frac{\sqrt{2}}2}\dfrac{dt}{1-t^2}\\
    &=\left[\dfrac12\log\left|\dfrac{1+t}{1-t}\right|\right]_0^{\frac{\sqrt{2}}2}\\
    &=\dfrac12\log\left|\dfrac{1+\frac{\sqrt{2}}2}{1-\frac{\sqrt{2}}2}\right|\\
    &=\dfrac12\log\left|\dfrac{1+\sqrt{2}}{1-\sqrt{2}}\right|\\
    &=\dfrac12\log\left|\dfrac{(1+\sqrt{2})^2}{1-2}\right|\\
    &=\dfrac12\log\left|\dfrac{3+2\sqrt{2}}{-1}\right|\\
    &=\dfrac12\log\left|-(3+2\sqrt{2})\right|\\
    &=\dfrac12\log\left|3+2\sqrt{2}\right|\\
    &=\dfrac12\log\left|3+2\sqrt{2}\right|\\
    &=\dfrac12\log\left|3+2\sqrt{2}\right|\\
    &=\dfrac12\log\left|3+2\sqrt{2}\right|\\
    &=\dfrac12\log\left|3+2\sqrt{2}\right|\\
    &=\dfrac12\log\left|3+2\sqrt{2}\right|\\
    &=\dfrac12\log\left|3+2\sqrt{2}\right|\\
    &=\dfrac12\log\left|3+2\sqrt{2}\right|\\
    &=\dfrac12\log\left|3+2\sqrt{2}\right|\\
\end{align}

今度はちゃんと計算していますね。

⑰からは同じ結果ですが,この⑰を答えとしてもいいですね。
⑭をみると,\logの中の2乗を外に出せることがわかるので,ここで修正して答えとしてみます。

\begin{align}
    &t=\cos x\quad\text{とおくと}\\
    &\begin{cases}
        x=\frac{\pi}4\Rightarrow t=\frac{\sqrt{2}}2\\
        x=\frac{\pi}2\Rightarrow t=0
    \end{cases}\\
    &dt=-\sin xdx\\
    &\therefore\int_{\frac{\pi}4}^{\frac{\pi}2}\dfrac{\sin x}{(1-\cos x)(1+\cos x)}dx\\
    &=\int_{\frac{\sqrt{2}}2}^0\dfrac{-dt}{(1-t)(1+t)}\\
    &=\int_0^{\frac{\sqrt{2}}2}\dfrac{dt}{(1-t)(1+t)}\\
    &=\int_0^{\frac{\sqrt{2}}2}\dfrac{dt}{1-t^2}\\
    &=\left[\dfrac12\log\left|\dfrac{1+t}{1-t}\right|\right]_0^{\frac{\sqrt{2}}2}\\
    &=\dfrac12\log\left|\dfrac{1+\frac{\sqrt{2}}2}{1-\frac{\sqrt{2}}2}\right|\\
    &=\dfrac12\log\left|\dfrac{1+\sqrt{2}}{1-\sqrt{2}}\right|\\
    &=\dfrac12\log\left|\dfrac{(1+\sqrt{2})^2}{1-2}\right|\\
    &=\log\left(1+\sqrt{2}\right)
\end{align}

全体としてもいい感じです!

さらにCοpilotの提案を続けると...

この後に続き得る形で,

\int_0^{\frac{\pi}3}\dfrac{dx}{\cos x}

を計算のCopilotの提案をお願いしました。

\begin{align}
    \int_{0}^{\frac{\pi}3}\dfrac{dx}{\cos x}
    &=\int_{0}^{\frac{\pi}3}\dfrac{\cos x}{\cos^2 x}dx\\
    &=\int_{0}^{\frac{\pi}3}\dfrac{\cos x}{1-\sin^2 x}dx\\
    &=\int_{0}^{\frac{\pi}3}\dfrac{\cos x}{(1-\sin x)(1+\sin x)}dx
\end{align}

\begin{align}
    &t=\sin x\quad\text{とおくと}\\
    &\begin{cases}
        x=0\Rightarrow t=0\\
        x=\frac{\pi}3\Rightarrow t=\frac{\sqrt{3}}2
    \end{cases}\\
    &dt=\cos xdx\\
    &\therefore\int_{0}^{\frac{\pi}3}\dfrac{\cos x}{(1-\sin x)(1+\sin x)}dx\\
    &=\int_{0}^{\frac{\sqrt{3}}2}\dfrac{dt}{(1-t)(1+t)}\\
    &=\int_{0}^{\frac{\sqrt{3}}2}\dfrac{dt}{1-t^2}\\
    &=\left[\dfrac12\log\left|\dfrac{1+t}{1-t}\right|\right]_0^{\frac{\sqrt{3}}2}\\
    &=\dfrac12\log\left|\dfrac{1+\frac{\sqrt{3}}2}{1-\frac{\sqrt{3}}2}\right|\\
    &=\dfrac12\log\left|\dfrac{1+\sqrt{3}}{1-\sqrt{3}}\right|\\
    &=\dfrac12\log\left|\dfrac{(1+\sqrt{3})^2}{1-3}\right|\\
    &=\log\left(1+\sqrt{3}\right)
\end{align}

前回の計算を学習したのか,前半はいい感じです。⑲〜㉑あたりの変換もバッチリです。
しかし,㉖から㉗への計算が違っています。人間みたいな間違いですね。

こちらで,修正して続きを提案してもらいます。


\begin{align}
    \int_{0}^{\frac{\pi}3}\dfrac{dx}{\cos x}
    &=\int_{0}^{\frac{\pi}3}\dfrac{\cos x}{\cos^2 x}dx\\
    &=\int_{0}^{\frac{\pi}3}\dfrac{\cos x}{1-\sin^2 x}dx\\
    &=\int_{0}^{\frac{\pi}3}\dfrac{\cos x}{(1-\sin x)(1+\sin x)}dx
\end{align}

\begin{align}
    &t=\sin x\quad\text{とおくと}\\
    &\begin{cases}
        x=0\Rightarrow t=0\\
        x=\frac{\pi}3\Rightarrow t=\frac{\sqrt{3}}2
    \end{cases}\\
    &dt=\cos xdx\\
    &\therefore\int_{0}^{\frac{\pi}3}\dfrac{\cos x}{(1-\sin x)(1+\sin x)}dx\\
    &=\int_{0}^{\frac{\sqrt{3}}2}\dfrac{dt}{(1-t)(1+t)}\\
    &=\int_{0}^{\frac{\sqrt{3}}2}\dfrac{dt}{1-t^2}\\
    &=\left[\dfrac12\log\left|\dfrac{1+t}{1-t}\right|\right]_0^{\frac{\sqrt{3}}2}\\
    &=\dfrac12\log\left|\dfrac{1+\frac{\sqrt{3}}2}{1-\frac{\sqrt{3}}2}\right|\\
    &=\dfrac12\log\left|\dfrac{2+\sqrt{3}}{2-\sqrt{3}}\right|\\
    &=\dfrac12\log\left|\dfrac{(2+\sqrt{3})^2}{4-3}\right|\\
    &=\log\left(2+\sqrt{3}\right)
\end{align}

正しく,修正されました。

まとめ

今回,\LaTeXでの数式をGithub Copilotで計算しながら提案してもらいました。

というプロセスはとてもいい感じでした。

以下の例は,ちょっと難しい積分計算だったのですが,このプロセスを繰り返して作成しました。

Discussion