学习笔记10 微分方程的matlab符号求解方法
开始学微分方程,用汤家凤的基础课配他的辅导讲义。然后再来看代码。我要国二!!!!
代码全打一遍是防止思维跳跃,切忌形式主义
尽量做到,学一次,用一年。
求符号解
- 定义符号变量
- 调用dsolve函数
[y1,...,yN]=dsolve(eqns,conds,Name,Value)
eqns为符号微分方程或符号微分方程组;conds为初值条件或边界条件;Name和Value为可选的成对参数。
求
x 2 + y + ( x − 2 y ) y ′ = 0 x^2+y+\left( x-2y \right) y'=0 x2+y+(x−2y)y′=0
clc,clear
syms y(x)%定义符号变量
dsolve(x^2+y+(x-2*y)*diff(y)==0)
结果
ans =x/2 + ((4*x^3)/3 + x^2 + C1)^(1/2)/2x/2 - ((4*x^3)/3 + x^2 + C1)^(1/2)/2
这里的dsolve只有一个参数
下面升级
y ′ ′ ′ − y ′ ′ = x , y ( 1 ) = 8 , y ′ ( 1 ) = 7 , y ′ ′ ( 2 ) = 4 y^{'''}-y''=x,y\left( 1 \right) =8,y'\left( 1 \right) =7,y''\left( 2 \right) =4 y′′′−y′′=x,y(1)=8,y′(1)=7,y′′(2)=4
clc,clear
syms y(x)%定义符号变量
dy=diff(y);d2y=diff(y,2);
y=dsolve(diff(y,3)-diff(y,2)==x,y(1)==8,dy(1)==7,d2y(2)==4)%定义一阶导数和二阶导数,用于初值和边值条件的赋值
y=simplify(y)%把计算结果化简
结果
y =
x*((exp(-1)*(19*exp(1) - 14))/2 - 1) + 7*exp(-2)*exp(x) - x^2/2 - x^3/6 + (exp(-1)*(19*exp(1) - 14))/2 - (exp(-1)*(25*exp(1) - 21))/3 - 1
y =
(17*x)/2 + 7*exp(x - 2) - 7*x*exp(-1) - x^2/2 - x^3/6 + 1/6
注意:我用的是新版的matlab2018b,化简统一用simplify()
遇到问题照着套就好。
进阶,常微分方程组
{ f ′ ′ + 3 g = sin x g ′ + f ′ = cos x \begin{cases} f^{''}+3g=\sin x\\ g'+f'=\cos x\\ \end{cases} {f′′+3g=sinxg′+f′=cosx
求通解和在初编值条件为 f ′ ′ ( 2 ) = 0 , f^{''}(2)=0, f′′(2)=0, f ′ ′ ( 3 ) = 3 , g ′ ′ ( 5 ) = 1 f^{''}(3)=3,g^{''}(5)=1 f′′(3)=3,g′′(5)=1的解
clc,clear
syms f(x) g(x)%定义符号变量
df=diff(f)%定义f的一阶导数,用于初值或边值条件的赋值
[f1,g1]=dsolve(diff(f,2)+3*g==sin(x),diff(g)+df==cos(x))%求通解
f1=simplify(f1),g1=simplify(g1)%对符号解进行求解
[f2,g2]=dsolve(diff(f,2)+3*g==sin(x),diff(g)+df==cos(x),df(2)==0,f(3)==3,g(5)==1)
f2=simplify(f2),g=simplify(g2)%对符号解进行化简
学习笔记10 微分方程的matlab符号求解方法相关推荐
- matlab 绘制符号函数,DAY8 MATLAB学习笔记—simulink入门、MATLAB符号函数的图形绘制...
如何打开simulink: 启动simulink: 先打开MATLAB软件界面 第一步打开simulink 第二步在command windows输入 simulink然后enter,等待 有很多模块 ...
- 数学建模学习笔记(19)Matlab符号运算
% Matlab的符号运算% 1.符号变量的创建 % syms 符号变量名 % 注释:可以用一个syms语句同时创建多个变量 syms y; syms a b;% 2.符号方程的创建 % 符号方程可以 ...
- Linux学习笔记10
Linux学习笔记10 Linux学习笔记10 正则表达式 源码包约定目录 Shell脚本约定目录 Shell脚本的创建与执行 date命令 同步时间 Shell脚本预设变量 与用户交互 数学计算 S ...
- 史上最牛最强的linux学习笔记 10.shell基础
史上最牛最强的linux学习笔记 10.shell基础 写在最前面: 本文是基于某站的视频学习所得,第一个链接如下: https://www.bilibili.com/video/BV1mW411i7 ...
- thinkphp学习笔记10—看不懂的路由规则
原文:thinkphp学习笔记10-看不懂的路由规则 路由这部分貌似在实际工作中没有怎么设计过,只是在用默认的设置,在手册里面看到部分,艰涩难懂. 1.路由定义 要使用路由功能需要支持PATH_INF ...
- SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传
SpringMVC:学习笔记(10)--整合Ckeditor且实现图片上传 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可 ...
- springmvc学习笔记(10)-springmvc注解开发之商品改动功能
springmvc学习笔记(10)-springmvc注解开发之商品改动功能 springmvc学习笔记(10)-springmvc注解开发之商品改动功能 标签: springmvc springmv ...
- Hadoop学习笔记—10.Shuffle过程那点事儿
Hadoop学习笔记-10.Shuffle过程那点事儿 一.回顾Reduce阶段三大步骤 在第四篇博文<初识MapReduce>中,我们认识了MapReduce的八大步骤,其中在Reduc ...
- HALCON 20.11:深度学习笔记(10)---分类
HALCON 20.11:深度学习笔记(10)---分类 HALCON 20.11.0.0中,实现了深度学习方法. 本章解释了如何在训练和推理阶段使用基于深度学习的分类. 基于深度学习的分类是一种对一 ...
最新文章
- 《Generative Face Completion》论文笔记
- 心得丨对于机器学习,到底该选择哪种编程语言
- Linux版本_linux版本信息解析
- SpringMVC中使用@ResponseBody注解标注业务方法
- 细数MQ那些不得不说的8大好处
- pythonseleniumide使用_selenium第二课(脚本录制seleniumIDE的使用)
- 黑马博客——详细步骤(二)项目功能的实现之登录功能
- Akka的Actor生命周期《Eight》译
- 云网络开山之作,揭秘云上高速公路的十年技术成果!
- html——点击a标签打开新的标签页
- 鹏业安装算量NETDWGCOM接口创建失败处理办法
- oracle投毒漏洞检测,Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)的完美解决方法...
- android页面布局计算机,Android Studio制作简单计算器App
- [渝粤教育] 西南科技大学 电子测量与仪表 在线考试复习资料(1)
- 【OpenGL】笔记三、着色器
- SQLServer将日期转换成字符串格式
- Servlet电子商城项目(入门级一)
- 弘辽科技:如何修改老链接不被降权。
- Android手游SDK那点事(二)SDK项目结构设计(初版,废弃)
- idea的英文翻译插件安装(Translation)