我正在网上阅读这篇文章,其中提到使用“if语句”和“abs()”函数会在MATLAB的变步长ODE求解器(如ODE45)中产生负面影响.根据OP,它可以显着影响时间步长(需要太低的时间步长),并且当微分方程最终被积分时给出差的结果.我想知道这是否属实,如果是,为什么.此外,如果不诉诸固定步骤求解器,如何减轻这个问题.我在下面给出了一个示例代码,我的意思是:

function [Z,Y] = sauters(We,Re,rhos,nu_G,Uinj,Dinj,theta,ts,SMDs0,Uzs0,...

Uts0,Vzs0,zspan,K)

Y0 = [SMDs0;Uzs0;Uts0;Vzs0]; %Initial Conditions

options = odeset('RelTol',1e-7,'AbsTol',1e-7); %Tolerance Levels

[Z,Y] = ode45(@func,zspan,Y0,options);

function DY = func(z,y)

DY = zeros(4,1);

%Calculate Local Droplet Reynolds Numbers

Rez = y(1)*abs(y(2)-y(4))*Dinj*Uinj/nu_G;

Ret = y(1)*abs(y(3))*Dinj*Uinj/nu_G;

%Calculate Droplet Drag Coefficient

Cdz = dragcof(Rez);

Cdt = dragcof(Ret);

%Calculate Total Relative Velocity and Droplet Reynolds Number

Utot = sqrt((y(2)-y(4))^2 + y(3)^2);

Red = y(1)*abs(Utot)*Dinj*Uinj/nu_G;

%Calculate Derivatives

%SMD

if(Red > 1)

DY(1) = -(We/8)*rhos*y(1)*(Utot*Utot/y(2))*(Cdz*(y(2)-y(4)) + ...

Cdt*y(3)) + (We/6)*y(1)*y(1)*(y(2)*DY(2) + y(3)*DY(3)) + ...

(We/Re)*K*(Red^0.5)*Utot*Utot/y(2);

elseif(Red < 1)

DY(1) = -(We/8)*rhos*y(1)*(Utot*Utot/y(2))*(Cdz*(y(2)-y(4)) + ...

Cdt*y(3)) + (We/6)*y(1)*y(1)*(y(2)*DY(2) + y(3)*DY(3)) + ...

(We/Re)*K*(Red)*Utot*Utot/y(2);

end

%Axial Droplet Velocity

DY(2) = -(3/4)*rhos*(Cdz/y(1))*Utot*(1 - y(4)/y(2));

%Tangential Droplet Velocity

DY(3) = -(3/4)*rhos*(Cdt/y(1))*Utot*(y(3)/y(2));

%Axial Gas Velocity

DY(4) = (3/8)*((ts - ts^2)/(z^2))*(cos(theta)/(tan(theta)^2))*...

(Cdz/y(1))*(Utot/y(4))*(1 - y(4)/y(2)) - y(4)/z;

end

end

功能“dragcof”由以下内容给出:

function Cd = dragcof(Re)

if(Re <= 0.01)

Cd = (0.1875) + (24.0/Re);

elseif(Re > 0.01 && Re <= 260.0)

Cd = (24.0/Re)*(1.0 + 0.1315*Re^(0.32 - 0.05*log10(Re)));

else

Cd = (24.0/Re)*(1.0 + 0.1935*Re^0.6305);

end

end

