简单随机微分方程数值解

1.随机微分方程求解:dX(t) =− αXtdt + σdWt

法一:Euler-Maruyama
在这里插入图片描述

%%
%O-U过程
%dX(t)=-alpha*Xt*dt+sigma*dWt,X|t=0=X0
%alpha=2,sigma=1,X0=1
% 设置初始参数
T = 1;                 % 时间区间长度
N = 1000;              % 离散化的时间步数
dt = T/N;              % 时间步长
X = zeros(1,N+1);      % 存储解向量
X(1) = 1;              % 初始条件
alpha = 2;
sigma = 1;

% 模拟数值解
for i = 1:N
    dW = sqrt(dt)*randn();       % 标准正态分布增量
    X(i+1) = X(i) - alpha*X(i)*dt + sigma*dW;   % 欧拉方法更新
end

% 绘图
plot(linspace(0,T,N+1),X,'*-')   % 根据时间步长将x轴离散化
xlabel('t')
ylabel('X(t)')
title('随机微分方程数值解')
legend('Euler数值解')

在这里插入图片描述
法二:Milstein
在这里插入图片描述
在这里插入图片描述

% 设置参数
alpha = 2;
sigma = 1;
X0 = 1;
T = 1;
N = 1000;
dt = T/N;

% 初始化向量和随机项
t = 0:dt:T;
W = [0,cumsum(randn(1,N).*sqrt(dt))];
%使用cumsum函数生成一个与t等长的Wiener过程(随机项)

% 初始化X
X = zeros(1,N+1);
X(1) = X0;

% Milstein方法计算X
for i = 1:N
    dW = W(i+1) - W(i);
    X(i+1) = X(i) - alpha*X(i)*dt + sigma*X(i)*dW ...
             + 0.5*sigma^2*X(i)*(dW^2-dt);
    %在Milstein方法中,我们需要对二次变差数进行估计
    %因此在计算时需要添加正交项0.5*sigma^2*X(i)*(dW^2-dt)
end

% 绘制图形
plot(t,X,'*-')
title('随机微分方程数值解')
xlabel('t')
ylabel('X(t)')
legend('Milstein数值解')

在这里插入图片描述

2.受高斯白噪声激励的系统,FPK求解

考虑一个由下列方程支配的随机激励的单自由度振子:
X ¨ + h ( X , X ˙ ) = X W 1 ( t ) + X ˙ W 2 ( t ) + W 3 ( t ) \ddot{X}+h(X,\dot{X})=XW_{1}(t)+\dot XW_{2}(t)+W_{3}(t) X¨+h(X,X˙)=XW1(t)+X˙W2(t)+W3(t)
其中, h ( X , X ˙ ) h(X,\dot X) h(X,X˙)表示阻尼力和恢复力, W l ( t ) , l = 1 , 2 , 3 W_{l}(t),l=1,2,3 Wl(t),l=1,2,3是独立的高斯白噪声,其相关函数为 E [ W l ( t ) W s ( t + τ ) ] = 2 π K l s δ l s δ ( τ ) E[W_{l}(t)W_{s}(t+\tau)]=2\pi K_{ls} \delta_{ls}\delta(\tau) E[Wl(t)Ws(t+τ)]=2πKlsδlsδ(τ)
这里, δ l s \delta_{ls} δls δ ( τ ) \delta(\tau) δ(τ)不一样,前者是克罗内克(Kronecker) δ \delta δ,即 δ l s = 1 , l = s ; δ l s = 0 , l ≠ s . \delta_{ls}=1,l=s;\delta_{ls}=0,l\neq s. δls=1,l=s;δls=0,l=s. δ ( τ ) \delta(\tau) δ(τ)是狄拉克函数, δ = ∞ , τ = 0 ; δ = 0 , τ ≠ 0. \delta=\infty, \tau=0;\delta=0,\tau \neq 0. δ=,τ=0;δ=0,τ=0.

