习题 关于scipy(第十三周)

这篇博客探讨了如何利用scipy库进行数值计算。首先介绍了如何使用scipy.optimize.leastsq进行最小二乘法求解问题并计算残差。接着,展示了如何借助minimize_scalar函数进行单变量标量函数的极小化操作。最后,讲解了scipy.spatial.distance.cdist函数在计算点对之间距离的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最小二乘法求x,并计算残差(用 scipy.optimize 中的 leastsq 函数)。

代码:

import numpy as np
import scipy.linalg as sl

m = 5
n = 3
A = np.matrix(np.random.random((m, n)))
print('A = ')
print(A)
b = np.matrix(np.random.random((m, 1)))
print('b = ')
print(b)

x, res, rnk, s = sl.lstsq(A, b)
print('x =', x)

print('The norm of the residual: ')
print(sl.norm(A * x - b))

结果:





用 scipy.optimize 里的 minimize_scalar() 函数做单变量标量函数的极小化(最大值)。

代码:

import numpy as np
import scipy.optimize as opt

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

res = opt.minimize_scalar(f)
print((-1) * res.fun)

结果:





求点对之间的距离,用 scipy.spatial.distance 中的 cdist() 函数。

代码:

import numpy as np
import scipy.spatial.distance as dist

m = 2
n = int(input('Please input n: '))
X = np.random.random((n, m))
print('X: ')
print(X)
D = dist.cdist(X, X)
print('distances: ')
print(D)

结果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值