技術屋にゃん兵衛のてくてくらぼ by データウィズ [DataWith]

気の向くままソフトについて書いてます。バリバリエンジニアではないのであくまでも初心者目線で。

簡単なMathematicaのコマンドをChatGPTでPythonに変換してみた

簡単なMathematicaのコマンドをChatGPTでPythonに変換してみた

 

以前にChatGPTでPythonのコードを生成してみました。

今回は、前回からの流れでWolfram言語まわりについてさらに実験してみました。

(以下、入力部分は「Wolframドキュメントセンター」より引用、応答部分は「ChatGPT」からの応答です)

 

まずは、ChatGPTに「これから入力するMathematicaコードをPythonに変換してね」と伝えます。

 

入力>

Convert the following Mathematica code to Python:

 

応答>

Certainly! Please provide the Mathematica code you'd like to convert to Python, and I'll do my best to help you with the conversion.

 

「ベストを尽くします」と返ってきた。

よし。頑張ってくれ!

 

Mathematicaのコードを入れます。これは、Wolfram言語のドキュメントセンターからとってきました。

 

入力>

Coefficient[(x + 1)^3, x, 2]

 

出力は次のようになりました。

「SymPyライブラリ使って等価な処理をするとこうです」と言ってますね。この辺りは正しく解釈して、妥当なコードを書きそうな雰囲気です。

 

----------------------------------------------

In Mathematica, the Coefficient function is used to extract the coefficient of a specified term in a polynomial. In your example, you want to find the coefficient of the term with x^2 in the polynomial (x + 1)^3. Here's how you can do the equivalent operation in Python using the SymPy library:

 

import sympy as sp

 

# Define the symbolic variable

x = sp.symbols('x')

 

# Define the polynomial

polynomial = (x + 1)**3

 

# Find the coefficient of x^2

coefficient = sp.poly(polynomial, x).coeffs()[2]

 

# Print the result

print(coefficient)

 

In this Python code, we first define the symbolic variable x, create the polynomial, and then use sp.poly to extract the coefficients. The [2] index is used to access the coefficient of x^2.

----------------------------------------------

 

最後は、いつも通り、少し生成したコードの説明があります。

相変わらず丁寧。

 

さて、このコードをGoogle Colaboratoryで実行してみます。

Google Colaboratoryのノートブックに張り付け

Pythonでの実行結果

きちんと「3」が返ってきました。

 

では、もう少し複雑に、方程式を解かせてみます(これもWolfram言語のドキュメントセンターより)。

 

入力

Solve[x^2 + a x + 1 == 0, x]

 

応答は、、、

 

-------------------------

In Mathematica, the Solve function is used to find solutions to equations. The equation you provided is a quadratic equation. Here's the equivalent code in Python using the SymPy library to solve for x:

 

import sympy as sp

 

# Define the symbolic variables

x, a = sp.symbols('x a')

 

# Define the quadratic equation

equation = x**2 + a*x + 1

 

# Solve the equation for x

solutions = sp.solve(equation, x)

 

# Print the solutions

print(solutions)

 

This Python code defines the symbolic variables x and a, sets up the quadratic equation, and then uses sp.solve to find the solutions for x. The solutions will be printed in a list format.

-------------------------

 

Wolfram言語の「Solve」を「SymPy」の「solve」で書き換えるよ、ということでこれもいい感じです。

結果は、、、

方程式を解いた結果

 

きちっと解いてますね。

数式的なものは、かなり使えそうです。

 

では、ハードルを大きく上げて、グラフはどうでしょう。

 

入力

Plot[Sin[x], {x, 0, 6 Pi}]

 

応答>

-----------------------------------------

You can create a plot of the sine function in Python using the matplotlib library. First, make sure you have matplotlib installed, and then you can create the plot as follows:

 

import matplotlib.pyplot as plt

import numpy as np

 

# Define the x values

x = np.linspace(0, 6 * np.pi, 1000)  # Generate 1000 points between 0 and 6*pi

 

# Calculate the corresponding y values using the sine function

y = np.sin(x)

 

# Create the plot

plt.plot(x, y)

plt.xlabel('x')

plt.ylabel('Sin(x)')

plt.title('Plot of Sin(x)')

plt.grid(True)

 

# Show the plot

plt.show()

 

This code will create a plot of the sine function over the range from 0 to 6π. You can adjust the number of points in the np.linspace function to control the smoothness of the plot.

 

-----------------------------------------

Pythonでグラフを書くから、matplotlibと、lispace、plot、そしてshowと、まともそうなコードです。

 

とりあえず、Colaboratoryで動かしてみます。

関数のグラフ表示も変換できた

 

おお!それなりに使える。

MathematicaのコードをPythonに、わりと簡単に変換できるということがわかりました。

 

私は「反Mathematica同盟」の構成員ではないことを書き添えておきます。念のため!

 

長いプログラムはできるかどうかは、またそのうちに。