Пример P4 Печать
Автор: Administrator   
13.04.2011 12:42

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...


( 4 Votes )
Обновлено 29.03.2012 12:49