问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用matlab求解向量微分方程

发布网友 发布时间:2022-04-19 11:18

我来回答

1个回答

热心网友 时间:2023-06-26 19:25

ODE部分--------ODE--->ordinary
differential
equations先总述一下:D 1、ode的求解器ode

ODE的求解器有很多,在help里可以查到。列出了每一种求解器的适应范围(stiff或者nonstiff)以及它采用的数学原理,比如Runge-Kutta,Adams,NDFs之类。(这个在数值分析课中会学到,可惜偶当时觉得很无聊,后悔中)。

大家有时间多去了解了解,懂了来给大家分享分享:D


如果不懂那么多理论,优先采用ode45,如果你发现它计算的效率特别低下或者是计算根本出不来,则考虑换ode15s。
sol是任意名字。对于怎么把要求解的方程写为function,2楼例子。所以你告诉求解器这三样东西(输入参数),它就可以为你求解出y。

sol
=
ode45(@yourfun,[tmin,tmax],[y0,y0'])

你的公式

积分范围

初值

sol=ode45(@vdp1,[0,20],[2,0]);

把以上代码命令行里直接执行,这是matlab自带的一个例子。在workspace里你会看到多了一个变量叫sol.没错这就是求解器的返回值。它是一个1*1的结构体。双击它,你会看到它的内部组织,各个field以及它们的“形状”。每一个你都可以双击它,继续深入看它的结构。我现在关心的只有X,Ysolverextdata,x,y,stats,idata================================================================================2、求解计算完毕后,我们可以做什么

首先,当然是得到结果。

deval(sol,x,1)

sol如上,写在求解等号左边的变量名字,是返回来的handles。x是一组向量,是你期望求值的点。数字1就表示你要y第一行的值(这个是在求解微分方程组的情况。不明白什么叫第一行,就去双击sol,再双击y),如果去掉1,则返回矩阵,也就是所有y的值。在matlab命令行运行以下代码:
sol=ode45(@vdp1,[0,20],[2,0]);x=linspace(0,20,100);y=deval(sol,x,1);plot(x,y);

此外,我们还可以扩展,matlab叫做odextend。扩展什么?

odextend(sol,odefun,tfinal)

看到最后一个变量名了吧,t_final
这样明显一点。也就是,我之前算过的微分方程组,原来算到t1,我现在要接着继续计算到新的t_final。默认以上次计算的y终值,作为此次计算的初值。

odextend(sol,odefun,tfinal,yinit)

当然,如果你想重新给它赋初值,也可以加入参数yinit。(友情提示:获取上次计算的Y的终值:y=sol.y(:,end))

sol=odextend(sol,@vdp1,20);plot(sol.x,sol.y(1,:))=====================================================================================

3、求解器的参数设置

就是option这个东西,既然是选项,则也可以不设置它,采用默认值。

要设置的话,可以用odeset这个命令。怎么用?

option=odeset('name1',value1,'name2',value2......) (matlab所有参数设置基本上都是这种形式)

name自然就是属性名字。value就是你赋予它的值。求解器可以设置哪些参数,而设置了这些参数有什么影响,而这些参数应该则么设置。在命令行里输入
help
odeset:D
。看到的绝对比我讲得详细。所以我不多说了。(友情提醒,如果使用ode15什么来着,可以为它设置Jacobian这个参数,以更快更准更好的求解。如何设置,不懂的话,偶过后会贴。)

O=odeget(option,'name')

编过GUI的话这两个命令再熟悉不过了:D
matlab解微分方程组

matlab解微分方程组方法是:1、首先,在matlab中解常微分方程有两种方法,一种是符号解法,另一种是数值解法。在本科阶段的微分数学题,基本上可以通过符号解法解决。2、用matlab解决常微分问题的符号解法的关键命令是dsolve命令。该命令中可以用D表示微分符号,其中D2表示二阶微分,D3表示三阶微分,以此...

短路的计算步骤是什么?

假设条件在短路的实际计算中, 为了能在准确范围内迅速地计算短路电流, 通常采取以下简化假设。(1)不考虑发电机的摇摆现象。(2)不考虑磁路饱和,认为短路回路各元件的电抗为常数。(3)不考虑线路对地电容, 变压器的磁支路和高压电网中的...

如何使用Matlab求微分方程的解?

第一种方法:利用dsolve函数求微分方程的符号解(通解):对于一些不是很难,要求出通解的微分方程,用dsolve函数求解。1、 打开Matlab软件-->点击新建脚本菜单,新建一个脚本文件用于编写微分方程求解程序。2、 输入微分方程求解程序-->点击保存-->点击运行。3、在matlab的命令窗口即可看到求解结果,是...

用matlab怎么求解微分方程?

第一步、分析微分方程的特点确定模块 我们将y"+4y'+4y=cos2t方程改写成y"=cos2t-4y'-4y,从右边可知,式子是由cos2t外加载信号,一阶导数项和一次变量组成。所以我们,可以用下列功能模块来搭建其仿真模型 cos2t:使用Fcn模块和Clock模块;y':使用lntegrator模块;y':使用lntegrator模块;-4:...

MATLAB求解微分方程

使用MATLAB求微分方程的解析解可通过调用函数实现。编写代码时,以字母D代表微分,例如表达二阶微分为D2,三阶微分为D3,后面紧跟被求解的变量名称。自变量默认为t,若需指定可自行输入。在单引号中输入微分方程表达式,注意符合MATLAB语法规范,如'y-D*y=2*x',务必包含乘号符号。无需初始值时,求出...

怎样用matlab画微分方程组向量场,以及对应程序,求大神帮忙,谢谢...

使用ode系列的函数求解微分方程组.d = @(t,x)[x(2); -x(1).^2-2*x(1)-x(2)/2];[t x] = ode45(d,[0 5.1],[0; 4]); % 这个tfinal自己调出来的一个近似值 plot(x(:,1),x(:,2))

用matlab如何求解微分方程并画图?

如何用matlab求解微分方程并画图,可以先用dsolve()或ode()求出其微分方程(组)的解析解或数值解,然后用plot()绘制其图形。例如:解微分方程 y'=y-2t/y,y(0)=1,0<t<4 1、用dsolve()求解,代码及结果如下 2、用ode45()求解,代码及结果如下 3、当然喽,使用dsolve()或ode(...

如何在Matlab里绘制一个简单的微分方程呢?

1、打开Matlab软件的SimulinkLibrary;如图所示:2、按File——New——Model,建立新的Model界面 3、绘出传递函数,其中,输入输出点,采用Inport和Outport即可 4、按如下路径点击Analysis——ControlDesign——LinearAnalysis…5、弹出如下界面:6、在AnalysisI/Os中选择“Rootlevelinportsandoutports”7、在...

如何用matlab求解微分方程并画图

1、找到关于求解常微分方程的习题。2、这里用matlab求解,主要用到的就是“dsolve”,具体的格式如下,但是不仅仅局限下面两种,其中eq就是代表方程式,而con为初始条件。3、这里的“x”关于x的函数。知道语法就可以进行计算了。4、在matlab中输入如下,dsolve('D2y+2*Dy+exp(x)=0','x'),并直接...

如何利用matlab求微分方程通解

对于一般的微分方程,可以用dsolve()函数,直接求出其微分方程通解。例如:求下列微分方程的通解 求解代码:syms y(t) a %变量声明 eqn = diff(y,t,2) == a*y; %定义方程ySol(t) = dsolve(eqn) %方程求解 求解过程与结果 ...

用matlab求解常系数微分方程组并画出图像

1定义函数:function y=fun(t,x)y=zeros(3,1);x1=x(1);x2=x(2);x3=x(3);y(1)=x1*(1-x1/150000-0.5*x2/30000);y(2)=x2*(-1-x2/30000+0.5*x1/150000-2*x3/2200);y(3)=x3*(-1-x3/2200+2*x2/30000);2解方程并画图 [t,x]=ode23(@fun,[0,1],[121000,...

如何用matlab求解微分方程组 如何用matlab解微分方程 利用matlab求解微分方程 欧拉法求解微分方程matlab matlab求解带参数的微分方程 matlab求微分方程特解 matlab求解微分方程组并画图 matlab解二阶微分方程 matlab求一阶微分方程
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么鸽子炖汤好 请问有不带电的原子团吗? 高位放量涨停意味着什么? 腊梅什么时间种植最好 横盘时间长了的股票一定会上涨吗? 一个老人,如果即将“归去”,那他会有以下4个举动,儿女要留意 朗读者经典美文 朗读者经典作品2篇 洪恩软件里的一个农场游戏(小小朗读者?),很想把这个游戏找回来,很怀念... 放量涨停说明什么 股票巨量涨停代表什么 帮我找些古诗 怎么弄到QQ密码 推荐几篇关于辩论的古诗文 辩论褰规则究竟是什么呢? qq注销申请页面链接 怎么注销qq在所有网站注册的业务 注销QQ交友用户的网址? 注销QQ号的网站有没有? 谁有注销QQ的网址? 怎么注销网页QQ 可以在电脑上下载免费的ps软件吗 如何? 电脑ps软件有免费的吗 这是怎么回事啊?我qq不能注册新账号 qq要怎么注册新账号 为什么QQ账号注册不了?手机号是新的无违章行为 现在注册不了QQ号了? QQ注册失败该怎么办? QQ账号注册不了是怎么回事 红豆,赤小豆,小米,薏米,茨实,燕麦能一齐煮粥吗 红豆,薏仁,黑米,小米,糙米,百合,麦片有食物相克吗 c语言实验报告心得 adc0809的多通道c程序设计? skt t1烬的皮肤什么时候卖 linux 的program问题 win7封装激活参数怎么填? 苹果7p值得买么 现在的苹果7p多少钱买合适 苹果7p怎么样啊 苹果7p是什么处理器 三星手机怎么查保修期? 三星的手机怎样查保修期? 我要买阿曼提奶粉 阿曼的风俗习惯是怎样的气候最高气温 在迪拜机场买什么东西比较划算 骆驼选美在哪个国家举办的? 阿曼有什么好玩的地方 阿曼的风俗习惯是怎样的气候最高气温 日本1-0阿曼升至小组第二,如何评价这场比赛? 阿曼人的简介? 为什么阿曼有一部分领土在霍尔木兹海峡?