如图,怎么利用matlab画出这个分段微分方程的关于x和x点(x导)的坐标系图?
3条回答 默认 最新
- CSDN专家-Matlab_Fans 2022-04-04 20:26关注
这个问题的关键在于,如何处理碰撞时速度状态量的突变问题,两种解决思路:
- 一是使用ode45等系统自带的微分方程数值解法,需要设置事件event来处理碰撞问题;
- 二是自己编程用欧拉法等数值解法来求解这个微分方程,在程序中直接处理碰撞问题。
注意碰撞时应该是 dx = -0.99*dx ,即碰撞后速度方向会发生变化。
第2种方法的代码如下:
clear clc x0 = [0;0]; ts = 0.01; T = 0:ts:10; x = x0; for ii = 1:length(T) t = T(ii); dx(1,1) = x(2); w = 1; dx(2,1) = 0.1*sin(w*t) + 0.1*x(2) - 0.25*x(1)^3 + 0.5*x(1); x = x + dx*ts; % 欧拉法解微分方程 %% 碰撞处理 if x(1) <= -0.6 x(1) = -0.6; x(2) = -0.99*x(2); elseif x(1) >= 0.5 x(1) = 0.5; x(2) = -0.99*x(2); end X(:,ii) = x; end %% 相图 figure plot(X(1,:),X(2,:)) xlim([-0.8 0.8]) xlabel('x') ylabel('dx')
相图为:
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥20 matlab计算中误差
- ¥15 对于相关问题的求解与代码
- ¥15 ubuntu子系统密码忘记
- ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料
- ¥15 使用R语言marginaleffects包进行边际效应图绘制
- ¥20 usb设备兼容性问题
- ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