Skip to content

Instantly share code, notes, and snippets.

@gceylan
Created March 27, 2012 17:36
Show Gist options
  • Save gceylan/2218245 to your computer and use it in GitHub Desktop.
Save gceylan/2218245 to your computer and use it in GitHub Desktop.
10 x 10 lineer denklem sisteminin çözümü...
# bu fonksiyon girilen denklemi (ör = 2x + 3y - 1z = 5) matris formuna dönüştürür. ([0, 2, 3, -1, 5])
def denklemGirisi(satir = 3, sutun = 4):
satir += 1
sutun += 1
# bu liste yardımıyla herbir denklem için bir matris oluşturduk.
liste = []
#girilen denklemlerin matris şeklinde bu listede tutuk.
matris = [[0] * sutun]
ind1, ind2 = 0, 0 # denklemde dolaşmak için gerekli 2 indis tanımladık.
for k in range(1, satir):
#denklem girişi burada başlıyor...
denk = raw_input(str(k) + ". denklemi giriniz: ")
#her matrisin soldaki ilk elemanını sıfır yapmak için yazdık.
liste.append(0)
while ind1 < len(denk):
i = denk[ind1]
if denk[ind1] == '-':
ind2 = ind1
while ind2 < len(denk):
j = denk[ind2 + 1]
if j != ' ' and j not in 'qwertyuıopğüasdfghjklşizxcvbnmöç':
liste.append(float(j) * -1)
ind1 = ind2 + 1
break
else:
ind2 += 1
elif i != ' ' and i != '+' and i not in '=qwertyuıopğüasdfghjklşizxcvbnmöç':
liste.append(float(i))
ind1 += 1
matris.append(liste)
liste = []
ind1, ind2 = 0, 0
# girdiğimiz denklemlerin matris halini ekrana döktük
for i in matris:
print i
return matris
# bu fonksiyon ile girilen m matrisinin kökleri hesaplanır.
def kokBuL(m):
n = len(m[0]) - 2
x = [0] * (n + 1)
for k in range(1, n):
for j in range(k+1, n + 1):
for p in range(k+1, n + 2):
m[j][p] = float(m[j][p]) - m[j][k] / float(m[k][k]) * m[k][p]
if m[n][n] == 0 or m[n][n] == 0.0:
print "denklem sisteminin tek kökü yok"
else:
x[n] = float(m[n][n + 1]) / m[n][n]
for i in range(n-1, 0, -1):
s = 0
for j in range(i+1, n+1):
s = s + m[i][j] * x[j]
x[i] = 1.0 / m[i][i] * (m[i][n + 1] - s)
print "Çözüm Kümesi:"
for i in range(1, len(x)):
print "X" + str(i) + " --> " + str(x[i])
# verilen denklemler:
#--------------------
# m1 denklem sistemi:
# 3x + 2y - 5z = 0
# x + y + 3z = 5
# 2x - y + z = 2
# Çözüm Kümesi X1 = 1, X2 = 1, X3 = 1
# m2 denklem sistemi:
# x + y + 2z = 9
# 2x + 4y - 3z = 1
# 3x + 6y - 5z = 0
# Çözüm Kümesi X1 = 1, X2 = 2, X3 = 3
# m3 denklem sistemi:
# 2x + y - z = 2
# 4x - 4y + z = 1
# x + y - 2z = 0
# Çözüm Kümesi X1 = 1, X2 = 1, X3 = 1
# index karışıklığını önlemek için (1. satır 1. sütun) her satırın 0. indexi sıfırlanmıştır.
m1 = [
[0, 0, 0, 0, 0],
[0, 3.0, 2.0, -5.0, 0],
[0, 1.0, 1.0, 3.0, 5.0],
[0, 2.0, -1.0, 1.0, 2.0]
]
m2 = [
[0, 0, 0, 0, 0],
[0, 1.0, 1.0, 2.0, 9.0],
[0, 2.0, 4.0, -3.0, 1.0],
[0, 3.0, 6.0, -5.0, 0.0]
]
m3 = [
[0, 0, 0, 0, 0],
[0, 2.0, 1.0, -1.0, 2.0],
[0, 4.0, -4.0, 1.0, 1.0],
[0, 1.0, 1.0, -2.0, 0]
]
m4 = [
[0, 0, 0, 0, 0, 0, 1.0],
[0, 2.0, 1.0, -1.0, 2.0, 1.0, 9.0],
[0, 4.0, -4.0, 1.0, 1.0, 2.0, 8.0],
[0, 1.0, 6.0, -2.0, 0, 3.0, 7.0],
[0, 1.0, 1.0, -2.0, 1.0, 3.0, 6.0],
[0, 2.0, 3.0, -1.0, 0, 2.0, 5.0],
[0, 6.0, 2.0, -5.0, 2.0, 7.0, 4.0],
[0, 1.0, 7.0, -1.0, 4.0, 6.0, 3.0],
[0, 3.0, 1.0, -5.0, 2.0, 5.0, 2.0],
[0, 5.0, 4.0, -4.0, 1.0, 4.0, 1.0],
[0, 5.0, 4.0, -4.0, 1.0, 4.0, 1.0]
]
m5 = [
[0, 2.0, 3.0, -1.0, 0, 2.0, 5.0, 1.0],
[0, 6.0, 2.0, -5.0, 2.0, 7.0, 4.0, 2.0],
[0, 1.0, 7.0, -1.0, 4.0, 6.0, 3.0, 3.0],
[0, 3.0, 1.0, -5.0, 2.0, 5.0, 2.0, 4.0],
[0, 5.0, 4.0, 4.0, 1.0, 4.0, 1.0, 5.0],
[0, 5.0, 4.0, 6.0, 1.0, 4.0, 1.0, 6.0],
[0, 8.0, 9.0, 12.0, 4.0, 7.0, 1.0, 9.0]
]
m6 = [
[0, 0.0, 0.0, 0.0, 0, 0.0, 0.0, 0.0, 0.0],
[0, 6.0, 2.0, -5.0, 2.0, 7.0, 4.0, 2.0, 2.0],
[0, 1.0, 7.0, -1.0, 4.0, 6.0, 3.0, 3.0, 5.0],
[0, 3.0, 1.0, -5.0, 2.0, 5.0, 2.0, 4.0, 4.0],
[0, 5.0, 4.0, 4.0, 1.0, 4.0, 1.0, 5.0, 3.0],
[0, 5.0, 4.0, 6.0, 1.0, 4.0, 1.0, 6.0, 5.0],
[0, 8.0, 9.0, 12.0, 4.0, 7.0, 1.0, 9.0, 2.0],
[0, 1.0, 7.0, -1.0, 4.0, 6.0, 3.0, 3.0, 5.0]
]
m7 = [
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 5, 2, 5, 4, 1, 2, 3, 4, 5, 0, 0],
[0, 5, 4, 2, 3, 1, 1, 6, 4, 3, 0, 0],
[0, 5, 5, 1, 2, 1, 4, 6, 5, 1, 0, 0],
[0, 4, 2, 7, 1, 1, 2, 3, 4, 5, 0, 0],
[0, 1, 9, 8, 7, 6, 5, 4, 3, 3, 0, 1],
[0, 3, 1, 5, 4, 3, 6, 8, 9, 0, 0, 0],
[0, 1, 8, 6, 5, 4, 3, 2, 1, 9, 0, 0],
[0, 8, 9, 6, 4, 3, 2, 2, 1, 9, 0, 0],
[0, 5, 9, 8, 6, 5, 4, 3, 3, 2, 0, 0],
[0, 5, 9, 1, 1, 1, 1, 2, 4, 5, 1, 1]
]
#kokBuL(m7)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment