前提・実現したいこと
2元連立方程式の1つ目の式は固定で2つ目の式を変えて答えを求めたいです。
普通の各配列の要素を足すなどの関数は実行できたのですが、関数内で配列に格納するように
したらエラーになりました。解決できないので質問させていただきました。
よろしくお願いします。
1つ目の式の配列(数値は固定)
ax + by = c
a → aa1
b → bb1
c → cc1
2つ目の式の配列(数値は変動)
ax + by = c
a → aa2
b → bb2
c → cc2
発生している問題・エラーメッセージ
実行1: ValueError: expected square matrix 実行2: ValueError: setting an array element with a sequence
該当のソースコード
import numpy as np
import scipy.linalg as linalg
def mysolve(aa1, bb1, aa2, bb2, cc1, cc2):
solve_a = np.array([[aa1, bb1], [aa2, bb2]]) solve_b = np.array([cc1, cc2]) solve_lu = linalg.lu_factor(solve_a) return linalg.lu_solve(solve_lu, solve_b)
aa1_arr = np.array([2, 2, 2, 2])
bb1_arr = np.array([1, 1, 1, 1])
aa2_arr = np.array([4, 5, 6, 7])
bb2_arr = np.array([5, 6, 7, 8])
cc1_arr = np.array([3, 3, 3, 3])
cc2_arr = np.array([10, 11, 12, 13])
#実行1: ValueError: expected square matrix
mysolve(aa1_arr, bb1_arr, aa2_arr, bb2_arr, cc1_arr, cc2_arr)
#実行2: ValueError: setting an array element with a sequence
np.vectorize(mysolve)(aa1_arr, bb1_arr, aa2_arr, bb2_arr, cc1_arr, cc2_arr)
補足情報(FW/ツールのバージョンなど)
python 3.6.4
numpy 1.14.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/01 07:20