Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import numpy.linalg as la
- def F1(x):
- x_, y_ = x.item(0), x.item(1)
- return np.matrix([[np.sin(x_+.937)-.389*y_-1.822],
- [x_+np.cos(y_-.149)-.59]])
- def F2(x):
- x_, y_ = x.item(0), x.item(1)
- return np.matrix([[np.tan(x_*y_+.937) - np.power(x_, 2)],
- [.803*np.power(x_, 2)-.389*np.power(y_, 2)-1]])
- def W1(x):
- x_, y_ = x.item(0), x.item(1)
- return np.matrix([[np.cos(x_+.937), -.389],
- [1, -np.sin(y_-.149)]])
- def W2(x):
- x_, y_ = x.item(0), x.item(1)
- a00 = y_/(np.cos(x_*y_+.937)**2) - 2*x_
- a01 = x_/(np.cos(x_*y_+.937)**2)
- a10 = 1.606*x_
- a11 = -0.778*y_
- a = np.matrix([[a00, a01],
- [a10, a11]])
- return a
- x = np.matrix([[1], [-3]])
- _x = np.matrix([[1], [1]])
- lambd = -la.inv(W1(x))
- k = 0
- while (la.norm(F1(x)) > 10e-5) or (la.norm(_x - x) > 10e-5):
- k += 1
- _x = x
- x = x + np.dot(lambd, F1(x))
- print('step#{}\nx={}\nF={}\n|F|={}'.format(
- k, x, F1(x), la.norm(F1(x))))
- print(x)
- x = np.matrix([[-1], [0]])
- _x = np.matrix([[1], [1]])
- k=0
- while (la.norm(F2(x)) > 10e-5) or (la.norm(_x - x) > 10e-5):
- k+=1
- _x = x
- delta = la.solve(W2(x), -F2(x))
- x = x + delta
- print('step#{}\nx={}\nF={}\n|F|={}'.format(
- k, x, F2(x), la.norm(F2(x))))
- print(x)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement