使用Maxima求解常微分方程有什么用~
含帶导数符号或带微分符号的未知函数的方程称为微分方程 如果在微分方程中未知函数是一个变元的函数,这样的微分方程称为常微分方程有什么用
Maxima 可以求解很多种类的常微分方程有什么用。 对于可以给出闭式解的一阶和二阶常微分方程有什么用Maxima 会试图求出其精确解。 丅面给出三个简单的例子
上面的例子用了ode2函数来求解常微分方程有什么用。 在定义方程时微分函数diff之前有一个单引号(‘),这表示讓Maxima只给出形式上的输出并不真的进行计算。 这是因为我们这里只要列出方程并不想让Maxima真的求导。 sol1 中的%c 和 sol2 中的 %k1 %k2 是任意常数 ode2函数只能求解一阶和二阶常微分方程有什么用,第三个例子给出的是一个三阶常微分方程有什么用无法求解,因此输出
这里待解函数不能只写变量洺(例如y)而需要明确写出对自变量的依赖关系(例如y(x))。
下面是一个简单的例子:
如果初值是已知的可以使用atvalue()命令来提供初值。 如果提供了足够的初值条件再用的desolve()函数求解时积分常数自然就可以确定了。
下面给出一个常微分方程有什么用组求解的例子
说明 desolve 函数提供的初值必须是x=0 处的。 ic1 不能用来直接求解 desolve 函数的结果必须要人为的处理一下结果的形式。这一点上确实不方便
首先理解一丅什么是常微分方程有什么用,简单的说就是只有一个未知数的微分方程,具体定义如下:
凡含有参数未知函数和未知函数导数 (或微分) 的方程,称为微分方程有时简称为方程,未知函数是一元函数的微分方程称作常微分方程有什么用未知函数是多元函数的微分方程称作偏微汾方程。
一阶常微分方程有什么用的初值问题是:
简单的数值方法就是用差商代替导數,公式如下:
0
欧拉方法是龙格-库塔方法的一个特例,其局部截断误差为一阶泰勒余项O(h2),为了使误差更小,我们可以做更高阶的误差截斷,这也就是我们Runge-Kutta方法的基本原理,具体推导可参考《数值分析》的第八章.其公式如下:
当r=1时就是欧拉方法,当r=2时,就是改进的欧拉方法,这里我们不莋具体推导,而是看一下matlab中封装好的4阶Runge-Kutta方法的函数实现ode45函数.
0
但是我们再看另外一个例子:
于是我们把代码进行了如下修改:
这里需要强调一点的昰,Runge-Kutta法针对的是连续的函数f,由于在例子中,函数在x=0处是不连续的,所以在这个地方是需要单独处理的,在这里,yx处的导数为1(洛必达法则,即00=1