ode45函数无法求出解析解,dsolve可以求出解析解(若有),但是速度较慢.

1.      ode45函数

①求一阶常微分方程的初值问题

[t,y] = ode45(@(t,y)y-2*t/y,[0,4],1);

plot(t,y);

求解 y’ – y + 2*t / y且初值y(0) = 1的常微分方程初值问题,返回自变量和函数的若干个值.

若不写返回值,则会自动作出函数随自变量的变化图像.

ode45(@(t,y)y-2*t/y,[0,4],1);

②求解一阶微分方程组

x’ = -x^3-y,x(0)=1

y’ = x-y^3,y(0)=0.5.

自变量为t,且0<t<30.

求解过程如下.

第一步,在M函数文件中将函数x和函数y写成向量形式.

function f = fun(t,x);

f(1) = -x(1)^3 – x(2);

f(2) = x(1) – x(2)^3;

f = f(:);%确保f为列向量.

第二步,在M脚本文件中求解.

[t,x] = ode45(@fun,[0,30],[1;0.5]);

subplot(1,2,1);plot(t,x(:,1),t,x(:,2),':');xlabel('t');ylabel('x/y');%作x和y随t变化图

subplot(1,2,2);plot(x(:,1),x(:,2));xlabel('x');ylabel('y');%作x和y的相位图

第三步,在命令窗口运行M脚本文件中的代码.

③求解高阶常微分方程组

将高阶常微分方程组通过变量替换转化为一阶的常微分方程组,然后用ode45求解.

2.      dsolve函数

①求解析解

y’ = a*x + b;

s = dsolve('D2y=a*y+b*x','x');

D2y用以表示y的二阶导数,默认是以t为自变量的,所以最好指明自变量为x.

②初值问题

y’ = y – 2*t / y , y(0) = 1;

s = dsolve('Dy == y - 2*t / y','y(0) ==1');

③边值问题

x*y’’ – 3*y’ = x^2 , y(1) = 0 , y(5) = 0;

s = dsolve('x*D2y - 3*Dy ==x^2','y(1)=0','y(5) == 0','x');

函数最后一个参数指明自变量为x.

④高阶方程

求解y’’ = cos(2x) – y , y(0) = 1 , y’(0) = 0;

s=dsolve('D2y == cos(2*x) - y','y(0) =1','Dy(0) = 0','x');

simplify(s);

⑤方程组问题

f’ = f + g , g’ = -f + g,f(0) = 1, g(0) =2;

[f,g]= dsolve('Df == f + g','Dg = -f + g','f(0)==1','g(0) == 2','x');

MATLAB求解常微分方程:ode45函数与dsolve函数的更多相关文章

  1. MATLAB中白噪声的WGN和AWGN函数的使用

    MATLAB中白噪声的WGN和AWGN函数的使用如下: MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN.WGN用于产生高斯白噪声,AWGN则用于在某一 信号 ...

  2. Matlab中如何将(自定义)函数作为参数传递给另一个函数

    假如我们编写了一个积分通用程序,想使它更具有通用性,那么可以把被积函数也作为一个参数.在c/c++中,可以使用函数指针来实现上边的功能,在matlab中如何实现呢?使用函数句柄--这时类似于函数指针的 ...

  3. matlab——sparse函数和full函数(稀疏矩阵和非稀疏矩阵转换)

    函数功能:生成稀疏矩阵 使用方法 :S = sparse(A) 将矩阵A转化为稀疏矩阵形式,即矩阵A中任何0元素被去除,非零元素及其下标组成矩阵S.如果A本身是稀疏的,sparse(S)返回S. S ...

  4. matlab sparse函数和full函数用法详解(转)

    sparse函数 功能:Create sparse matrix-创建稀疏矩阵 用法1:S=sparse(X)--将矩阵X转化为稀疏矩阵的形式,即矩阵X中任何零元素去除,非零元素及其下标(索引)组成矩 ...

  5. Matlab的BP神经网络工具箱及其在函数逼近中的应用

    1.神经网络工具箱概述 Matlab神经网络工具箱几乎包含了现有神经网络的最新成果,神经网络工具箱模型包括感知器.线性网络.BP网络.径向基函数网络.竞争型神经网络.自组织网络和学习向量量化网络.反馈 ...

  6. matlab——sparse函数和full函数

    转载:http://www.cnblogs.com/lihuidashen/p/3435883.html matlab——sparse函数和full函数(稀疏矩阵和非稀疏矩阵转换)   函数功能:生成 ...

  7. Matlab中常见的神经网络训练函数和学习函数

    一.训练函数 1.traingd Name:Gradient descent backpropagation (梯度下降反向传播算法 ) Description:triangd is a networ ...

  8. matlab中关于函数句柄、feval函数以及inline函数的解析 (转)

    http://blog.sina.com.cn/s/blog_7bff755b010180l3.html MATLAB函数句柄 函数句柄(Function handle)是MATLAB的一种数据类型. ...

  9. 也谈matlab中读取视频的一个重要函数mmreader

    也谈matlab中读取视频的一个重要函数mmreader 在matlab中输入help mmreader来查阅一下该函数,有如下信息: MMREADER Create a multimedia rea ...

