用matlab自动dsolve函数求原函数,matlab中使用dsolve函数求一常微分方程解析解
dsolve函数是matlab中自带的可以用来解决部分常微分方程的函数(方法),下面以物理学中的热传导问题为例展示如何使用这个函数。
热力学模型假设物体和恒温的环境接触,温度随时间的变化率和温差成正比,我们假设环境温度为m=20,物体的初始温度为100(刚好假设这个物体是烧开的沸水),比例系数k为-0.05,由此我们可以得到以下常微分方程:
y’ = k(y-m)
y0=100
k=-0.05
我们就可以把以上数学公式转换成matlab代码如下:
syms y(t)
eqn = diff(y,t) == -0.05*(y-20);
con = y(0) == 100;
yS = dsolve(eqn,con)
我们注意到,这里用eqn存储了微分方程的表达式,用cond存储了变量y的初始值。方程式用==表示等号,用diff(y,t)表示y关于t的一阶导数;初始条件表达式 用y(0)表示了y的初始值,并且将它与100用两个=连起来,并且把这个等式赋值给con这个变量。eqn和con正式dsolve函数所需要的两个变量。也就是我们常说的给定了方程和初始条件,就可以得到这个方程的解,我们运行之后,可以得到一下解析解:
yS =
80*exp(-t/20) + 20
非常漂亮,我们还可以把代码稍微修改一下,用字符串的形式来存储方程式和初始变量等式,用Dy来表示y’,此时我们可以改写matlab代码如下:
equa = 'Dy = -0.05*(y-20)';
cond = 'y(0) = 100';
ys = dsolve(equa,cond,'t')
注意到这个时候,dsovle函数增加了一个参数’t’,用来表示Dy是y对t的求导,我们同样可以得到运行结果如下:
ys =
80*exp(-t/20) + 20
可以看到,两种方法得到的结果是一样的,这样我们就完成了最简单的一个常微分方程解析解的求解。不过我们要注意的是,高等数学告诉我们只有特定形式的方程才具有解析解,因此使用dsolve方法有以下局限性:
仅有特定形式的微分方程(组) ,才有解析解;在没有解析解的微分方程(组)的时候dsolve 无能为力
用matlab自动dsolve函数求原函数,matlab中使用dsolve函数求一常微分方程解析解相关推荐
- 【MATLAB自带的svmtrain和libsvm中的svmtrain函数的区别】
MATLAB自带的svmtrain和libsvm中的svmtrain函数的区别 libsvm中的svmtrain是mex文件,调用c运行,由于MEX文件执行效率高,故matlab中如果有文件重名的话, ...
- python自带的sum()函数和numpy库中的sum()函数的区别
在学习<机器学习实战>一书的第十章时,对 return np.sqrt(sum(np.power(vecA - vecB, 2))) 这样一条语句输出的结果老是不对,明明想要输出的是对两个 ...
- java中函数的调用,java中如何调用函数
java动态调用函数,Java 中使用动态代码,java函数调用,java中如何调用函数 如何在 Java 中调用 C 函数 宗薇 [期刊名称]<网络新媒体技术> [年(卷),期]2000 ...
- python中lambda函数if用法-Python中关于Lambda函数的使用总结
lambda表达式是一种匿名函数,对应python中的自定义函数def,是定义某个函数时比较高级的一种写法.作为python初学者,本文整理了lambda的一些基本用法和特点. lambda和def的 ...
- 频域串联滞后校正matlab,自动控制原理实验七基于MATLAB控制系统频域法串联校正设计.doc...
自动控制原理实验七基于MATLAB控制系统频域法串联校正设计.doc 实验七 基于MATLAB控制系统频域法串联校正设计 一.实验目的 (1)对给定系统设计满足频域或时域指标的串联校正装置: (2)掌 ...
- MATLAB解决线性规划问题,学会使用linprog函数,在一个实例中演示linprog函数各参数的用法
最近接触到了一个线性规划的题目,尝试用MATLAB解决,动手前想了很多思路,上网搜索了一下发现MATLAB中有专门的linprog函数专门解决线性规划问题,了解学习后果然十分方便.事实上,绝大部分的线 ...
- mysql数据库求平均值的函数_使用MySQL中的AVG函数求平均值的教程
MySQL的AVG函数是用来求出各种记录中的字段的平均值. 要了解AVG功能考虑EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; + ...
- html实现log函数,math。h中的log函数的应用
以10为底的log函数: 形式为 double log10(double x) 以e为底的log函数(即 ln)double log (double x) 如何表达log 以a为底b的对数: 用换 ...
- python求一组数中最大数_python如何求一组数的最大值?_后端开发
php中session用法详解_后端开发 PHP中的session默认情况下是使用客户端的Cookie,当客户端的Cookie被禁用时,会自动通过[Query_String]来传递,其中[sessio ...
- python中匿名函数的作用_Python 中的匿名函数,你会用吗
原标题:Python 中的匿名函数,你会用吗 概念 我们从一个例子引入. 这里有一个元素为非空字符串的列表,按字符串最后一个字母将列表进行排序.如果原列表是 ['abc', 'g', 'def'],则 ...
最新文章
- (已解决)ImportError attempted relative import with no known parent package
- 面试真题:搜索旋转数组
- python语法错误常见原因_python3中open()的语法错误,不知道原因
- shell编程详解(一)
- 加载elementor时出现问题_不锈钢管在焊接时出现问题要怎么解决?
- 【Fudan DISC】一种无监督下利用多模态文档结构信息帮助图片-句子匹配的采样方法...
- Windows server 2019 - Raid1 搭建+测试
- ../bin/testCurveFitting 出现的错误以及解决办法
- 组合使用Memento模式与Command模式实现多级Redo和Undo
- PHP+mysql共享自行车租赁管理系统
- SEODONG Medical推出创新干眼症治疗仪器,深受海外消费者好评
- ios 提交错误 ITMS-90096
- 口袋妖怪金心银魂详细图文攻略(下)及游戏下载
- 赛效:Xmind思维导图怎么用 新手使用教程分享
- 文件打包zip 下载
- 华为鸿蒙pc系统试用版,华为开源操作系统 鸿蒙OS 升级版曝光,打通PC等一大批硬件...
- hdu 1232 并查集
- 为2020年的第一场雪锦上添花:用 matplotlib 绘制雪花和雪景
- 与Servlet斗智斗勇
- 华为初识IoT最全学习笔记
热门文章
- 手机不能上网原因分析及检测手段
- 计算机硬件选购与市场调查实验报告,计算机组装与维护实训报告范例-20210527010902.docx-原创力文档...
- linux下使用iptables NAT上网
- oracle 之除数不为0
- linux 中gnu的含义是,GNU是什么意思
- 如何将CHM文件翻译成中文
- 修改网站背景图html代码,HTML中更换或添加网站背景图片的代码怎么写?(示例)...
- thinkpad e480安装win7
- win10计算机磁盘图标,Win10系统硬盘图标怎么更换?Win10系统自定义硬盘图标的方法...
- 用flutter写一个抖音是什么体验?