10 Scipy


Code:

Exercise 10.1: Least squares

import scipy
import numpy as np
from scipy.optimize import minimize 

def error(x0, A, b):
    return np.linalg.norm(np.dot(A, x0) - b, ord = 2)

m = 15
n = 10
A = np.random.randint(1, 10, (m, n))
b = np.random.randint(1, 100, (m, 1))

x0 = np.zeros((n, 1))
result = minimize(error, x0, args = (A, b))
x = result.x
residual = np.dot(A, x) - b
norm = np.linalg.norm(residual, ord = 2)
print("The value of x:")
print(x)
print("The value of residual:")
print(residual)
print("The value of norm:")
print(norm)
Exercise 10.2: Optimization
#Find the maximum of the function
import numpy as np 
import scipy as sp 
from scipy.optimize import minimize
import matplotlib.pyplot as plt

def fun(x):
    a = np.exp(-(x**2))
    b = np.sin(x - 2) ** 2
    return a * b 

def error(x):
    return -fun(x)

x0 = 1
result = minimize(error, x0)
x = result.x
print("The value of x:")
print(x)
print("The maximum value:")
print(fun(x))
Exercise 10.3: Pairwise distances

import numpy as np 
import scipy as sp 
from scipy.spatial import distance

cities_num = 10
cities_x = np.random.randint(1, 10, (1, cities_num))
cities_y = np.random.randint(1, 10, (1, cities_num))
city_position = np.vstack((cities_x, cities_y))
print("city_position:")
print(city_position)

city_distance = np.zeros((cities_num, cities_num))

for i in range(cities_num):
    for j in range(cities_num):
        if(i == j):
            city_distance[i][j] = 0
        else:
            a = city_position[:, i]
            b = city_position[:, j]
            a = a.reshape(1, -1)
            b = b.reshape(1, -1)
            city_distance[i][j] = distance.euclidean(a, b)

print("city_distance:")
print(city_distance)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值