精华内容
下载资源
问答
  • 好急啊,怎么样用MATLABd的PDE库来解一个有偏微分方程的?该怎么用?最好大神带着一个列子讲一下,感激不尽!![图片说明](https://img-ask.csdn.net/upload/201601/30/1454123703_457539.png)
  • 01微分方程matlab在大学的高等数学里,我们常常会碰到一些方程,总会令人头疼,它就叫微分方程,今天扫叶人打算向大家介绍一下关于如何使用matlab来轻松解决微分方程。02课程体系图表03常微分方程的表示方式常微分...

    01

    微分方程与matlab

    在大学的高等数学里,我们常常会碰到一些方程,总会令人头疼,它就叫微分方程,今天扫叶人打算向大家介绍一下关于如何使用matlab来轻松解决微分方程。

    02

    课程体系图表

    2f2b4c6d577866dcc19ec8fc2a1b3265.png

    03

    常微分方程的表示方式

    常微分方程在matlab里按照如下的规定重新表达:符号D用来表示对变量的求导,Dy表示对于变量y进行求一阶求导,当需要求变量n阶导数的时候,用Dn表示,例如常微分方程y''+2y'=y在matlab写成:D2y+2*Dy=y

    04

    dsolve函数

    在MATLAB中,由函数dsolve()解决常微分方程(组)的求解问题,其具体格式如下:r = dsolve('eq1,eq2,...', 'cond1,cond2,...', 'v')
    其中'eq1,eq2,eq3  ........'为微分方程或者微分方程组, 'cond1,cond2,...',是初始条件或边界条件,'v'是独立变量,默认的独立变量是't'。函数dsolve用来解符号常微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解。

    05

    三种方程的程序例子展示

    a7282a4080f0e6e60a3207ad56477980.png2d4d75a9be87a876dcea54bdc6f41911.pnge2395745a5289cca30286792181fefb5.png

    你可能感兴趣

    1最伟大的英国纪录片—《人生七年》|阶级固化到底是否存在?2软件学习|关于matlab的方程求解3Matlab绘图基础技巧4Matlab中那些控制命令5如何用Matlab求解极限和积分6Matlab中数据的读取与矩阵的调用7如何用Matlab中进行插值▼更多精彩推荐,请点击阅读原文▼20cd6d86b0e08e692882aa60e503a26a.png把时间交给扫叶人f5c62903d60fbd848b7e56317e74c4e1.png
    展开全文
  • 实验二_基于Matlab微分方程数值解法 实验二 微分方程数值解法 1. 实验原理及实验内容: 对微分方程描述的控制系统,利用欧拉法、二阶龙格-库塔法、四阶龙格-库塔法分别编写M文件,进行数值计算和作图。 1.分别...

    41528d3028836879cd698677c3999917.gif实验二_基于Matlab的微分方程数值解法

    实验二 微分方程数值解法 1. 实验原理及实验内容: 对微分方程描述的控制系统,利用欧拉法、二阶龙格-库塔法、四阶龙格-库塔法分别编写M文件,进行数值计算和作图。 1.分别用欧拉法、二阶龙格-库塔法、四阶龙格-库塔法求下面系统的输出响应y(t)在0≤t≤1上,h=0.1时的数值解。 要求保留4位小数,并将三种方法的结果与真解进行比较。 2. 若为如何编程计算? 2. 实验仪器: 计算机Matlab软件 3. 实验数据记录: 程序一: disp( 欧拉算法 ); y=1; h=0.1; for i=0:0.1:1 disp(y); y=y+h*(-2*y); end disp( 欧拉算法 ); y disp( 精确解 ); yy=exp(-2*t) h=0.1; disp( 函数的2阶数值解为 ); disp( y= ); y=1; for t=0:h:1; disp(y); k1=-2*y; k2=-2*(y+k1*h); y(i+1)=y(i)+(k1+k2)*h*1/2; end h=0.1; disp( 函数的4阶数值解为 ); disp( y= ); y=1; for t=0:h:1; disp(y); k1=-2*y; k2=-2*(y+k1*h*1/2); k3=-2*(y+k2*h*1/2); k4=-2*(y+k3*h); y=y+h*1/6*(k1+2*k2+2*k3+k4); end >>程序2: t=0:0.1:1; n=length(t); y(1)=1; h=0.1; for i=1:n-1 y(i+1)=y(i)+h*(y(i)*y(i)); end disp( 欧拉算法 ); y disp( 精确解 ); yy=exp(-2*t) h=0.1; disp( 函数的2阶数值解为 ); disp( y= ); y=1; for t=0:h:1; disp(y); k1=y*y; k2=(y+k1*h)^2; y=y+(k1+k2)*h*1/2; end h=0.1; disp( 函数的4阶数值解为 ); disp( y= ); y=1; disp(y); k1=y*y; k2=(y+k1*h*1/2)^2; k3=(y+k2*h*1/2)^2; k4=(y+k3*h)^2; y=y+h*1/6*(k1+2*k2+2*k3+k4); end

    展开全文
  • 1.dsolve()函数求解常微分方程的通在求通问题%symsy(x)%y=dsolve(x^2+y+(x-2*y)*diff(y)==0)这里插入代码片求解常微分方程的初边值问题%symsy(x)%定义符号变量%dy=diff(y);%一阶导数%d2y=diff(y,2);%二阶导数,...

    1.dsolve()函数

    求解常微分方程的通解在求通解问题

    % syms y(x)

    % y=dsolve(x^2+y+(x-2*y)*diff(y)==0)这里插入代码片

    求解常微分方程的初边值问题% 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) %把计算结果化解

    求解常微分方程组% syms f(x) g(x)

    % df=diff(f);%用于初值或边值条件的赋值

    % [f1,g1]=dsolve(diff(f,2)+3*g==sin(x),diff(g)+diff(f)==cos(x))%求通解

    % f1=simplify(f1),g1=simplify(g1)

    %

    % [f2,g2]=dsolve(diff(f,2)+3*g==sin(x),diff(g)+diff(f)==cos(x),df(2)==0,f(3)==3,g(5)==1)

    % f2=simplify(f2),g2=simplify(g2)

    求解线性常微分方程组

    一阶齐次线性微分方程组% syms x(t) y(t) z(t)

    % X=[x;y;z]% 定义符号向量

    % A=[2 1 3;0 2 -1;0 0 2];

    % B=[1 2 1]';

    % [x, y, z]=dsolve(diff(X)==A*X,X(0)==B)

    非齐次线性方程组syms x(t) y(t) z(t)

    X=[x;y;z]% 定义符号向量

    A=[1 0 0;2 1 -1;3 2 1];

    B=[0;0;exp(t)*cos(2*t)];

    x0=[0;1;1];%初值条件

    X=dsolve(diff(X)==A*X+B,X(0)==x0)%求符号解

    X=simplify([X.x;X.y;X.z])%显示解的各个分量

    pretty(X) %分数线居中的显示方式

    展开全文
  • 1. 有接近30个方程,且中间的方程如A(7)的微分包含着A(10)、A(11),将所有方程写在一个dsolve函数里,无法得到结果 1. 如v1-4这类式子,如果写入dsolve中,输出结果与等式数不对应,无法得到结果,能否有不把它们一...
  • 微分方程 自牛顿发明微积分以来微分方程在描述事物运动规律上已发挥了...本实验主要探讨如何用 Matlab 来计算微分方程组的数值并重点介绍一个求解微分方程的基本数值解法Euler折线法 问题背景和实验目的 考虑
  • 如图所示的方程时:!... 求解x在[0 1]范围内的数值。 直接使用ode45函数时,未知C(0)值。...使用bvp4c函数时,又不知道如何输入控制一阶...请教如何matlab中能够在已知一阶导数和终端数值的求数值的方法思路。
  • 科技信息 博士专家论坛 基于MATLAB微分方程求解 衡阳师范学院数学与计算科学系...例分析了如何通过MATLAB 来求微分方程的解析和数值 关键词MATLAB 微分方程 数值 1.微分方程的解析 > text(15,0.4'x(t) MATLA
  • matlab求解微分方程

    万次阅读 多人点赞 2016-04-30 21:54:36
    如何用matlab来求解简单的微分方程?举例来说明吧。 求解三阶常微分方程。我们知道,求解高阶常微分方程可以化为求解一阶常微分方程组。编写函数eq3.m: %微分方程 3*y'''+5*y''+6*sin(t)*y=cost function ydot ...

    如何用matlab来求解简单的微分方程?举例来说明吧。

    • 求解三阶常微分方程。我们知道,求解高阶常微分方程可以化为求解一阶常微分方程组。编写函数eq3.m:
    %解常微分方程 3*y'''+5*y''+6*sin(t)*y=cost
    function ydot = eq3(t,y) 
    ydot=[y(2);y(3);(cos(t)-5*y(3)-6*sin(t)*y(1))/3]; 

    其中,ydot为一个列向量,值分别表示y‘(1)、y‘(2)、y‘(3)的取值,t自因变量,y为因变量,一个y就可以表示因变量组了。事实上,说白了,这个函数就是申明一下变量使t和y,以及y一阶导的右端项为那三个。
    接着,编写主函数如下:

    %解常微分方程 3*y'''+5*y''+6*sin(t)*y=cost
    [t23,y23]=ode23(@eq3,[0,5],[0,1,3]) 

    [0,5]表示自变量(这里是t)取值范围,[0,1,3]表示初始条件,也就是y0y0y′′0y0,y0′,和y0″,计算出来的结果又三列数,分别表示yyy′′y,y′,和y″在[0,5]中的取值。如图:
    这里写图片描述

    • 二阶常微分方程
      编写函数eq2.m
    function ydot= eq2(t,y)
    ydot=[y(2);-3-cos(2*t) + 2*sin(t)+t-3.8]; 
    

    主函数

    clc
    clear
    [t,y]=ode23('eq2',[0,20],[0,1]); 
    plot(t,y(:,1),'-',t,y(:,2),'-.')

    这里写图片描述

    • 求解微分方程,以上matlab内部用的是欧拉折现法,或者是单步法的改进,得不到一个解析解。那么如何求带初值问题的解析解呢?如下:
    y=dsolve('D3y-D2y=x','y(1)=8,Dy(1)=7,D2y(1)=4','x') 

    一目了然,就不多解释了。

    • 方程组解析解,以及带初始条件的解析解。
    clc,clear
    equ1='D2f+3*g=sin(x)'; 
    equ2='Dg+Df=cos(x)'; 
    [general_f,general_g]=dsolve(equ1,equ2,'x') 
    [f,g]=dsolve(equ1,equ2,'Df(2)=0,f(3)=3,g(5)=1','x') 
    • 非齐次线性方程组:

    编写vdp1.m

    function dy=vdp1(t,y); 
    dy=[y(2);(1-y(1)^2)*y(2)-y(1)]; 

    主函数:

    [T,Y]=ode45('vdp1',[0 20],[2;0]); 
    %观察结果。利用plot输出解的结果:
    plot(T,Y(:,1),'-',T,Y(:,2),'--') 
    title('Solution of van der Pol Equation,mu=1');
    xlabel('time t'); 
    ylabel('solution y'); 
    legend('y1','y2');

    绘图:
    这里写图片描述
    - 求解高阶微分方程
    1、编写F.m函数,并保存

     function dy=F(t,y);
    dy=[y(2);y(3);3*y(3)+y(2)*y(1)];

    2、主函数

    [T,Y]=ode45('F',[0 1],[0;1;-1]) %求解y'''-3y'-yy'=0 y(0)=0 y'(0)=1 y''(0)=-1
    • 求无初始条件的微分方程的解析通解各项
    clc
    clear
    syms x y 
    diff_equ='x^2+y+(x-2*y)*Dy=0'; 
    dsolve(diff_equ,'x') 
    %求无初始条件的微分方程的解析通解各项
    • 求线性系统的解析解并画相图
    clc,clear
    equ1='Dx1 - x2 = 0'; 
    equ2='Dx2 + x1 + 2*x2 =0'; 
    %[general_f,general_g]=dsolve(equ1,equ2,'t') 
    [x1,x2]=dsolve(equ1,equ2,'x1(0)=1,x2(0)=0','t') 
    x1_fun = matlabFunction(x1)
    x2_fun = matlabFunction(x2)
    t = 0:0.01:100
    plot(x1_fun(t),x2_fun(t))
    plot(t,x1_fun(t))
    hold on;
    plot(t,x2_fun(t))
    hold off;
    好吧,就说这么多了。这里介绍的是matlab内置的算法,知道原理自己动手编也是很快的啦。
    展开全文
  • Matlab提供了解决包括解微分方程在内的各种类型问题的函数: 1. 常规微分方程(ODEs)的初始值问题 初值问题是用MATLAB ODE求解器解决的最普遍的问题。初始值问题最典型的是对非刚性度(?nonstiff)问题应用...
  • Matlab ode45 解微分方程

    万次阅读 2013-09-19 18:48:09
    odesolver(ode45, ode15s, …)来解微分方程的时候,最基本的用法是: [t, y] = odesolver(odefun, tspan, y0);  这里的odefun是待求的微分方程。那么odefun中一般会含有多个系统参数,通常要通过改变参数来观察...
  • 通过实验观察到电池的耗电速度和当前的电量成正比。当前电池的容量为3000毫安时,观察到8小时后电量降为50%,为保护电池电量降为...matlab处理(解微分方程) dsolve(‘DS=-k*S’,‘S(0)=3000’) ans = 3000exp(-kt) ...
  • 最近因科研工作需求,要用到Runge-Kutta Method二阶ODE,自己也懒得造轮子了,所以干脆就直接使用Matlab的内置函数...现ode45求以下初始值问题的数值,注意该方程组含有一个参数a(该参数a需要提前计算好,然...
  • 微分方程为:dx/dt=m.*A(P-(n.*R.*T)/(V-x)) 其中m=0.1、A=1.5、P=15、(n.*R.*T)=9.6814、V=4 ...如何用euler方法求解这个微分方程呢,如何用方向场来刻画呢,使用MATLAB来实现 求代码,感谢大佬
  • 这是一个ppt的文件,主要讲了用matlab如何解复杂的微分方程,这是一个相当不错的资源
  • 符号方程的求解MATLAB7.0中的符号计算可以求解线性方程(组)、代数方程的符号、非线性符号方程(组)、常微分方程(组),求解这些方程(组)是通过调用solve函数实现的,如求解代数方程的符号解调solve函数的格式是...
  • 介绍了如何用matlab解微分方程
  • 满意答案ckhong82014.04.24采纳率:52%等级:10已帮助:116人入门推荐: JAVA2核心技术第1卷.基础知识7th: http://www.sunjava.cn/book/JAVA2hx1.rarJAVA.2核心技术.卷II:高级特性7th : ...
  • 学会熟练使用matlab工具求解微分方程符号和数值 学习微分方程基础知识,融会贯通,会根据实际情况修改模型。 符号运算要非常熟练,专有名词要会使用,方便队友沟通 前面线性规划不管做得如何都放一边吧,当前的...
  • 本编文章探讨一下数学物理方法中一个常见的问题,即如何用傅立叶变换得到PDE或者积分方程。在文章的最后,会附上MATLAB的实现代码。学疏才浅,欢迎大家指点!1. 什么是傅立叶变换?从数学形式上来看,FT的表示在...
  • 这部分主要讨论如何用MATLAB实现对偏微分方程的数值仿真求解.MATLAB的偏微分方程工具箱(PDE Toolbox)的出现,为偏微分方程的求解以及定性研究提供了捷径.主要步骤为: 2.1 用偏微分方程工具箱求解微分方程 直接...
  • 《数学物理方程的MATLAB解法与可视化》(MATLAB编程应用)也详细地介绍了MATLAB的偏微分方程工具箱与微分方程和本征值方程的其他指令,还介绍了差分方法和有限元方法。对学习数值计算或计算物理课程而言,这也是很...
  • 《数学物理方程的MATLAB解法与可视化》(MATLAB编程应用)也详细地介绍了MATLAB的偏微分方程工具箱与微分方程和本征值方程的其他指令,还介绍了差分方法和有限元方法。对学习数值计算或计算物理课程而言,这也是很...
  • 介绍几个处理混沌序列值的函数混沌序列如何产生我们可以看一下仿真的蔡氏混沌的相图我们如何添加“润滑剂”取整四法取余双法我们...当难以求得微分方程的解析时,可以求其数值Matlab中求微分方程数值的函数有七
  • 用Matlab画出相图进行相平面分析

    千次阅读 2020-11-05 10:01:43
    matlab提供了直接的方程方便我们计算,本文研究如何用Matlab对这类表达的二阶非线性方程进行相平面分析。 首先把非线性方程转化成我们想要的表达方式: 考虑如下线性二阶常微分方程: 得到: 代码 clear; %定义...
  • 而非线性偏微分方程的解析几乎不存在(尚未发现)。所幸传统上气动声学的计算是LEE(线性化欧拉方程)来计算的,在最下方的参考文献中Tam教授给出了求解的步骤以及解析(本人才疏学浅,最早的出处没有发现),...
  • 微分方程 (1+x)D2y=2y-4 初始条件 y(0)=0 y(1)=2Dy(1)如果想inline和ode45解决,不用function窗口,该如何做?1. 对于此类边值微分方程,ode**函数是无力直接求解的,Matlab提供了bvp解算器。 2. 对干你...
  • 边值问题(BVP)的Matlab解法

    千次阅读 2014-03-13 12:35:00
    微分方程 (1+x)D2y=2y-4 初始条件 y(0)=0 y(1)=2Dy(1)如果想inline和ode45解决,不用function窗口,该如何做? 1. 对于此类边值微分方程,ode**函数是无力直接求解的,Matlab提供了bvp解算器。 2....
  • 微分方程 (1+x)D2y=2y-4 初始条件 y(0)=0y(1)=2Dy(1)如果想inline和ode45解决,不用function窗口,该如何做?1.对于此类边值微分方程,ode**函数是无力直接求解的,Matlab提供了bvp解算器。 2.对干你的...
  • 用matlab进行计算微分方程解结果一样。 >> y=dsolve('Dy+y=1','y(0)=0','t') y = 1 - exp(-t) 值得考虑的是在输入u为序列,而不是t的显式函数时,如何求输出序列?目前思考的是用卷积方法应该可以。 目前...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

如何用matlab解微分方程

matlab 订阅