gpt4 book ai didi

matlab - 如何实时显示Matlab的ode45结果?

转载 作者:行者123 更新时间:2023-12-04 02:09:22 26 4
gpt4 key购买 nike

假设对于一阶 ODE 系统,我们有以下求解器:

   % func.m
function dydt = func(t,y)
dydt = [y(2); (1-y(1)^2)*y(2)-y(1)];

和主要代码:
% solver.m
tspan=0:1:10;
[t,y] = ode45(@func,tspan,[2; 0]);

如何实时显示 ode45 生成的每个时间步长 t (t=0,1,2,...,10) 的结果 y1(t) 和 y2(t),而无需等待整体代码完成?

最佳答案

OutputFcn 应该使用 ode 求解器选项。例如,要绘制解与时间的关系图,内置输出函数 odeplot可以使用:

options= odeset('OutputFcn',@odeplot);
[t,y] = ode45(@func,[0 200],[2; 0],options);

您可以使用自己的输出功能。下面是一个例子:
myOutputFcn= @(t,y,flag)fprintf('t= %s y=  %s\n',mat2str(t),mat2str(y))*0;
options= odeset('OutputFcn',myOutputFcn);
[t,y] = ode45(@f,0:1:10,[2; 0],options);

关于matlab - 如何实时显示Matlab的ode45结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40154102/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com