假如要用ode45数值积分求解以下方程:
y ′ ′ = A B t y y^{''}=\frac{A}{B}ty y′′=BA​ty
将其降阶得到
y 1 ′ = y 2 y 2 ′ = A B t y 1 y^{'}_1=y_2\\ y_2^{'}=\frac{A}{B}ty_1 y1′​=y2​y2′​=BA​ty1​
然后我们希望保存计算的中间值 y 1 ′ y_1^{'} y1′​并绘图,可以这样做:

odefunc.m

function [dydt] = odefunc(t,y,A,B)
%% 要积分的微分方程
dydt = zeros(2,1);
dydt(1) = y(2);
dydt(2) = (A/B)*t.*y(1);%% 从工作区读取record_dy1数组
record_dy1=evalin('base', 'record_dy1');
record_dy1=[record_dy1 y(2)];
%保存record数组到工作区
assignin('base','record_dy1',record_dy1);%% 从工作区读取积分时间数组
time=evalin('base', 'time');
%一定要round,消除变步长重复值
time=[time round(t,4)];
assignin('base','time',time);
end

ode45_extend.m

%% 微分方程
A = 1;
B = 2;
tspan = [0 5];
%被积函数dy_1,dy_2初值
y0 = [0 0.01];
%% record_dy1是用来保存要记录的中间值
record_dy1=[];
%time是对应的时间点
time=[];
[t,y] = ode45(@(t,y) odefunc(t,y,A,B), tspan, y0);
%plot(t,y(:,1),'-o',t,y(:,2),'-.')
%% 去除变步长带来的重复值
[B, I] = unique(time, 'first');
%重复值所在索引
duplicated_location=setdiff(1:numel(time), I);
%删除重复值
time(duplicated_location)=[];
record_dy1(duplicated_location)=[];
%% 绘图
plot(time,record_dy1);

运行ode45_extend.m得到结果:

matlab保存ode45计算中间值并绘图相关推荐

  1. matlab保存符合条件的值到一个新的向量

    之前用MATLAB做数值计算,没用到过保存符合条件数据的功能,MATLAB已经不常用了.前几天,做一个小实验要保存一下中间程序产生的数据,尝试了半天,没想到简单的方法,后来百度发现了一个小技巧,现记录 ...

  2. matlab 保存为矢量图,将绘图保存为图像或向量图形文件

    将绘图保存为图像或向量图形文件 您可以使用坐标区工具栏中的导出按钮 ,或通过调用 exportgraphics 函数,将绘图另存为图像,或另存为向量图形文件.在决定要使用的内容类型时,应考虑要将文件放 ...

  3. 中南大学 科学计算与MATLAB语言 11矩阵求值

    中南大学 科学计算与MATLAB语言 11矩阵求值 矩阵求值主要包括 矩阵的行列式值 矩阵的秩 矩阵的迹 矩阵的范数 矩阵的条件数 把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称方阵所 ...

  4. matlab 蒙特卡罗计算pi值

    蒙特卡罗法计算pi值是比较基础的入门应用之一,网上流传的大部分代码包括百度百科上的代码都是使用for循环完成迭代的,运算速度非常慢,这里我们提供一个向量化运算的方式,以加快运算速度.接触编程久了后,会 ...

  5. Matlab 迭代法计算灰值图像的level

    Matlab 迭代法计算灰值图像的level Matlab中,已知函数im2bw(X,Level),默认level为0.5.这里level为阈值,其含义是: 第Xij个像素,利用利用二值化处理时,le ...

  6. 【MATLAB】将计算结果循环保存至excel文件指定sheet

    [MATLAB]将计算结果循环保存至excel文件指定sheet 文章目录 [MATLAB]将计算结果循环保存至excel文件指定sheet 1.问题 2. 过程 3. 解决结果 4. 总结 1.问题 ...

  7. MATLAB绘制ROC曲线并计算AUC值

    最近需要比较不同CNN网络的分类效果,用到了Auc值,所以学习了下用MATLAB绘制ROC曲线并计算Auc值的代码,总结如下. 1. 子函数代码: % 计算AUC值,同时绘制ROC曲线 % 二值分类, ...

  8. matlab历史模拟法计算var,历史模拟法、蒙特卡罗模拟法计算VaR和ES值

    一.知识点介绍 1.1 历史模拟法 我们在之前有用到Delta-Normal的GARCH和RiskMetrics方法来计算VaR和ES,假设的是残差满足正态分布,对残差进行二次相关序列的建模并拟合残差 ...

  9. matlab计算miou值,深度学习计算机视觉图像分割领域指标mIoU(平均交并比)计算代码与逐行解析...

    import numpy as np import argparse import json from PIL import Image from os.path import join #设标签宽W ...

最新文章

  1. android之broadcast发送广播
  2. MyBatis:lazy loading
  3. 后端学习 - 计算机网络
  4. bzoj3224: Tyvj 1728 普通平衡树(打个splay暖暖手)
  5. runtimeerror怎么解决python_如何解决这个python错误? RuntimeError:字典在迭代期间改变了大小...
  6. 百度地图兴趣点抓取工具
  7. OpenCv——OpenCv2 Mat创建、复制、释放
  8. iOS企业ipa(299)证书制作、打包发布全流程
  9. blender摄像机怎么绕物体旋转
  10. 常用财务软件有哪些功能模块
  11. QQ留言代码,网页QQ留言
  12. Linux上启动mysql不成功
  13. Sql Server 常用系统存储过程大全
  14. 一人一本一年N手机,仿滴滴出行开发含700个功能网约车APP源码(二)
  15. windbg调试minidump
  16. c语言标准字库,用C语言自造1602中文字库
  17. 毕业四年的职场经历自述
  18. django 允许post请求
  19. 物盾安全汤晓冬:工业互联网企业如何应对高发的供应链安全风险?
  20. C++中的log10函数

热门文章

  1. 【react native】Flatlist实现上拉滚动加载
  2. ECharts常用通用标签整理
  3. 自己动手实现主题搜索引擎
  4. 工作了这么长时间,是不是非用macbook pro不可呢?
  5. 详解BiLSTM及代码实现
  6. Xcode创建c语言方案及调试
  7. socket协议基础知识
  8. Suspicious Package for Mac(pkg程序查看工具)
  9. python 按键精灵脚本_[620]使用Python实现一个按键精灵
  10. 为什么要有红黑树?什么是红黑树?画了20张图,看完这篇你就明白了