X 1 = X , X 2 = X ˙ X_{1}=X,X_{2}=\dot{X} X1=X,X2=X˙可转换状态空间的两个方程
X ˙ 1 = X 2 \dot{X}_{1}=X_{2} X˙1=X2
X ˙ 2 = − h ( X 1 , X 2 ) + X 1 W 1 ( t ) + X 2 W 2 ( t ) + W 3 ( t ) \dot{X}_{2}=-h(X_{1},X_{2})+X_{1}W_{1}(t)+X_{2}W_{2}(t)+W_{3}(t) X˙2=h(X1,X2)+X1W1(t)+X2W2(t)+W3(t)

对于 d d t X ( t ) = f ( X , t ) + g ( X , t ) W ( t ) \frac{d}{dt}X(t)=f(X,t)+g(X,t)W(t) dtdX(t)=f(X,t)+g(X,t)W(t)
相应的FPK方程为 ∂ ∂ t p + ∑ j = 1 n ∂ ∂ x j ( a j p ) − 1 2 ∑ j , k = 1 n ∂ 2 ∂ x j ∂ x k ( b j k p ) = 0 \frac{\partial }{\partial t}p+\sum_{j=1}^{n}\frac{\partial }{\partial x _{j}}(a_{j}p)-\frac{1}{2}\sum_{j,k=1}^{n}\frac{\partial ^{2}}{\partial x_{j}\partial x_{k}}(b_{jk}p)=0 tp+j=1nxj(ajp)21j,k=1nxjxk2(bjkp)=0
其中,一、二阶导数矩为 a j ( x , t ) = f j ( x , t ) + π ∑ r = 1 n ∑ l , s = 1 m K l s g r s ( x , t ) ∂ ∂ x r g j l ( x , t ) a_{j}(\mathbf{x},t)=f_{j}(\mathbf{x},t)+\pi\sum_{r=1}^{n}\sum_{l,s=1}^{m}K_{ls}g_{rs}(\mathbf{x},t)\frac{\partial }{\partial x_{r}}g_{jl}(\mathbf{x},t) aj(x,t)=fj(x,t)+πr=1nl,s=1mKlsgrs(x,t)xrgjl(x,t),
b j k ( x , t ) = 2 π ∑ l , s = 1 m K l s g j l ( x , t ) g k s ( x , t ) b_{jk}(\mathbf{x},t)=2\pi\sum_{l,s=1}^{m}K_{ls}g_{jl}(\mathbf{x},t)g_{ks}(\mathbf{x},t) bjk(x,t)=2πl,s=1mKlsgjl(x,t)gks(x,t)

