scipy exercises

Exercise 10.1: Least squares Generate matrix A ∈ Rm×n with m > n. Also generate some vector b ∈ Rm. Now find x = argminxkAx−bk2. Print the norm of the residual.

import numpy as np 
import scipy.optimize as opt 

#Exercise 10.1
m = 5
n = 3
A = np.random.normal(3,1, (m, n))
b = np.random.normal(5,1,(m, 1))
x = np.dot(np.dot(np.linalg.inv(np.dot(A.T, A)), A.T), b)
print(x)


Exercise 10.2: Optimization Find the maximum of the function
f(x) = sin2(x−2)e−x2

import numpy as np 
import scipy.optimize as opt 

#Exercise 10.2
def f(x):
	return - np.power(np.sin(x - 2), 2) * np.exp(- np.power(x, 2))
res = opt.minimize_scalar(f)
print(res.fun)

Exercise 10.3: Pairwise distances Let X be a matrix with n rows and m columns. How can you compute the pairwise distances between every two rows?
As an example application, consider n cities, and we are given their coordinates in two columns. Now we want a nice table that tells us for each two cities, how far they are apart.

import numpy as np 
import scipy.spatial as spa 

X = np.array([[0,1], [0,2], [2,5], [4,3]])
pair_dis = spa.distance.pdist(X, 'euclidean') #以向量的二范数作为距离的计算方法
n = X.shape[0]
for first in range(0, n):
	for second in range(first+1, n):
		print('The distance between city {} and city {} is {}.'.format(
			first, second, pair_dis[int((n+n-1-first)*first/2 + second-first-1)]))



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值