Scipy练习

Exercise 10.1: Least squares


题目描述
Generate matrix A belongs to Rm*n with m > n. Also generate some vector b belongs to Rm.
Now x = arg min ||Ax -b||2
Print the norm of the residual


解题思路
  • 构造函数 A*x - b = Y。
  • 生成正太分布随机数作为参数点。
  • 运用Python 的 leastsq 函数实现最小二乘。

解题代码
import numpy as np
from scipy.optimize import leastsq    

def err(x, A, b):  
    return A * x - b

x = 1 
m = 100  
A = np.array([np.random.random() * 10 for i in range(m)])  
b = np.array([np.random.random() * 10 for i in range(m)])   
result = leastsq(err, x, args = (A, b))  
print(result[0])  


Exercise 10.2: Optimization


题目描述
Find the maximum of the function

                                    f(x) = sin2(x - 2)e^-x2


解题思路
  • 构造函数 f(x) = sin2(x - 2)e^-x2 。
  • 利用 Python 的 minimize_scalar 函数解方程 。


解题代码
import numpy as np  
from math import sin, exp 
from scipy.optimize import minimize_scalar   

def f(x):  
    return ((-1) * (sin(x - 2))**2) * exp(-1 * (x**2))  

result = minimize_scalar(f)  
print((-1) * result.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.
 Again, make sure you make use of Scipy's functionality instead of writing your own routine.


解题思路
  • 运用Python 的 dist.cdist 函数


解题代码
import numpy as np
import scipy.spatial.distance as dist

n, m = 6, 3
X = np.random.randint(5, 20, size = (n, m))
D = dist.cdist(X, X)
print(D)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值