二维变概率问题的Matlab GUI设计

  • 一.方程的基本形式
  • 二.基本框架的搭建
  • 三.关键函数

一.方程的基本形式

a(P)∂2u∂x2+b(P)∂2u∂y2+c(P)∂u∂x+d(P)∂u∂y+e(P)u(P)=q(P),p∈Du(Q)=f(Q),Q∈Γ=∂Da(P)\frac{\partial ^2u}{\partial x^2}+b(P)\frac{\partial ^2u}{\partial y^2}+c(P)\frac{\partial u}{\partial x}+d(P)\frac{\partial u}{\partial y}+e(P)u(P) = q(P),p\in D\\ u(Q) = f(Q),Q\in\Gamma = \partial D a(P)∂x2∂2u​+b(P)∂y2∂2u​+c(P)∂x∂u​+d(P)∂y∂u​+e(P)u(P)=q(P),p∈Du(Q)=f(Q),Q∈Γ=∂D
若a(P),b(P)>0,e(P)≤0a(P),b(P)>0,e(P)\leq 0a(P),b(P)>0,e(P)≤0求u(P),p∈Du(P),p\in Du(P),p∈D的数值解。

解法参考

二.基本框架的搭建

三.关键函数

随机游走函数:

function [uFinal,zeta,FirstPx,FirstPy,u] = possionRandomChangeGUI(xPoint,yPoint,a,b,c ,d ,e,q,f,Constrain,h,N)
%UNTITLED 求a = 1/4;b = 1/8;c = 1/2;d = 1/2;e = 0;q = x+2y+1 在u(L) = 2边界条件
%   [xPoint,yPoint]表示该点坐标,h仿真步长,N仿真次数
u = zeros(1,N);
W = @(x,y)(1-h^2*e(x,y)/(2*(a(x,y)+b(x,y))))^(-1);
Z = @(x,y)(q(x,y)/(a(x,y)+b(x,y)));
for i = 1:NsumV = 0;xValue = xPoint;yValue = yPoint;P = [xValue ,yValue];Ws = 1;%以下是游走过程while(1)if Constrain(xValue,yValue)>0P = [P;xValue,yValue];break;endA = (2*a(xValue,yValue)+h*c(xValue,yValue))/(4*(a(xValue,yValue)+b(xValue,yValue)));B = (2*a(xValue,yValue)-h*c(xValue,yValue))/(4*(a(xValue,yValue)+b(xValue,yValue)));C = (2*b(xValue,yValue)+h*d(xValue,yValue))/(4*(a(xValue,yValue)+b(xValue,yValue)));D = (2*b(xValue,yValue)-h*d(xValue,yValue))/(4*(a(xValue,yValue)+b(xValue,yValue)));randNumber = randsrc(1,1,[[0 1 2 3];[A C B D]]);switch (randNumber)case 0xValue = xValue + h;yValue = yValue;case 1xValue = xValue ;yValue = yValue + h;case 2xValue = xValue - h ;yValue = yValue ;    case 3xValue = xValue;yValue = yValue - h;endP = [P;xValue,yValue];end%以下是画图过程if i == 1FirstPx = P(:,1);FirstPy = P(:,2);end%以下是计算过程[m,n] = size(P);for j = 1:m-1Ws = Ws*W(P(j,1),P(j,2));sumV = sumV + Ws*Z(P(j,1),P(j,2));endzeta(i) = -h^2/2*sumV + Ws*f(P(m,1),P(m,2));u(i) = sum(zeta(1:i))/i;
end
uFinal = u(N);
% xlabel('次数');
% ylabel('进化曲线');
% title('收敛过程');
end

两个按键的回调函数:

