nevertheless’s diary

考えていることをChatGPTに聞いてみる

埋込みコード(その2):Markdown to HTML

引き続き、埋込みコードを思うように表示させるためにはどうやって指示すれば良いかを、殆ど知識が無い状態で試行錯誤している。

 

nevertheless.hatenablog.com

今回は、次のように指示した。

# Markdown記法で書かれたものを下記のルールに従ってhtmlに変換してください。

- 数式があった場合には、MathJaxのスクリプトをHTMLに追加して数式フォントが正しく表示されるようにする

- 埋込みコードがあった場合には、preタグとcodeタグを用いる

- 次のコードを追加してGoogle Code Prettifyを使う

<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>

- Gallery of themes for code prettifyからcssを追加してシンタックスハイライトを施す

- PCでもスマホでもコード埋込み部分の背景色は黒にして、角は丸くする

# 以下が、Markdownで書かれたものです。
-----

シンタックスハイライトでコード部分が色分けされるようになったのは良いが、文字色が暗いので背景色の黒の中では見えづらい。そこで、

シンタックスハイライトの文字色を明るくして、読みやすくすることは出来ますか?

という注文を追加して、更に調子に乗って

埋込みコードをクリップボードのコピーするためのボタンを付けることは出来ますか?

と懲りずに注文した。快諾してくれたけど、相変わらずコピーはされない。そして、例として出されたPythonインテグラルについても書かれている意味はわかってない。

Q)Pythonを使ってインテグラルを計算する簡単な例

Scipyライブラリを使用して関数 \( f(x) = x \) の区間 \([0, 1]\) における定積分を計算してみましょう。

必要なライブラリのインストール

まず、必要なライブラリである scipy をインストールします。Jupyter Notebook や Python 環境で次のコマンドを実行してください:

pip install scipy

コード例

次に、実際にインテグラルを計算するためのコードを示します。

import numpy as np
from scipy.integrate import quad

# 関数を定義します
def integrand(x):
    return x

# 区間を設定します
a = 0  # 下限
b = 1  # 上限

# 定積分を計算します
result, error = quad(integrand, a, b)

print(f"定積分の結果: {result}")
print(f"推定誤差: {error}")

コードの説明

  1. ライブラリのインポート:
    import numpy as np
    from scipy.integrate import quad
  2. 関数の定義:

    関数 \( f(x) = x \) を定義します。

    def integrand(x):
        return x
  3. 区間の設定:

    積分を計算する区間 \([0, 1]\) の下限 \( a \) と上限 \( b \) を設定します。

    a = 0  # 下限
    b = 1  # 上限
  4. 積分の計算:

    scipy.integrate.quad関数を使って、定積分の値を計算します。この関数は計算結果と推定誤差を返します。

    result, error = quad(integrand, a, b)
  5. 結果の表示:

    計算結果と推定誤差を表示します。

    print(f"定積分の結果: {result}")
    print(f"推定誤差: {error}")

実行結果

このコードを実行すると、次のような結果が得られます:

定積分の結果: 0.5
推定誤差: 5.551115123125783e-15

この結果は、先ほど手計算で求めた \(\frac{1}{2}\) と一致していることが確認できます。また、推定誤差は非常に小さい値であり、計算結果が精度良く求められていることがわかります。