随机推荐

  1. zookeeper3.4.6完全分布式安装

    首先在官网下载zookeeper3.4.6安装包,解压到/usr/local目录下 然后改名为zookeeper. 环境变量配置:sudo vim /etc/profile  添加环境变量如下图 然后 ...

  2. Laravel 5 如何实现网站在维护模式下允许指定 IP 用户访问(白名单)

    为了测试需要,有时候需要在网站处于维护模式下允许特定IP访问网站,在 Laravel 中,这可以通过为维护模式编写自定义中间件来实现. 默认情况下,Laravel 使用 CheckForMainten ...

  3. SRM710 div1 ReverseMancala(trick)

    题目大意, 给定一个有n个点的环,n不超过10,每个点上有一个权重 起始时权重将会给出,然后有2种操作 第一种操作是,选择一个位置i,获得权重w = a[i],把a[i]变成0,然后接下来在环上顺着走 ...

  4. 【题解】HAOI2007分割矩阵

    水题盛宴啦啦啦……做起来真的极其舒服,比某些毒瘤题好太多了…… 数据范围极小 --> 状压 / 搜索 / 高维度dp:观察要求的均方差,开始考虑是不是能够换一下式子.我们用\(a_{x}\)来表 ...

  5. [AHOI2005]航线规划——LCT维护边双联通分量

    因为只能支持加入一个边维护边双,所以时光倒流 维护好边双,每次就是提取出(x,y)的链,答案就是链长度-1 具体维护边双的话, void access(int x){ for(reg y=0;x;y= ...

  6. [模拟赛] GotoAndPlay

    GotoAndPlay 10月3日,在杭州市西湖景区,一只小松鼠不停地接受一道道食物,花生. 玉米.饼干,可谓来者不拒,憨态可掬的模样吸引了众多围观者... Description 小松鼠终于吃撑了, ...

  7. Educational Codeforces Round 55 (Rated for Div. 2):E. Increasing Frequency

    E. Increasing Frequency 题目链接:https://codeforces.com/contest/1082/problem/E 题意: 给出n个数以及一个c,现在可以对一个区间上 ...

  8. Android百度定位地图使用--文章集锦

    Android百度定位API使用方法 Android百度地图开发(一)之初体验 AndroidNote013.在百度地图上画出轨迹 Android学习笔记之百度地图(分条目覆盖物:ItemizedOv ...

  9. Spring - IoC(8): 基于 Annotation 的配置

    除了基于 XML 的配置外,Spring 也支持基于 Annotation 的配置.Spring 提供以下介个 Annotation 来标注 Spring Bean: @Component:标注一个普 ...

  10. Tomcat启动报错:java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet

    测试tomcat的comet Java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet 异常 因为工程 ...