Ask Your Question

# Newton's identities in Sage

EDIT
I actually need: $s_k=[c_1s_{k-1}+...+c_{k-1}s_1-kc_k]$ ? could somebody help me to change tobias welch's answer so that it computes $s_k$ instead of $c_k$?
END EDIT

I'm combining netwon's identities with le verrier's algorithm

I need some help coding the following on python.

$c_k=\frac{-1}{k}(s_k+c_1s_{k-1}+c_2s_{k-2}+\dots+c_{k-1}s_1)$
where $s_k=Tr(A^k)$, for some square matrix A, $\forall k=1,2,3,\dots,n$

So, i'd like to type in $c(k)$ and python spits out the value for $c_k$ as defined above.

edit retag close merge delete

## 1 answer

Sort by ยป oldest newest most voted

An recursive algorithm would be quite inefficient for this problem as yout would have to recalculate all c_k coefficients in each step.

The following few lines should work for your problem (if I hopefully didn't make any mistakes with the formulas):

def c(k,A):
c_arr=[-A.trace()]
for j in range(k-1):
c_arr=c_incr(c_arr,A)
print c_arr
return c_arr[k-1]

def c_incr(c_arr, A):
k=len(c_arr)+1
c_new=(A^k).trace()
for c_k in c_arr:
k-=1
c_new+=c_k*(A^k).trace()
c_new=-1/(len(c_arr)+1)*c_new
c_arr.append(c_new)
return c_arr

more

## Comments

it worked thanks!

( 2013-02-25 22:51:33 -0600 )edit

what if i wanted a new formula for s_k=[c_1s_{k-1}+...+c_{k-1}s_1-kc_k] ?

( 2013-03-17 15:54:19 -0600 )edit
2

You should consider learning some programming. It will save you a lot of time.

( 2013-03-18 15:21:42 -0600 )edit

## Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

## Stats

Asked: 2013-02-25 03:08:03 -0600

Seen: 319 times

Last updated: Mar 17 '13