python课程作业——scipy

这里写图片描述
这里写图片描述

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
# 10-1 reference: https://docs.scipy.org/doc/scipy-1.1.0/reference/tutorial/linalg.html
from scipy.linalg import lstsq
m = 10
n = 5
A = np.random.randint(10, size=(m ,n))
b = np.random.randint(10, size=m)
x, residual, rank, s = lstsq(A, b)
print('A =', A)
print('x =', x)

print('A*x =', A.dot(x))
print('b =', b)
print('residual =', residual)
A = [[7 0 6 0 5]
 [8 1 7 0 1]
 [7 0 5 3 0]
 [0 6 3 9 6]
 [6 2 2 3 7]
 [6 4 9 0 4]
 [8 7 0 1 3]
 [0 2 1 8 6]
 [8 0 9 6 1]
 [7 3 0 4 7]]
x = [-0.21398376 -0.22535051  0.54616875  0.08852853  0.55954735]
A*x = [ 4.57686293  2.44550802  1.49854304  4.44044405  3.54015095  4.96840354
 -1.52215309  4.16098006  4.29436723  2.0970077 ]
b = [9 3 2 5 0 3 0 6 3 1]
residual = 45.42120287262695
# 10-2 reference: https://docs.scipy.org/doc/scipy-1.1.0/reference/generated/scipy.optimize.minimize_scalar.html#scipy.optimize.minimize_scalar
from scipy.optimize import minimize_scalar

def f(x):
    return np.sin(x-2)**2 * np.exp(-x**2)
x_max = minimize_scalar(lambda x: -f(x)).x
print('x_max = ', x_max)
x = np.arange(0, 2, 0.001)
plt.plot(x, f(x), 'b-', label='$\sin^2(x-2)e^{-x^2}$')
plt.plot(x_max, f(x_max), 'ro', label='x_max')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.legend()
plt.show()
x_max =  0.21624132858697098

这里写图片描述

# 10-3 reference: https://docs.scipy.org/doc/scipy-1.1.0/reference/spatial.distance.html
from scipy.spatial.distance import pdist, squareform
n = 6
m = 2
X = np.random.randint(10, size=(n, m))
print(X)
print(squareform(pdist(X)))
[[9 9]
 [5 7]
 [6 6]
 [0 9]
 [8 1]
 [6 9]]
[[ 0.          4.47213595  4.24264069  9.          8.06225775  3.        ]
 [ 4.47213595  0.          1.41421356  5.38516481  6.70820393  2.23606798]
 [ 4.24264069  1.41421356  0.          6.70820393  5.38516481  3.        ]
 [ 9.          5.38516481  6.70820393  0.         11.3137085   6.        ]
 [ 8.06225775  6.70820393  5.38516481 11.3137085   0.          8.24621125]
 [ 3.          2.23606798  3.          6.          8.24621125  0.        ]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
python作业 一、Turtle创意大PK 自拟题目,完成一个利用Python程序的创意绘图,采用turtle库绘图为主,不少于50行代码,可选采用其他库。 (滑稽绘制) 二、程序练习 2.1 问题描述(10分) 人们常常提到"一万小时定律",就是不管你做什么事情,只要坚持一万小时,应该都可以成为该领域的专家。那么,10000小时是多少年多少天呢? 2.2 问题描述(10分)0380031003800341590145037657 编写计算从n到m和的函数‬,函数名为sum(n,m)‬,函数返回值为n到m所有数据的和‬,使用该函数计算输入数据x,y之间所有数据的和。 2.3 问题描述(15分) 编写函数judgeTri(a,b,c),判断以参数a,b,c的值为边长能否构成三角形并判断三角形的形状;若是锐角三角形,返回R;若是直角三角形,返回Z;若是钝角三角形,返回D;若三边长不能构成三角形,返回ERROR。 2.4 问题描述(15分) 用户输入一个字符串,分别统计其中小写字母、大写字母、数字、空格和其他字符的个数,并在一行内输出小写字母、大写字母、数字、空格和其他字符的个数。 2.5 问题描述(20分) 程序的功能: (1) 使用随机库功能,生成一个包含10个不重复且小于200的正整数列表ls1,输出ls1。‬ (2) 使用列表排序方法,对ls1按奇数在前偶数在后,并且奇数之间的相对顺序不变,偶数之间的相对顺序也不变进行排序,再输出ls1。‬ (3) 使用列表排序方法,对ls1按元素字符长度降序进行排序,输出ls1。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值