我正在使用刚性求解器(ode15s)对ODE系统进行时间积分。它工作正常,但我想加快速度。

方程组以状态空间形式给出:

function [dx] = fun(t,x,M,C,K,other_parameters)

% Mx'' + Cx' + Kx = F(t)

% BUNCH OF CALCULATIONS

F = solveP(x,t);

A = [zeros(n) eye(n) ; -M\K -M\C];

b = M\F;

dx = A*x + b

end

这里的技巧部分是强制函数F.它是高度非线性的并且取决于x和t参数。它使用x参数来求解泊松型二维方程(通过有限体积法)。力F与泊松方程解成比例。

function [F] = solveP(x,t)

% initialize solution

Phi = zeros(Ni,Nj);

% solve iteratively

% ...

while (~converged)

% some calculations

% iterative solver

Phi(i,j) = (aE*Phi(i,j+1) + aW*Phi(i,j-1) + aN*Phi(i+1,j) +...

aS*Phi(i-1,j) + S(i,j))/aP;

end

% calculate F

F = sum(Phi(:)); % discrete integration over domain

end

通过迭代方法求解泊松方程需要初始条件,我将其设置为零(Phi=zeros(Ni,Nj))。我认为我可以通过提供更好的φ场初始估计来提高计算速度(更好的初始条件将更快地达到所寻求的答案)。我能想到的最佳初始条件(除了φ= 0)是在ode求解器(ϕ(k)_initial=ϕ(k-1))的前一次迭代(最后一步)中获得的φ场的值。

底线是:如何在ode解决方案中使用/保存中间值?

PS:我尝试使用持久变量,但这不是一个好的解决方案。 ode求解器在推进之前计算几个点的函数。每次ode调用odefun乐趣时,持久变量都会保存收敛的φ字段。这不完全是我想要的,随着时间的推移,这实际上提供了错误的答案。

matlab中离散数值求解器在哪,matlab - 在ode MATLAB求解器上使用中间值 - SO中文参考 - www.soinside.com...相关推荐

  1. php中连接两个值,php - 如何从两个表的连接中选择一个值? - SO中文参考 - www.soinside.com...

    我想在LaravelMySQL中实现一些功能, 但似乎没有找到正确的解决方案. 我可以用子查询来实现我想要的东西, 但是我被告知他们没有联接那么高效. 而且,我将不得不把这个解决方案转换到Eloque ...

  2. php添加数组的键和值,php - 将php数组元素添加到数组中如何具有相同的键和值 - SO中文参考 - www.soinside.com...

    我有一个像这样的数组如何具有相同的gtin:Array ( [0] ( [status] => ERROR [message] => 'message error' [gtin] => ...

  3. matlab方程近似求根,第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令.doc...

    第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令 第七讲 MATLAB中求方程的近似根(解) 教学目的:学习matlab中求根命令,了解代数方程求根求解的四种方法,即图解法. ...

  4. java 求导函数_在MATLAB中计算数值导数的最佳方法是什么?

    这些只是一些快速而肮脏的建议 . 希望有人会发现它们有用! 1. Do you have a symbolic function or a set of points? 如果您有符号功能,您可以分析计 ...

  5. matlab中矩阵的累加,累加和与累乘积在matlab中-read.ppt

    累加和与累乘积在matlab中-read 多项式 多项式表达方式的约定 创建多项式的方法 多项式运算函数 常用列表参阅表2-10 多项式表达方式的约定 MATLAB约定降幂多项式P(x)=a0xn+ ...

  6. matlab中x从0到5不含0,关于MATLAB的数学建模算法学习笔记

    关于MATLAB的数学建模算法学习笔记 目录 线性规划中应用: (3) 非线性规划: (3) 指派问题;投资问题:(0-1问题) (3) 1)应用fmincon命令语句 (3) 2)应用指令函数:bi ...

  7. matlab中input输入多个数_你可能不知道的MATLAB操作技巧#第二话

    回顾链接  这是#第一话#的超链接,让大家对MATLAB有一个感性认识. 第二话 1-梳理一下MATLAB中的字符char.符号变量symbol和数值型变量double等的区别.经过图图长时间调研,发 ...

  8. matlab中结束脚本运行_疫情当前,生活向前 | MATLAB 一直 Online 等你

    疫情当前,生活向前,希望如期而至的不止是春天,还有疫情过后平安而充实的你 ! MATLAB 连夜帮你整理了我们所有网上的学习资源,为了注定不平凡的你. ◆  ◆  ◆   三大工具,在家开学也不怕[1 ...

  9. matlab 中 t=0:t:(n-1)t;k=0:n-1,《MATLAB语言与应用》练习题答案

    <MATLAB 语言与应用>实验课程任务书 一. 实验教学目标与基本要求 上机实验是本课程重要的实践教学环节:实验的目的不仅仅是验证理论知识,更重要的是通过上机实验,加强学生的实验手段与实 ...

最新文章

  1. mysql执行计划字段解析_MySQL执行计划解析
  2. linux window nginx性能,Nginx负载均衡搭建(Window与Linux)
  3. Linux的概念与体系 6. Linux文本流(转载)
  4. @ManyToOne和@OneToMany 注解
  5. 计算机读不出光盘,win7光盘读不出来怎么办|win7光驱读不出光盘的解决方法
  6. STM32F103 485通信开发实例(三):与触摸屏通过Modbus进行通信
  7. 外链检测工具,反链友链检测工具
  8. 计算机电脑照片大小,如何在电脑上修改打印图片的大小
  9. Android前台服务讲解一
  10. python的常量_python中的常量
  11. [读书笔记][深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白...
  12. RFID银行钱箱资产管理系统
  13. zynqsd的读写数据_数据存储结构图 - Zynq7000 FPGA的高速信号采集处理平台的设计搭建以及后续拓展...
  14. 八种网络攻击类型,你了解多少?
  15. STC8单片机ADC采样注意事项
  16. Web前端开发需要具备哪些职责?需要掌握哪些技能?
  17. python训练opencb分类器_垃圾邮件分类.ipynb
  18. php 开源产品,PHP免费开源企业产品建站系统含手机站
  19. 消防应急指挥——便携式应急通信指挥系统
  20. Windows11 文件管理器 很慢很卡怎么办

热门文章

  1. ubuntu tftp 服务器故障排除一例
  2. python经典算法--------冒泡排序
  3. 应用迁移方案_Kubernetes如何成为迁移旧版应用程序的解决方案
  4. fortran_Fortran 60岁生日快乐
  5. 这就是为什么您的开源项目失败
  6. (46)HTML网页开发流程
  7. (8)css常用样式属性3
  8. (1)HTML5概述
  9. Bootstrap CSS 编码规范之不要使用 @import
  10. Git笔记(3) 安装配置