ChatGPT先生へ
一次分数変換について教えて下さい。
wikipediaの一次分数変換の記事に日本の文献がありませんでした。
日本の文献を教えて下さい。
一次分数変換を研究しておられるのは、数研出版様だけですか。
https://ja.m.wikipedia.org/wiki/一次分数変換#参考文献
(回答抜粋)
ご指摘のとおり、ウィキペディアの「一次分数変換」記事の参考文献には日本語の文献が含まれていません。しかし、...
・「一次分数変換を利用した連立代数方程式の高精度計算法」(1996年)
・「連立代数方程式の数値解法における一次分数変換の新たな適用について」(1998年)
例えば、大阪教育大学や佐賀大学のリポジトリ...
Gemini先生へ
質問リスト
・質問リストの追番は無視して下さい。1個ずつです。途中の回答表示は省略しています。
質問リスト
1.一次分数変換とは何ですか。
2.上記をsympyのソースコードで教えて下さい。結果も一緒に表示して下さい。
3.上記を作図で教えて下さい。
from sympy import symbols, simplify
# 変数の定義
z, a, b, c, d = symbols('z a b c d')
# 一次分数変換の定義
def linear_fractional_transform(z, a, b, c, d):
return (a*z + b) / (c*z + d)
# 例1: 平行移動
w1 = linear_fractional_transform(z, 1, 1, 0, 1)
print("例1 (平行移動): w = ", simplify(w1))
# 例2: 拡大・縮小
w2 = linear_fractional_transform(z, 2, 0, 0, 1)
print("例2 (拡大・縮小): w = ", simplify(w2))
# 例3: 反転
w3 = linear_fractional_transform(z, 0, 1, 1, 0)
print("例3 (反転): w = ", simplify(w3))
# 例4: 単位円板から上半平面への変換
w4 = linear_fractional_transform(z, 1, -1, 1, 1)
print("例4 (単位円板から上半平面への変換): w = ", simplify(w4))
実行結果:
例1 (平行移動): w = z + 1
例2 (拡大・縮小): w = 2*z
例3 (反転): w = 1/z
例4 (単位円板から上半平面への変換): w = (z - 1)/(z + 1)
実行結果:
import sympy
import matplotlib.pyplot as plt
import numpy as np
# 変数の定義
z = sympy.symbols('z')
# 一次分数変換の定義
def linear_fractional_transform(z, a, b, c, d):
return (a*z + b) / (c*z + d)
# 変換する図形の定義 (例: 単位円)
theta = np.linspace(0, 2*np.pi, 100)
z_vals = np.exp(1j*theta)
# 変換のパラメータ
a, b, c, d = 1, -1, 1, 1
# 変換後の図形を計算
w_func = linear_fractional_transform(z, a, b, c, d)
w_vals = [sympy.lambdify(z, w_func)(val) for val in z_vals]
# 作図
plt.figure(figsize=(8, 4))
plt.subplot(1, 2, 1)
plt.plot(np.real(z_vals), np.imag(z_vals))
plt.title("Original Figure")
plt.xlabel("Real")
plt.ylabel("Imaginary")
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)
plt.grid(True)
plt.axis('equal')
plt.subplot(1, 2, 2)
plt.plot(np.real(w_vals), np.imag(w_vals))
plt.title("Transformed Figure")
plt.xlabel("Real")
plt.ylabel("Imaginary")
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)
plt.grid(True)
plt.axis('equal')
plt.tight_layout()
plt.show()
copilot先生へ
いつもの? sympyの実行環境と 参考のおすすめです。
いつもと違うおすすめです。
wikipedia