如何用matlab求解常微分方程?matlab解常微分方程之符号解法介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用matlab求解常微分方程?matlab解常微分方程之符号解法介绍相关的知识,希望对你有一定的参考价值。

参考技术A

应该如何用matlab求解常微分方程?MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。用matlab可以解决许多数学问题,如果用得好的话,老师布置的数学作业就不用愁了。接下来小编将给大家介绍matlab解常微分方程之符号解法,一起去看看吧!

matlab解常微分方程——符号解法:

1、首先得介绍一下,在matlab中解常微分方程有两种方法,一种是符号解法,另一种是数值解法。在本科阶段的微分数学题,基本上可以通过符号解法解决。

2、用matlab解决常微分问题的符号解法的关键命令是dslove命令。该命令中可以用D表示微分符号,其中D2表示二阶微分,D3表示三阶微分,以此类推。值得注意的是该微分默认是对自变量t求导,也可以很容易在命令中改为对其他变量求导。

3、说了半天,该命令的最完整的形式如下。r=dsolve(\'eqn1\',\'eqn2\',...,\'cond1\',\'cond2\',...,\'var\').解释如下:eqni表示第i个微分方程,condi表示第i个初始条件,var表示微分方程中的自变量,默认为t。

4、解释了半天,不如用实例来说明。下面以解决一个简单的微分方程入手。方程如下。

5、首先启动matlab软件,在命令行中欢快地敲入

dslove(‘Dy=3*x*x’,‘x’),然后轻松地摁一下键盘上的enter建,最后答案就蹦出来了。

6、下面,我们来加大难度,在上面的方程条件下加入初始条件x=0时,y=2。

只需在相同的命令中加入一个条件语句就可以了。命令形式为

dslove(‘Dy=3*x*x’,‘y(0)=2’,‘x’)。可以看到答案中的常数项

C2已经变成了2。

7、最后,我再加大一下难度。这次来求一个微分方程组。方程组如下。初始条件为x(0)=2,y(0)=1,dy(0)=1.

8、在命令中只需改一下相应的方程与条件即可以了,由于是对t求导,所以可以用默认,不需要在末尾添加‘t’。

9、可以看到用matlab中的dslove命令确实可以解决许多常微分问题。

教程结束,以上就是关于如何用matlab求解常微分方程?matlab解常微分方程之符号解法介绍。如果你还不知道如何用matlab求解常微分方程,那就按照以上方法试试吧!更多matlab使用技巧,尽在我们网站哦!

如何用matlab求解齐次线性方程组

参考技术A 先写m文件
function
[x,y]=line_solution(A,b)
[m,n]=size(A);
y=[];
if
norm(b)>0
if
rank(A)==rank([A,b])
if
rank(A)==n
disp('方程有唯一解x');
x=A\b;
else
disp('方程有无穷多解,特解为x,其齐次方程组的基础解系为y');
x=A\b;
y=null(A,'r');%null是用来求齐次线性方程组的基础解系的,加上'r'则求出的是一组最小正整数解,如果不加,则求出的是解空间的规范正交基。
end
else
disp('方程无解');
x=[];
end
else
disp('原方程组有唯一零解x');
x=zeros(n,1);
if
rank(A)<n
disp('方程组有无穷个解,基础解系为y');
y=null(A,'r');
end
end
----------------------------------------------------------------------
举例调用:
format
rat
%以有理数形式输出
A=[1,1,-3,-1;3,-1,-3,4;1,5,-9,-8];
b=[1;4;0];
[x,y]=line_solution(A,b);
x,y
format
short
%保留4位有效数字

以上是关于如何用matlab求解常微分方程?matlab解常微分方程之符号解法介绍的主要内容,如果未能解决你的问题,请参考以下文章

matlab用龙格库塔法求解变系数常微分方程

如何用matlab求解微分方程组的数值解

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

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

MATLAB常微分方程的数值解法

如何用matlab求解齐次线性方程组