Умножение матриц дает необычный результат в Python (SciPy / PyLab)

Я новичок в Python и немного устарел с моей линейной алгеброй, поэтому, возможно, это это простой вопрос. Я пытаюсь реализовать расширение серии Тейлора на матрице для вычисления exp (A), где A - это просто простая матрица 3x3. Формула, BTW для этого расширения - sum (A ^ n / n!).

Моя процедура работает нормально до n = 9, но при n = 10 числа в матрице внезапно становятся отрицательными. Это проблема.

A ** 9 так что, возможно, это простой вопрос. Я пытаюсь реализовать расширение серии Тейлора в матрице для вычисления exp (A), где A - это просто ...

Я новичок в Python и немного устарел с моей линейной алгеброй, поэтому, возможно, это это простой вопрос. Я пытаюсь реализовать расширение серии Тейлора на матрице для вычисления exp (A), где A - это просто простая матрица 3x3. Формула, BTW для этого расширения - sum (A ^ n / n!).

Моя процедура работает нормально до n = 9, но при n = 10 числа в матрице внезапно становятся отрицательными. Это проблема.

A ** 9 так что, возможно, это простой вопрос. Я пытаюсь реализовать расширение серии Тейлора в матрице для вычисления exp (A), где A - это просто ...

Я новичок в Python и немного устарел с моей линейной алгеброй, поэтому, возможно, это это простой вопрос. Я пытаюсь реализовать расширение серии Тейлора на матрице для вычисления exp (A), где A - это просто простая матрица 3x3. Формула, BTW для этого расширения - sum (A ^ n / n!).

Моя процедура работает нормально до n = 9, но при n = 10 числа в матрице внезапно становятся отрицательными. Это проблема.

A ** 9 m пытается реализовать расширение ряда Тейлора на матрице для вычисления exp (A), где A - это просто матрица 3x3. Формула, BTW для этого расширения - sum (A ^ n / n!).

Моя процедура работает нормально до n = 9, но при n = 10 числа в матрице внезапно становятся отрицательными. Это проблема.

A ** 9 m пытается реализовать расширение серии Тейлора на матрице для вычисления exp (A), где A - это простая матрица 3x3. Формула, BTW для этого расширения - сумма (A ^ n / n!).

Моя процедура работает нормально до n = 9, но при n = 10 числа в Матрице внезапно становятся отрицательными. Это проблема.

A ** 9 матрица ([[250130371, 506767656, 688136342], [159014912, 322268681, 437167840], [382552652, 775012944, 1052574077]])

A ** 10 матрица ([[- 1655028929, 1053671123, -1327424345], [1677887954, -895075635, 319718665], [-257240602, -409489685, -1776533068]])

Интуитивно A ^ 9 * A должен давать большие числа для каждого члена матрицы, но, как вы можете видеть, A ^ 10 не дает такого результата.

Есть идеи?

from scipy import *
from numpy import *
from numpy.linalg import *
#the matrix I will use to implement exp(A)
A = mat('[1 3 5; 2 5 1; 2 3 8]')
#identity matrix
I = mat('[1 0 0; 0 1 0; 0 0 1]')
#first step in Taylor Expansion (n=0)
B = I
#second step in Taylor Expansion (n=1)
B += A
#start the while loop in the 2nd step
n = 2
x=0
while x<10:
    C = (A**n)/factorial(n)
    print C
    print " "
    n+=1
    B+= C
    print B
    x+=1

print B

Спасибо за любую помощь!

5
задан Taj G 5 February 2011 в 23:38
поделиться