% --- Executes on button press in walk.
function walk_Callback(hObject, eventdata, handles)
% hObject    handle to walk (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
af = str2func(get(handles.a,'String'));
bf = str2func(get(handles.b,'String'));
cf = str2func(get(handles.c,'String'));
df = str2func(get(handles.d,'String'));
ef = str2func(get(handles.e,'String'));
qf = str2func(get(handles.q,'String'));
hn = str2num(get(handles.h,'String'));
ff = str2func(get(handles.f,'String'));
Areaf = str2func(get(handles.Area,'String'));
xLP = str2num(get(handles.xL,'String'));
yLP = str2num(get(handles.yL,'String'));
N = str2num(get(handles.N,'String'));
[uFinal,zeta,FirstPx,FirstPy,u] = possionRandomChangeGUI(xLP,yLP,af,bf,cf ,df ,ef,qf,ff,Areaf,hn,N);
set(handles.uxy,'String',num2str(uFinal));
axes(handles.Imag1);
plot(FirstPx,FirstPy,'b.-');
xlabel('x');
ylabel('y');
title('第一次的轨迹');% --- Executes on button press in breakUp.
function breakUp_Callback(hObject, eventdata, handles)
% hObject    handle to breakUp (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
af = str2func(get(handles.a,'String'));
bf = str2func(get(handles.b,'String'));
cf = str2func(get(handles.c,'String'));
df = str2func(get(handles.d,'String'));
ef = str2func(get(handles.e,'String'));
qf = str2func(get(handles.q,'String'));
hn = str2num(get(handles.h,'String'));
ff = str2func(get(handles.f,'String'));
Areaf = str2func(get(handles.Area,'String'));
xLP = str2num(get(handles.xL,'String'));
yLP = str2num(get(handles.yL,'String'));
N = str2num(get(handles.N,'String'));
[uFinal,zeta,FirstPx,FirstPy,u] = possionRandomChangeGUI(xLP,yLP,af,bf,cf ,df ,ef,qf,ff,Areaf,hn,N);
axes(handles.Imag1);
plot(1:N,u,'r-');
xlabel('次数');
ylabel('进化曲线');
title('收敛过程');
set(handles.uxy,'String',num2str(uFinal));

随机游走问题的神奇应用(三)相关推荐

  1. 随机游走问题的神奇应用(二)

    变概率椭圆型方程的第一边值问题的随机游走求解 一.问题的提出 二.问题的分析 三.模型的推广 四.问题的求解 一.问题的提出 a(P)∂2u∂x2+b(P)∂2u∂y2+c(P)∂u∂x+d(P)∂u ...

  2. 随机游走问题的神奇应用(一)

    泊松方程的随机游走求解 一.问题的提出 二.问题的求解 三.代码求解 可以用monteCarlo方法构建一个随机游走过程来求解偏微分方程. 一.问题的提出 ​ 求解二维泊松方程的第一边值问题如下: ∂ ...

  3. 时间序列举例--------协方差+相关系数+随机游走+平稳性

    一. 时间序列的影响因素 (1) 长期趋势-------------这个是进行预测的三原则之一 (2) 循环变动或周期性----------------------预测的三原则之一 (3)季节性变动- ...

  4. KDD 2019 | 结合属性随机游走的图递归网络

    今天给大家介绍德克萨斯A&M大学的Xiao Huang等人在KDD 2019发表的一篇文章"Graph Recurrent Networks with Attributed Rand ...

  5. 加速度随机游走_IMU Noise Model

    1.参考资料 2.相关定义 高斯白噪声 概率上服从高斯分布,一阶矩(均值)是常数,二阶矩(方差)无关即时域上不同时刻的信号时不相关的噪声:或者说噪声的瞬时值服从高斯分布(高斯),功率谱密度又是均匀分布 ...

  6. 基于随机游走的图嵌入之快速指南

    1. 背景 1.1 何为图嵌 图嵌入是利用节点属性.节点间拓扑关系将复杂.高维图数据进行向量化的一项技术. 图数据结构突破传统数据库按记录组织数据的限制,具备更灵活的现实数据建模能力.如何将图数据结构 ...

  7. 图机器学习 | 图信号处理、矩阵分解、随机游走和深度学习算法

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:专知 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 图是连 ...

  8. [转载] 随机游走和随机重启游走_网络动画API的随机游走

    参考链接: 随机游走(Python实现) 随机游走和随机重启游走 I'm currently writing a demo that will use a small repeated random ...

  9. 随机系统(stochastic systems)——以随机游走为例

    目录 文章目录 一杯咖啡是随机的吗? 随机游走与扩散 扩散定律是普适的 摩擦与扩散是一对双胞胎--爱因斯坦关系 爱因斯坦关系溯源--涨落耗散定理 一杯咖啡是随机的吗? 生活中有许多例子是牛顿力学基本能 ...

最新文章

  1. 11旋转编码器原理_科普小知识:八分钟了解电机编码器!
  2. Linux 搜索指令
  3. Addr、@运算符与Pointer类型
  4. matlab 获取系统时间now,date
  5. linux下的安装命令行工具下载,linux系统程序安装(二)yum工具2-yum源及包下载
  6. SCL定时 1500_iPhone12开售当天黄牛加价1500,哪里买最划算?
  7. duilib设置透明窗口_界面开发心得与Duilib | 学步园
  8. Angular6_PWA
  9. 旧调重弹-SetUnhandledExceptionFilter的使用问题
  10. 6-7Pytorch搭建cifar10训练脚本(下)
  11. 【Java】位运算符:左移右移
  12. CSS光标属性一览表
  13. MySQL不同数据类型如何表示_MySQL系列(二)--数据类型
  14. 想起“不能什么都是你来干”
  15. 魅蓝note3 android操作系统,魅族魅蓝Note3的内存容量是多少
  16. 100个Java实战项目视频+代码+笔记
  17. 20套莫兰迪灰色调LR预设/手机版APP滤镜合集 VEER 2020 Bundle 78in1
  18. 【转载】【常见缺陷分析技术】ODC缺陷分析法
  19. [每日100问][2011-10-06]iphone开发笔记,今天你肿了么
  20. 给手机安装sqlite3

热门文章

  1. SCI投稿中的简写(ADM,AE,EIC等)与状态解读
  2. Python中容易忽视的知识点
  3. 感想篇:11)只怀了1/4的才是不够的
  4. java 格式化字符串
  5. 关于windows CE Platform Builder中模拟器的限制
  6. 解除工作压力的四大疗法
  7. Cpp STL - vector常用语法
  8. python项目实战:模拟登陆CSDN
  9. 缓存装饰器的应用习题练习
  10. 独角访谈 | 去中心化交易所领军人物–Loi Luu