洛伦茨方程的运动图像画法,可以控制播放速度

本文介绍了如何在MATLAB中使用洛伦茨方程创建动态运动图像,并通过修改comet3函数内部代码实现播放速度的控制,以达到更好的视觉效果。
摘要由CSDN通过智能技术生成

首次建立m文件,带入洛伦茨方程的参数:

有两种建法:

1:

function dy=lorenz(t,y)
    dy=zeros(3,1); %建立一个三位列向量
    dy(1)=10*(-y(1)+y(2));
    dy(2)=28*y(1)-y(2)-y(1)*y(3);
    dy(3)=y(1)*y(2)-8*y(3)/3;
    

2:

function dy_dt=lorenz(t,y)
%y=[x,y,z]储存三个变量的矩阵
p=10;
r=28;
b=8/3;

dx_dt=p*(y(2)-y(1));
dy_dt=r*y(1)-y(2)-y(1)*y(3);
dz_dt=y(1)*y(2)-b*y(3);

dy_dt=[dx_dt;dy_dt;dz_dt];

我选用第二种,并配合rungekutta4阶精度来计算数据源:

function [t,y]=rungekutta4(f,tspan,y0,n)
%四阶Runge-Kutta算法
%f:dy/dt=f(t,y);求解区间tspan:[t0,tf];初值y0=y(t0)=[x0,y0,z0];n采样点数
h=(tspan(2)-tspan(1))/n;
t=tspan(1):h:tspan(2);
y=zeros(length(y0),length(t));
y(:,1)=y0;
for m=2:length(t)
    k1=f(t(m-1),y(:,m-1));
    k2=f(t(m-1)+h/2,y(:,m-1)+k1*h/2);
    k3=f(t(m-1)+h/2,y(:,m-1)+k2*h/2);
    k4=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值