-1

1 つのアルゴリズムを作成しているときに、1 つのステップで行き詰まりました。それを解決するのを手伝ってください。

線形方程式を解く必要があります。下の画像をご覧ください。

ここに画像の説明を入力

行列の書き方がわからないので画像を使いました。

すべての変数値を計算するアルゴリズムを提案してください。あなたの親切な対応を求めています。

4

2 に答える 2

4

行列が質問で与えられた形式と常に同じである場合 (つまり、対角線の -1 を除いてすべて 1)、時間 O(n) で解くことができます。ここで、n は方程式の数です。

方程式の数を N とします。

次に、解は次のように与えられます。

t = (a+b+c)/(N-2)
x = (t-a)*0.5
y = (t-b)*0.5
z = (t-c)*0.5

Python コード:

# Set up equations
a=4
b=5
c=6
A = a,b,c

# Compute inverse
t = sum(A)/(len(A)-2.)
B = [(t-x)*0.5 for x in A]

# Check
x,y,z = B
print -x+y+z
print x-y+z
print x+y-z

この式を次のように導出しました。

  1. すべての方程式を合計して (N-2)(x+y+z)=(a+b+c) を取得します。ここで、N は方程式の数です。
  2. 各方程式を次のように記述します。たとえば、-x+y+z = x+y+z - 2x = (a+b+c)/(N-2) - 2x = a
  3. x の値についてこの方程式を解く
于 2013-10-13T12:16:48.070 に答える