Python学习笔记——scipy

Exercise 10.1:

Least squares Generate matrix A ∈ Rm×n with m> n. Also generate some vector b ∈ Rm. Now nd x = argminxkAxbk2. Print the norm of the residual.

#最小二乘法
import numpy as np  
import scipy.linalg as sl  
  
m = int(input("Plz enter m: "))  
n = int(input("Plz enter n: "))  
if n>m:
    temp = m
    m = n
    n = m
A = np.random.rand(m, n)  
b = np.random.rand(m, 1)  
A = np.mat(A)  
b = np.mat(b)  
x = sl.inv(A.T * A) * A.T * b  
print(x)

Exercise 10.2: Optimization

Find the maximum of the function

f(x) = sin2(x2)ex2

import matplotlib.pyplot as plt
import numpy as np
import scipy.optimize as so  
import math 
''' 根据图像大约获得最大值的区间
x = np.linspace(-10, 10, 50)
y = (np.sin(x-2)**2) * (np.e**(-x**2))
plt.plot(x, y)
plt.show()
''' 
def func(x):  
    return (-(math.sin(x-2)**2)*math.exp(-(x ** 2)))  
  
a = so.fminbound(func, -10, 10)  
print(-func(a))

Exercise 10.3:

Pairwise distances Let X be a matrix with nrows and m columns. How can you compute the pairwise distances between everytwo rows?

As an example application, consider ncities, and we are given their coordinates in two columns. Now we want a nicetable that tells us for each two cities, how far they are apart.

Again, make sure you make use of Scipy’sfunctionality instead of writing your own routine.

扫描二维码关注公众号,回复: 1574958 查看本文章

import numpy as np  
import scipy.spatial.distance as ssd  
import math  
  
m = int(input("Plz enter m: "))  
n = int(input("Plz enter n: "))  
X = np.random.rand(m, n)  
Y = ssd.pdist(X)  
z = ssd.squareform(Y)  
print(z) 
2018/6/5




猜你喜欢

转载自blog.csdn.net/ltc8600/article/details/80584644