高级编程作业 scipy 练习

本文通过Python的Scipy库实现最小二乘法求解线性方程组问题,并展示了如何生成矩阵A与向量b,进而求得x使得Ax-b的范数平方最小。此外,还介绍了使用Scipy进行一维函数极值搜索及计算点间距离的方法。

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

Exercise 10.1: Least squares Generate 

    matrix A ∈ Rm×n with m > n. Also generate some vector b ∈ Rm. Now find x = argminxk||Ax−bk||2. Print the norm of the residual.

源代码

 
import scipy
import scipy.linalg
import scipy.spatial
import scipy.optimize as opt
import math
m = 5n = 3A = scipy.random.rand(m, n) * scipy.random.randint(1, 10)b = scipy.random.rand(m) * scipy.random.randint(1, 10)x, resid, rnk, s = scipy.linalg.lstsq(A, b)print('A =', A)print('b =', b)print('x =', x)print('Norm of residual =', resid/n)

输出结果


源代码

import scipy
import scipy.linalg
import scipy.spatial
import scipy.optimize as opt
import math

func = lambda x: (math.sin(x - 2) ** 2) * math.exp(-x * x)
maximum = opt.fmin(lambda x: -func(x), 1, full_output=True, disp=0)
print('max func(%f) = %f'%(maximum[0], -maximum[1]))
print('iterations = %d, function evaluations = %d'%(maximum[2], maximum[3]))

输出结果


源代码

import scipy
import scipy.linalg
import scipy.spatial
import scipy.optimize as opt
import math

m = 2
n = 4
X = scipy.random.rand(n, m) * scipy.random.randint(1, 10)
print(X)
Y = scipy.spatial.distance.pdist(X)
print(Y)

输出结果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值