mls.py -достаточно функциональный модуль для решения задач линейной алгебры.
Файл mls.py нужно скопировать в одну из директорий в которых интерпретатор ищет модули. Список этих директорий получим после ввода в интерактивной консоли следующих инструкций: >>>import sys >>>sys.path Обычно используют директории E:\\system\\libs\\для смартфонов с Symbian S60 2nd Edition и E:\\Python\\Lib\\ для смартфонов с Symbian S60 3rd Edition.
Посмотрим в работе модуль mls.py ,решим методом Зайделя систему уравнений
x=-0.25y+0.25z
y=0.2x+0.2z-0.2
z=-0.25x+0.25y-0.25
import mls A=[[0],[-0.25],[0.25]],[[0.2],[0],[0.2]],[[-0.25],[0.25],[0]] B=[[0,-0.2,-0.25]] Xf,eps=str(mls.M([[0,0,0]])),1.E-7 Xs=mls.M([[0,-0.2,-0.25]]) E=mls.M([[1,0,0],[0,1,0],[0,0,1]]) H=[[0,0.2,-0.25],[0,0,0.25],[0,0,0]] T=mls.M([[0,0,0],[-0.25,0,0],[0.25,0.2,0]]) lim=eps*(1.-mls.norm(mls.inv(E-H)*T))/mls.norm(mls.inv(E-H)*T) while mls.norm(Xs-eval(Xf))>lim: Xf=str(Xs) for i in 0,1,2: Xs[0][i]=(A[i]*Xs)[0][0]+B[0][i] print Xs for i in (1,2,3): print 'x%d='%i, Xs[0][i-1]
Для достижения точности е=0.0000001 требуется всего 9 итераций.
x=-0.012...,y=-0.265...,z=-0.313...
|