由此可以得出, f 1 = x 2 , f 2 = − h ( x 1 , x 2 ) f_{1}=x_{2},f_{2}=-h(x_{1},x_{2}) f1=x2,f2=h(x1,x2), g 1 j = 0 ( j = 1 , 2 , 3 ) g_{1j}=0(j=1,2,3) g1j=0(j=1,2,3)
g 21 = x 1 , g 22 = x 2 , g 23 = 1 g_{21}=x_{1},g_{22}=x_{2},g_{23}=1 g21=x1,g22=x2,g23=1, n = 2 , m = 3 n=2,m=3 n=2,m=3.
则一、二阶导数矩:
a 1 = x 2 , a 2 = − h ( x 1 , x 2 ) + π K 22 x 2 a_{1}=x_{2},a_{2}=-h(x_{1},x_{2})+\pi K_{22}x_{2} a1=x2,a2=h(x1,x2)+πK22x2
b 11 = 0 , b 12 = 0 , b 21 = 0. b 22 = 2 π K 11 x 1 2 + 2 π K 22 x 2 2 + 2 π K 33 . b_{11}=0,b_{12}=0,b_{21}=0.b_{22}=2\pi K_{11}x_{1}^{2}+2\pi K_{22}x_{2}^{2}+2\pi K_{33}. b11=0,b12=0,b21=0.b22=2πK11x12+2πK22x22+2πK33.
从而得到FPK方程:
∂ ∂ t p + ∂ ∂ x 1 ( x 2 p ) + ∂ ∂ x 2 { [ ( − h ( x 1 , x 2 + π K 22 x 2 ] p } − π ∂ 2 ∂ x 2 2 [ ( K 11 x 1 2 + K 22 x 2 2 + K 33 ) p ] = 0 \frac{\partial}{\partial t}p+\frac{\partial}{\partial x_{1}}(x_{2}p)+\frac{\partial}{\partial x_{2}}\left \{ [(-h(x_{1},x_{2}+\pi K_{22}x_{2}]p \right \}-\pi \frac{\partial ^{2}}{\partial x_{2}^{2}}[(K_{11}x_{1}^{2}+K_{22}x_{2}^{2}+K_{33})p]=0 tp+x1(x2p)+x2{[(h(x1,x2+πK22x2]p}πx222[(K11x12+K22x22+K33)p]=0.

相应的也可以得到Stratonovich或Ito方程,它们得到的FPK方程都和上式一致。

在这里插入图片描述
在这里插入图片描述

3.绘制随机微分方程概率密度曲线

在这里插入图片描述

%(b)
clc;clear;
% 定义需要绘制的变量和参数
t_values = linspace(0.01, 5, 100); % 在t轴上均匀采样100个点,保证不会出现除数为0的情况
x_values = linspace(-5, 5, 200); % 在x轴上均匀采样200个点
[x_mesh, t_mesh] = meshgrid(x_values, t_values); % 创建网格

% 计算概率密度函数
p = (1./sqrt(2*pi.*t_mesh)).*cosh(x_mesh).*exp(-0.5./t_mesh).*exp(-(x_mesh.^2)./(2*t_mesh));

% 绘制演化图
mesh(x_mesh, t_mesh, p); % 使用surf函数绘制三维曲面图
xlabel('x'); ylabel('t'); zlabel('p(x,t)'); % 添加轴标签
title('Probability Density Evolution'); % 添加标题

在这里插入图片描述

在这里插入图片描述
未完待续…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/19572.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

创作星-创意大爆发!AI文案生成器让创作轻松快捷,轻松撰写出热门标题。

一、创作星-创意大爆发!AI文案生成器让创作轻松快捷,轻松撰写出热门标题。 ✨使用“创作星”,让AI帮你生成惊艳的文案! ✨创意大爆发!AI文案生成器让创作轻松快捷,轻松撰写出热门标题。 ✨AI文案神器&…

你有了一套采购系统,就数字化转型了吗?

我觉得完全没有达到,我们觉得要把这个系统要应用起来,用得好才能够说明你这个系统真正地做了数字化转型的。 甄云作为采购数字化服务商,在服务客户时,深有感触。 流程断点,但没有充分采购数字化价值 我这边讲一个故事…

【Queue新技法】用双数组实现一个队列 C++

目录 1 常规的队列构建2 加入一些限制2-1形式化说明2-2 优化:平衡队列 附录0 双数组或双链表实现队列1 单链表与循环缓冲区实现队列3 参考资料 1 常规的队列构建 到火车站办理退票,排队的人构成队列。注意到有两个关键动作: 入队&#xff0c…

Linux-初学者系列7_shell编程

在进行服务器集群管理时,需要编写shell程序来进行服务器管理。 shell是一个命令行解释器,他会为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户用shell启动、挂起、停止和编写一些程序。 Linux-初学者系列7_shell编程…

股票量价关系基础知识7----图解各阶段量价关系:价涨量缩

图解各阶段量价关系:价涨量缩 价涨量缩是指股价上涨,成交量却萎缩的一种价量背离走势。它通常反映上涨力道不足,预示股价可能反转向下。 一、上涨初期的价涨量缩 (一)形态分析 股价经过一轮下跌后止跌回升&#xff0c…

VolSDF

Volume Rendering of Neural Implicit Surfaces(VolSDF):神经隐式曲面的体渲染 摘要:一个神经隐式表面体积渲染框架,将体积密度建模为几何形状的函数来实现表面重建。定义的体积密度函数作为拉普拉斯的累积分布函数&am…

( 位运算 ) 190. 颠倒二进制位 ——【Leetcode每日一题】

❓190. 颠倒二进制位 难度:简单 颠倒给定的 32 位无符号整数的二进制位。 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型&a…

看大老如何用Postman+Jmeter实现接口实例

一、接口基础 为什么要单独测试接口? 1. 程序是分开开发的,前端还没有开发,后端已经开发完了,可以提前进入测试 2. 接口直接返回的数据------越底层发现bug,修复成本是越低的 3. 接口测试能模拟功能测试不能测到的异常…

Baklib知识库搭建平台产品操作手册

产品概述 Baklib是一款专业的知识库搭建平台,它帮助客户搭建内部知识库和对外帮助中心。在今天的信息时代,知识已经成为组织的核心竞争力,而Baklib正是为了帮助组织构建完整的知识体系,提高组织的核心竞争力而生。 Baklib具有以…

程序进制换算

进制数介绍 一、进制介绍 二进制 :0或1,满2进1,以0B或者0b开头,如 0b1101 八进制:0-7,满8进1,,以0开头,如0234 十进制:0-9,满10进1,…

阿里云服务器建站教程(5分钟网站上线)

使用阿里云服务器快速搭建网站教程,先为云服务器安装宝塔面板,然后在宝塔面板上新建站点,阿里云服务器网以搭建WordPress网站博客为例,来详细说下从阿里云服务器CPU内存配置选择、Web环境、域名解析到网站上线全流程: …

CLion安装(详细步骤+截图)

目录 一、CLion-2021.1.3.exe 下载 二、运行环境mingw-w64压缩包下载 三、 安装插件 ---- ide-eval-resetter-2.1.13压缩包下载 一、CLion-2021.1.3.exe 下载 Other Versions - CLion (jetbrains.com) 1、下载 2、更改路径 (不要放在含有中文的路径下&a…

Qt+WebRTC学习笔记(七)ubuntu22.04下搭建coturn(STUN/TURN)

前言 因工作原因,很长时间没更新相关文档了,笔者之前测试时,一直使用示例自带的公网中转服务器。考虑到后期项目需要,笔者在线搭建一个coturn服务器测试,供有需要的小伙伴使用 一、安装coturn 若需要最新版本的cotu…

如何通过appuploader把ipa文件上传到App Store教程步骤

​ iOS APP上架App Store其中一个步骤就是要把ipa文件上传到App Store!​ 下面进行步骤介绍!​ 利用Appuploader这个软件,可以在Windows、Linux或Mac系统中申请ios和上传IPA到App Store Connect。​ 非常的方便,没有Mac也可以…

tiechui_lesson08_内存的分配和链表

主要是将链表结构的使用,在内核开发中使用起来比较方便的一种数据结构【LIST_ENTRY】。 一、内存的分配 主要是学习一些基本操作。现在推荐使用的动态分配函数【ExAllocatePoolWithTag】 PVOID tempbuffer ExAllocatePoolWithTag(NonPagedPool, 0x1000, xxaa); …

APP外包项目的线上维护方案

APP的使用已经非常普及,不论是2C还是2B的APP都已经渗透到了我们生活的方方面面,对于APP的开发公司来说APP项目的线上维护是一个非常重要的问题。如果APP项目比较重要而且用户规模比较大,那更需要专业的技术团队来维护。今天和大家分享这方面的…

计算机网络-SNMP协议与pysnmp

1.概念 2.典型架构 3.snmp的信息交互 4.MIB 4.1常见MIB节点 5.SNMP管理模型 MIB位于被管理进程 6.SNMP的三个版本 6.1 SNMPv1 6.2 SNMPv2C 6.3 SNMPv3 6.3.1 SNMP3的基本操作 6.3.2 SNMP交互GET 6.3.3 SNMP交互-GETBULK 6.3.4 SNMP交互-SET 6.3.5 SNMP交互-trap 6.3.6 SNMP交…

【技术干货】PCB焊盘设计之问题详解

SMT的组装质量与PCB焊盘设计有直接的关系,焊盘的大小比例十分重要。如果PCB焊盘设计正确,贴装时少量的歪斜可以再次回流焊纠正(称为自定位或自校正效应),相反,如果PCB焊盘设计不正确,即使贴装位置十分准确,…

【 图像水印 2019 CVPR】 StegaStamp 论文翻译

【 图像水印 2019 CVPR】 StegaStamp 论文翻译 论文题目:StegaStamp: Invisible Hyperlinks in Physical Photographs 中文题目:物理照片中不可见的超链接 论文链接:https://arxiv.org/abs/1904.05343 论文代码:https://github.co…

Linux内核架构和工作原理

**前言:**作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的。Linux进程1.采用层次结构,每个进程都依赖于一个父进程。内…