matlab if语句解函数,Matlab:if语句和abs()函数在变步长ODE求解器中相关推荐

  1. matlab计算不同时间步长,Matlab ODE求解器中的时间步长计算

    您应该知道步长是动态调整的,没有"步长" . 获得一般简化的想法:总误差E由每个时间步的原子误差组成 . 在第一顺序中,它是求和,更确切地说,存在所涉及的原子误差的某种累积放大率 ...

  2. 关于求解微分方程——初学Matlab里的 ODE求解器

    学习背景 最近想挖掘一下自己项目的理论深度,于是找到了老师.在老师的建议下,我们开始了漫长的研读老师的论文的旅程(论文名:Optimal Design of Adaptive Robust Contr ...

  3. matlab求解器是什么,Matlab理解ode求解器

    我有一个链接微分方程组,我用ode23求解器求解 . 当达到某个阈值时,其中一个参数会改变,这会改变我的函数的斜率 . 我使用调试功能跟踪了ode的行为,并注意到它在这个点附近开始跳回"时间 ...

  4. imu matlab,IMU姿态解算matlab

    [实例简介] IMU姿态解算matlabIMU姿态解算matlabIMU姿态解算matlab [实例截图] [核心代码] GaitTrackingWithx-IMU └── Gait Tracking ...

  5. matlab ode 实例,选择 ODE 求解器

    参考 [1] Shampine, L. F. and M. K. Gordon, Computer Solution of Ordinary Differential Equations: the I ...

  6. Matlab优化求解器中的Tolerances and Stopping Criteria

    文章目录 何为tolerance 主要的tolerance 何为tolerance The number of iterations in an optimization depends on a s ...

  7. 相位解包裹 matlab,二维相位解包裹matlab

    第39卷第3期2015年5月 激 光 技 术LASERTECHNOLOGY Vol.39,No.3May,2015 文章编号: 1001-3806(2015)03-0423-05 相位解包裹中欠采样问 ...

  8. matlab bvp4c猜测解,对具有两个解的 BVP 求解

    编写方程代码 创建一个函数以编写方程代码.此函数应具有签名 dydx = bvpfun(x,y) 或 dydx = bvpfun(x,y,parameters),其中: x 是自变量. y 是解(因变 ...

  9. matlab求微分方程同届,matlab求微分方程精确解及近似解.ppt

    matlab求微分方程精确解及近似解 求微分方程的解 问题背景和实验目的 Euler 折线法 初值问题的Euler折线法 Euler 折线法举例 Euler 折线法源程序 Euler折线法举例(续) ...

最新文章

  1. PHP面向对象(OOP):抽象方法和抽象类(abstract)
  2. hdu4740 Sum
  3. 两个半小时,一份Python基础试卷,满分100,却有80%的人都不及格
  4. 用户运营平台产品设计指南
  5. [实践系列]Promises/A+规范
  6. 云端研发新基建:Serverless与持续架构服务落地实践
  7. java隐藏与覆盖_Java 隐藏和覆盖
  8. 基于JAVA+SpringBoot+Mybatis+MYSQL的疾病报销管理系统
  9. 波及1.95亿辆车,黑莓承认系统存在漏洞,大众、宝马纷纷“躺枪”
  10. VS2010/MFC设置对话框控件的Tab顺序
  11. php curl get post请求
  12. mysql互为主从有什么问题吗_mysql 互为主从复制常见问题
  13. Mac Sublime Text 3插件安装
  14. LabVIEW参考资料汇总
  15. 一键清空服务器文件,一键清理操作系统垃圾文件的BAT
  16. 斑马打印机linux驱动安装教程,linux-Zebra软件包的基本安装与配置
  17. arcgis for javascript 4.18 添加图片到地图(可用于实现雷达图片上图)
  18. Deep Mutual Learning
  19. 使用Python,OpenCV获取、更改像素,修改图像通道,剪裁ROI
  20. mysql error unpacking_linux 安装 mysql rpm包出现error: unpacking of archive failed on file

热门文章

  1. 机器学习基础:朴素贝叶斯分类器及其应用示例
  2. 孕妇练功法——三线放松功
  3. JQuery-weui city-picker动态加载数据
  4. 飞天诚信(ROCKEY 4)加密狗的特点介绍。
  5. 关于在keil工程中找不到函数定义的问题
  6. 2020年最好用的6款内容收集整理利器,打造个人/团队知识库
  7. VQA 2.0数据集的学习和使用过程
  8. 老婆饼就是老婆,会计就是财务
  9. 数据中心SDN网络、VXLAN、虚拟化之间的关系和概念
  10. 计算机桌面管控系统,金盾桌面安全管理系统