维纳过程模型:
- 退化模型:
其中,为drift coef,
为diffusion coef ,
为标准布朗运动
- 状态空间方程:
kalman滤波
- 算法细节:
- 代码实现 :
import matplotlib.pyplot as plt
from math import pi
import numpy as np
from numpy import log, exp, sqrt
from numpy.random import normal, randn
def kalman_filter_for_weiner_process(t, X):
''''X is an array'''
n_samples = len(X)
_size = n_samples + 5
sigma2 = 10 # difussion coef
Q = 10 # drift noise variation
K = np.zeros(_size)
P = np.ones([_size,_size]) # P0 = 1
λ_hat = np.zeros(_size) # a0 = 1
y_pred = np.zeros(_size)
for i in np.arange(0, n_samples):
if i == 0:
y_pred[i] = X[i]
else:
# Prediction (expectation)
P[i][i-1] = P[i-1][i-1] + Q
K[i] = (t[i] - t[i-1])**2 * P[i][i-1] + sigma2 * (t[i] - t[i-1]) # kalman 增益
λ_hat[i] = λ_hat[i-1] + P[i][i-1] * (t[i] - t[i-1]) * (X[i] - X[i-1] - λ_hat[i-1] * (t[i] - t[i-1])) / K[i]
# Correction (variance)
P[i][i] = P[i][i-1] - P[i][i-1] * (t[i] - t[i-1])**2 / K[i] * P[i][i-1]
# 基于更新后的λ_hat进行下一步的预测
y_pred[i] = y_pred[i-1] + λ_hat[i] * (t[i] - t[i-1])
print(f"λ_hat:{λ_hat[i]},P:{P[i][i]}")
plt.scatter(t,X, color = 'blue')
plt.plot(t,X, color = 'blue', label = 'actual')
plt.plot(t, y_pred[:len(t)], color = 'red', label='kalman')
plt.scatter(t, y_pred[:len(t)], color = 'red')
print(y_pred)
print(λ_hat)
print(X)
plt.legend()
# data
t = np.arange(1,15)
X = np.sin(np.arange(1,15)) * 100
kalman_filter_for_weiner_process(t, X)
- 输出结果:
改进的kalman滤波
- 算法细节:
- 代码实现:
import matplotlib.pyplot as plt
from math import pi
import numpy as np
from numpy import log, exp, sqrt
from numpy.random import normal, randn
def strong_tracking_kalman_filter_for_weiner_process(t, X):
''''X is an array'''
n_samples = len(t)
_size = n_samples + 5
print("n_samples:", n_samples)
sigma2 = 10 # difussion coef
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/156afa94da35b3d5278dcc9419558d89.png)
![img](https://img-blog.csdnimg.cn/img_convert/8b2fa8807a651d57ce78d76953776340.png)
![](https://img-blog.csdnimg.cn/img_convert/46506ae54be168b93cf63939786134ca.png)
![](https://img-blog.csdnimg.cn/img_convert/252731a671c1fb70aad5355a2c5eeff0.png)
![](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)
![](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)**
![img](https://img-blog.csdnimg.cn/img_convert/89a72dba3292a7145389474df6968429.png)
### 最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
![](https://img-blog.csdnimg.cn/d29631674929476f9c3b30f7ff58dff0.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA==,size_16,color_FFFFFF,t_70)
7ff58dff0.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA==,size_16,color_FFFFFF,t_70)