P-2.2.0 用Python绘制函数图像

在学习数学时,经常希望绘制2/3D的函数图像/图像帮助理解
以下是实现方法:

2D图像:

from matplotlib import pyplot as plt  
import numpy as np  
from mpl_toolkits.mplot3d import axes3d

low=lambda x:10000 if x>10000 else -10000 if x<-10000 else x

f=lambda x:x**5#设计一个函数

start=-10 #输入需要绘制的起始值(从左到右)
stop=10 #输入需要绘制的终点值
step=0.01#输入步长


num=(stop-start)/step #计算点的个数
x = np.linspace(start,stop,num)
y = f(x)

for i in range(len(y)):#再应用一个low函数以防止函数值过大导致显示错误(可选)#若函数无法直接应用到np数组上可以使用for来逐个应用
    y[i]=low(y[i])
z=y

fig=plt.figure(figsize=(6,6))#建立一个对象并设置窗体的大小,使其为正方形,好看 #注意 可以建立多个对象,但plt指令只会对最后一个指定的对象进行操作(查看过源码了)

plt.plot(x, y,label='First Curve')#在当前的对象上进行操作
### 使用 Python 和 VMD 进行机器学习 #### 安装依赖库 为了使用 Python 实现基于变分模式分解 (VMD) 的机器学习算法,需安装一系列必要的软件包。建议使用的版本如下: - `pandas` 版本约为 2.2.0[^2] - `matplotlib` 版本约为 3.8.2[^2] - `numpy` 版本约为 1.26.3 - `tensorflow` 版本约为 2.15.0 - `keras` 版本约为 2.15.0 - `seaborn` 版本约为 0.13.1 - `scikit-learn` 版本约为 1.4.0 - `scipy` 版本约为 1.12.0 - `openpyxl` 版本约为 3.1.2 - `mplcyberpunk` 版本约为 0.7.1 - `qbstyles` 版本约为 0.1.4 - `prettytable` 版本约为 3.9.0 - `xgboost` 版本约为 2.0.3 - `vmdpy` 版本约为 0.2 可以通过 pip 工具来安装上述库。 ```bash pip install pandas==2.2.0 matplotlib==3.8.2 numpy==1.26.3 tensorflow==2.15.0 keras==2.15.0 seaborn==0.13.1 scikit-learn==1.4.0 scipy==1.12.0 openpyxl==3.1.2 mplcyberpunk==0.7.1 qbstyles==0.1.4 prettytable==3.9.0 xgboost==2.0.3 vmdpy==0.2 ``` #### 数据预处理与特征提取 在实际操作中,通常先加载数据集并对其进行初步探索分析。接着利用 VMD 对时间序列执行分解操作,从而获得若干个 IMF(固有模态函数)。此过程有助于揭示隐藏于原始信号内部的不同尺度波动特性。 ```python import numpy as np from vmdpy import VMD # 假设 data 是待处理的一维数组形式的时间序列数据 data = ... alpha = 2000 # 参数 alpha 控制惩罚项强度 tau = 0 # tau 影响噪声鲁棒性的参数设置 K = 5 # K 表示预期分离出来的IMF数量 DC = 0 # DC 分量开关,默认关闭 init = 1 # 初始化方式选择 tol = 1e-7 # 收敛阈值设定 u, u_hat, omega = VMD(data, alpha, tau, K, DC, init, tol) for i in range(K): plt.plot(u[i], label=f'IMF {i+1}') plt.legend() plt.show() ``` 这段代码展示了如何调用 VMD 函数完成对输入数据的多尺度解析,并绘制出各个 IMF 组件图像以便直观观察其形态特点[^1]。 #### 构建 CNN-LSTM 模型架构 构建卷积神经网络(CNN)-长短时记忆(LSTM)混合结构作为预测模型的核心部分。该框架能够有效捕捉局部空间关联性和长期依赖关系,在许多领域展现出优越性能表现。 ```python from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense, Dropout model = Sequential([ Conv1D(filters=64, kernel_size=3, activation='relu', input_shape=(n_timesteps, n_features)), MaxPooling1D(pool_size=2), LSTM(100, return_sequences=True), Dropout(0.2), LSTM(100), Dropout(0.2), Dense(n_outputs) ]) model.compile(optimizer='adam', loss='mse') history = model.fit(X_train, y_train, epochs=epochs, batch_size=batch_size, validation_split=validation_split) ``` 此处定义了一个简单的两层LSTM单元组成的RNN模型,并加入了Dropout机制防止过拟合现象发生;同时前端附加了一组一维卷积层用来自动抽取潜在的空间特征表示。 #### 训练评估及优化调整 训练过程中应密切关注损失变化趋势图以及验证集上的指标反馈情况,据此适时调节超参配置直至达到满意效果为止。此外还可以尝试引入早停策略(Early Stopping),即当连续几轮迭代后测试误差不再下降则提前终止训练流程以节省计算资源开销。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值