Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- i=1
- while (i>0):
- x_past = x_present
- j=0
- while(j<3):
- value=0
- k=0
- while(k<3):
- if(k!=j):
- if(i==1):
- if(k>j):
- value=value+0
- else:
- value=value+x_present[k]*eqn[j][k]
- else:
- value=value+x_present[k]*eqn[j][k]
- else:
- value=value+eqn[j][k]
- k=k+1
- x_present[j:j+1]=[value]
- j=j+1
- print "X_PAST"
- print x_past
- print "X_PRESENT"
- print x_present
- if(error(x_past, x_present)<10**-2):
- break;
- i=i+1
- x_present[j:j+1]=[value]
- x_past=x_present
- >>> x_present = [4,5,6]
- >>>
- >>> x_past = x_present
- >>>
- >>> x_past
- [4, 5, 6]
- >>>
- >>> x_present.append(7)
- >>>
- >>> x_past
- [4, 5, 6, 7]
- >>>
- >>> x_past = x_present[:]
- >>> x_past
- [4, 5, 6, 7]
- >>>
- >>> x_present.append(8)
- >>>
- >>> x_past
- [4, 5, 6, 7]
- >>> import copy
- >>> a = range(10)
- >>> a
- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- >>> b = a
- >>> a += 10, 11
- >>> a
- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
- >>> b
- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
- >>> c = copy.copy(a) # shallow copy
- >>> c
- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
- >>> del a[3:]
- >>> a
- [0, 1, 2]
- >>> b
- [0, 1, 2]
- >>> c
- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
- import copy
- # assert(len(x_present) >= len(eqn))
- first = True
- while True:
- x_past = copy.copy(x_present) # copy
- for j, eqj in enumerate(eqn):
- x_present[j] = sum(x_present[k] * eqj[k]
- for k in range(j if first else len(eqj))
- if k != j)
- x_present[j] += eqj[j]
- print "X_PASTn%snX_PRESENTn%s" % (x_past, x_present)
- if allequal(x_past, x_present, tolerance=10**-2):
- break
- first = False
- def allequal(x, y, tolerance):
- return (len(x) == len(y) and
- all(-tolerance < (xx - yy) < tolerance
- for xx, yy in zip(x, y)))
Add Comment
Please, Sign In to add comment