Maple-ch-常微分方程
数学软件Maple在常微分方程教学中的应用
作者简介 : 李姝敏 ( 1 9 7 9一) , 女, 内蒙古赤峰人 , 硕士 , 讲师 , 研 究方向 : 孤 立子理 论与可积 系统及其应 用。
55
定 对应 的 函数 Y ( ), 也 可得 到 微 分 方程 ( 2 ) 一 个 的
在 常微 分 方 程 的 教材 中 , 首 先 要 介 绍初 等 积 分 法 求解 一 阶 常微分 方程 ( 教材第二章 ) , 即将 微 分 方 程求解 问题转 化 为积分 问题 。虽然 不是 所有 的微 分
收稿 日期 : 2 0 1 3—1 0— 2 3
基金项 目: 国家 自然科 学基金 的项 目( 1 1 2 6 1 0 3 5 ) , 内蒙古 自然科学基 -  ̄ , . ( 2 0 1 2 MS 0 1 0 2 ) , 内蒙古教 育厅 高等 学校科研 项
例 1求 解一 阶 常微 分方程
:
d
2 —y
。
( 1 )
并 画 出该 方程 的方 向场 和积 分 曲线 。 解: ( 一) 求 解 采 用 用软 件 Ma p l e的 d s o l v e 命 令
s o l u t i o n := d s o l v e( d i f( Y ( ) , ) = 2 Y ( ) , Y ( ) ) ; 结 果 为 s o l u t i o n : =Y ( ) =一2+2 +e 一 C 1 —
方 程都 可 以利 用初 等 积 分 法 求 解 , 但 是 也 反 映 了微
分方程的相 当一部分 , 因此是微分方程求解 的基础。
在 第一 章第 三 节介 绍微 分方 程 的积分 曲线 , 等倾 线 , 方 向场 等概 念 时 , 对 于初 次 接 触 常 微 分 方程 的学 生 来说 , 几 乎 都不 理解 , 这 也会 影 响学生 的积 极性 和学 习兴趣 。如果将 数 学 软件 Ma p l e应 用 于 教 学 , 就 比 较 形象 和 直观 , 也 便 于 学 生 的 理解 。下 面通 过 一 个
Maple常用计算命令
常用计算命令《Maple 指令》7.0版本第1章章数1.1 复数Re,Im - 返回复数型表达式的实部/虚部abs - 绝对值函数argument - 复数的幅角函数conjugate - 返回共轭复数csgn - 实数和复数表达式的符号函数signum - 实数和复数表达式的sign 函数51.2 MAPLE 常数已知的变量名称指数常数(以自然对数为底)I - x^2 = -1 的根infinity 无穷大1.3 整数函数! - 阶乘函数irem, iquo - 整数的余数/商isprime - 素数测试isqrfree - 无整数平方的因数分解max, min - 数的最大值/最小值mod, modp, mods - 计算对 m 的整数模rand - 随机数生成器randomize - 重置随机数生成器1.4 素数Randpoly, Randprime - 有限域的随机多项式/首一素数多项式ithprime - 确定第 i 个素数nextprime, prevprime - 确定下一个最大/最小素数1.5 数的进制转换convert/base - 基数之间的转换convert/binary - 转换为二进制形式convert/decimal - 转换为 10 进制convert/double - 将双精度浮点数由一种形式转换为另一种形式convert/float - 转换为浮点数convert/hex - 转换为十六进制形式convert/metric - 转换为公制单位convert/octal - 转换为八进制形式1.6 数的类型检查type - 数的类型检查函数第2章初等数学2.1 初等函数product - 确定乘积求和不确定乘积exp - 指数函数sum - 确定求和不确定求和sqrt - 计算平方根算术运算符+, -, *, /, ^add, mul - 值序列的加法/乘法2.2 三角函数arcsin, arcsinh, . - 反三角函数/反双曲函数sin, sinh, . - 三角函数/双曲函数2.3 LOGARITHMS 函数dilog - Dilogarithm 函数ln, log, log10 - 自然对数/一般对数,常用对数2.4 类型转换convert/`+`,convert/`*` - 转换为求和/乘积convert/hypergeom - 将求和转换为超越函数convert/degrees - 将弧度转换为度convert/expsincos - 将trig 函数转换为exp, sin, cosconvert/Ei - 转换为指数积分convert/exp - 将trig 函数转换为指数函数convert/ln - 将arctrig 转换为对数函数polar - 转换为极坐标形式convert/radians - 将度转换为弧度convert/sincos - 将trig 函数转换为sin, cos, sinh, cosh convert/tan - 将trig 函数转换为tanconvert/trig - 将指数函数转换为三角函数和双曲函数第3章求值3.1 假设功能3.2 求值Eval - 对一个表达式求值eval - 求值evala - 在代数数(或者函数)域求值evalb - 按照一个布尔表达式求值evalc - 在复数域上符号求值evalf - 使用浮点算法求值evalhf - 用硬件浮点数算法对表达式求值evalm - 对矩阵表达式求值evaln - 求值到一个名称evalr, shake - 用区间算法求表达式的值和计算范围evalrC - 用复数区间算法对表达式求值value - 求值的惰性函数第4章求根,解方程4.1 数值解fsolve - 利用浮点数算法求解solve/floats - 包含浮点数的表达式4.2 最优化extrema - 寻找一个表达式的相对极值minimize, maximize - 计算最小值/最大值maxnorm - 一个多项式无穷大范数4.3 求根allvalues -计算含有RootOfs的表达式的所有可能值isqrt, iroot - 整数的平方根/第n 次根realroot - 一个多项式的实数根的隔离区间root - 一个代数表达式的第n 阶根RootOf - 方程根的表示surd - 非主根函数roots - 一个多项式对一个变量的精确根turm, sturmseq - 多项式在区间上的实数根数和实根序列4.4 解方程eliminate - 消去一个方程组中的某些变量isolve - 求解方程的整数解solvefor - 求解一个方程组的一个或者多个变量isolate - 隔离一个方程左边的一个子表达式singular - 寻找一个表达式的极点solve/identity - 求解包含属性的表达式solve/ineqs - 求解不等式solve/linear - 求解线性方程组solve/radical - 求解含有未知量根式的方程solve/scalar - 标量情况(单变量和方程)solve/series - 求解含有一般级数的方程solve/system - 解方程组或不等式组第5章操作表达式5.1 处理表达式Norm - 代数数 (或者函数) 的标准型Power - 惰性幂函数Powmod -带余数的惰性幂函数Primfield - 代数域的原始元素Trace - 求一个代数数或者函数的迹charfcn - 表达式和集合的特征函数Indets - 找一个表达式的变元invfunc - 函数表的逆powmod - 带余数的幂函数Risidue - 计算一个表达式的代数余combine - 表达式合并(对tan,cot不好用)expand - 表达式展开Expand - 展开表达式的惰性形式expandoff/expandon - 抑制/不抑制函数展开5.2 因式分解Afactor - 绝对因式分解的惰性形式Afactors - 绝对因式分解分解项列表的惰性形式Berlekamp - 因式分解的Berlekamp 显式度factor - 多元的多项式的因式分解factors - 多元多项式的因式分解列表Factor - 函数factor 的惰性形式Factors - 函数factors 的惰性形式polytools[splits] - 多项式的完全因式分解第6章化简6.1 表达式化简118simplify - 给一个表达式实施化简规则simplify/@ - 利用运算符化简表达式simplify/Ei - 利用指数积分化简表达式simplify/GAMMA - 利用GAMMA 函数进行化简simplify/RootOf - 用RootOf 函数化简表达式simplify/wronskian - 化简含wronskian 标识符的表达式simplify/hypergeom - 化简超越函数表达式simplify/ln - 化简含有对数的表达式simplify/piecewise - 化简分段函数表达式simplify/polar - 化简含有极坐标形式的复数型表达式simplify/power - 化简含幂次的表达式simplify/radical - 化简含有根式的表达式simplify/rtable - 化简rtable 表达式simplify/siderels - 使用关系式进行化简simplify/sqrt - 根式化简simplify/trig - 化简trig 函数表达式simplify/zero - 化简含嵌入型实数和虚数的复数表达式6.2 其它化简操作Normal - normal 函数的惰性形式convert - 将一个表达式转换成不同形式radnormal - 标准化一个含有根号数的表达式rationalize - 分母有理化第7章操作多项式7.0 MAPLE 中的多项式简介7.1 提取coeff - 提取一个多项式的系数coeffs - 提取多元的多项式的所有系数coeftayl - 多元表达式的系数lcoeff, tcoeff - 返回多元多项式的首项和末项系数7.2 多项式约数和根gcd, lcm - 多项式的最大公约数/最小公倍数psqrt, proot - 多项式的平方根和第n次根rem,quo - 多项式的余数/商7.3 操纵多项式convert/horner - 将一个多项式转换成Horner形式collect - 象幂次一样合并系数compoly - 确定一个多项式的可能合并的项数convert/polynom - 将级数转换成多项式形式convert/mathorner - 将多项式转换成Horner矩阵形式convert/ratpoly - 将级数转换成有理多项式sort - 将值的列表或者多项式排序sqrfree - 不含平方项的因数分解函数discrim - 多项式的判别式fixdiv - 计算多项式的固定除数norm - 多项式的标准型resultant - 计算两个多项式的终结式bernoulli - Bernoulli 数和多项式bernstein - 用Bernstein多项式近似一个函数content, primpart - 一个多元的多项式的内容和主部degree, ldegree - 一个多项式的最高次方/最低次方divide - 多项式的精确除法euler - Euler 数和多项式icontent - 多项式的整数部分interp - 多项式的插值prem, sprem - 多项式的pseudo 余数和稀疏pseudo 余数randpoly - 随机多项式生成器spline - 计算自然样条函数第8章有理表达式8.0 有理表达式简介8.1 操作有理多项式numer,denom - 返回一个表达式的分子/分母frontend - 将一般的表达式处理成一个有理表达式normal - 标准化一个有理表达式convert/parfrac - 转换为部分分数形式convert/rational - 将浮点数转换为接近的有理数ratrecon - 重建有理函数第9章微积分9.1 取极限Limit, limit - 计算极限limit[dir] - 计算方向极限limit[multi] - 多重方向极限limit[return] - 极限的返回值9.2 连续性测试discont - 寻找一个函数在实数域上的间断点fdiscont - 用数值法寻找函数在实数域上的间断点iscont - 测试在一个区间上的连续性D - 微分算子D, diff - 运算符D 和函数diffdiff, Diff - 微分或者偏微分convert/D - 将含导数表达式转换为D运算符表达式convert/diff - 将D(f)(x)表达式转换为diff(f(x),x)的形式implicitdiff - 由一个方程定义一个函数的微分9.4 积分计算Si, Ci … - 三角和双曲积分Dirac, Heaviside - Dirac 函数/Heaviside阶梯函数Ei - 指数积分Elliptic - 椭圆积分FresnelC, … - Fresnel 正弦,余弦积分和辅助函数int, Int - 定积分和不定积分Legendr eP, … - Legendre 函数及其第一和第二类函数Li - 对数积分student[changevar] - 变量代换dawson - Dawson 积分ellipsoid - 椭球体的表面积evalf(int) - 数值积分intat, Intat - 在一个点上积分求值第10章微分方程10.1 微分方程分类odeadvisor - ODE-求解分析器DESol - 表示微分方程解的数据结构pdetest - 测试pdsolve 能找到的偏微分方程(PDEs)解10.2 常微分方程求解dsolve - 求解常微方程 (ODE)dsolve - 用给定的初始条件求解ODE 问题dsolve/inttrans - 用积分变换方法求解常微分方程dsolve/numeric - 常微方程数值解dsolve/piecewise - 带分段系数的常微方程求解dsolve - 寻找ODE 问题的级数解dsolve - 求解ODEs 方程组odetest - 从ODE 求解器中测试结果是显式或者隐式类型10.3 偏微分方程求解pdsolve - 寻找偏微分方程 (PDEs) 的解析解第11章数值计算11.1 MAPLE 中的数值计算环境IEEE 标准和Maple数值计算数据类型特殊值环境变量11.2 算法标准算法复数算法含有0,无穷和未定义数的算法11.3 数据构造器254complex - 复数和复数构造器Float, … - 浮点数及其构造器Fraction - 分数及其的构造器integer - 整数和整数构造器11.4 MATLAB 软件包简介11.5 “”区间类型表达式第12章级数12.1 幂级数的阶数Order - 阶数项函数order - 确定级数的截断阶数12.2 常见级数展开series - 一般的级数展开taylor - Taylor 级数展开mtaylor - 多元Taylor级数展开poisson - Poisson级数展开.26812.3 其它级数eulermac - Euler-Maclaurin求和piecewise - 分段连续函数asympt - 渐进展开第13章特殊函数AiryAi, AiryBi - Airy 波动函数AiryAiZeros, AiryBiZeros - Airy函数的实数零点AngerJ, WeberE - Anger函数和Weber函数BesselI, HankelH1, … - Bessel函数和Hankel函数BesselJZeros, … - Bessel函数实数零点Beta - Beta函数EllipticModulus - 模数函数k(q)GAMMA, lnGAMMA - 完全和不完全Gamma函数GaussAGM - Gauss 算术的几何平均数JacobiAM, ., - Jacobi 振幅函数和椭圆函数JacobiTheta1, JacobiTheta4 - Jacobi theta函数JacobiZeta - Jacobi 的Zeta函数KelvinBer, KelvinBei - Kelvin函数KummerM, - Kummer M函数和U函数LambertW - LambertW函数LerchPhi - 一般的Lerch Phi函数LommelS1, LommelS2 - Lommel函数MeijerG - 一个修正的Meijer G函数Psi - Digamma 和Polygamma函数StruveH, StruveL - Struve函数WeierstrassP - Weierstrass P函数及其导数WhittakerM - Whittaker 函数Zeta - Zeta 函数erf, … - 误差函数,补充的误差函数和虚数误差函数harmonic - 调和函数hypergeom - 广义的超越函数pochhammer - 一般的pochhammer函数polylog - 一般的polylogarithm函数第14章线性代数14.1 ALGEBRA(代数)中矩阵,矢量和数组14.2 LINALG 软件包简介14.3 数据结构矩阵matrices(小写)矢量vectors(矢量)convert/matrix - 将数组,列表,Matrix 转换成matrixconvert/vector - 将列表,数组或Vector 转换成矢量vector linalg[matrix] - 生成矩阵matrix(小写)linalg[vector] - 生成矢量vector(小写)14.4 惰性函数Det - 惰性行列式运算符Eigenvals - 数值型矩阵的特征值和特征向量Hermite, Smith - 矩阵的Hermite 和Smith 标准型14.5 LinearAlgebra函数Matrix 定义矩阵Add 加/减矩阵Adjoint 伴随矩阵BackwardSubstitute 求解 A . X = B,其中 A 为上三角型行阶梯矩阵BandMatrix 带状矩阵Basis 返回向量空间的一组基SumBasis 返回向量空间直和的一组基IntersectionBasis 返回向量空间交的一组基BezoutMatrix 构造两个多项式的 Bezout 矩阵BidiagonalForm 将矩阵约化为双对角型CharacteristicMatrix 构造特征矩阵CharacteristicPolynomial 构造矩阵的特征多项式CompanionMatrix 构造一个首一(或非首一)多项式或矩阵多项式的友矩阵(束)ConditionNumber 计算矩阵关于某范数的条件数ConstantMatrix 构造常数矩阵ConstantVector 构造常数向量Copy 构造矩阵或向量的一份复制CreatePermutation 将一个 NAG 主元向量转换为一个置换向量或矩阵CrossProduct 向量的叉积`&x` 向量的叉积DeleteRow 删除矩阵的行DeleteColumn 删除矩阵的列Determinant 行列式Diagonal 返回从矩阵中得到的向量序列DiagonalMatrix 构造(分块)对角矩阵Dimension 行数和列数DotProduct 点积BilinearForm 向量的双线性形式EigenConditionNumbers 计算数值特征值制约问题的特征值或特征向量的条件数Eigenvalues 计算矩阵的特征值Eigenvectors 计算矩阵的特征向量Equal 比较两个向量或矩阵是否相等ForwardSubstitute 求解 A . X = B,其中 A 为下三角型行阶梯矩阵FrobeniusForm 将一个方阵约化为 Frobenius 型(有理标准型)GaussianElimination 对矩阵作高斯消元ReducedRowEchelonForm 对矩阵作高斯-约当消元GetResultDataType 返回矩阵或向量运算的结果数据类型GetResultShape 返回矩阵或向量运算的结果形状GivensRotationMatrix 构造 Givens 旋转的矩阵GramSchmidt 计算一个正交向量集HankelMatrix 构造一个 Hankel 矩阵HermiteForm 计算一个矩阵的 Hermite 正规型HessenbergForm 将一个方阵约化为上 Hessenberg 型HilbertMatrix 构造广义 Hilbert 矩阵HouseholderMatrix 构造 Householder 反射矩阵IdentityMatrix 构造一个单位矩阵IsDefinite 检验矩阵的正定性,负定性或不定性IsOrthogonal 检验矩阵是否正交IsUnitary 检验矩阵是否为酉矩阵IsSimilar 确定两个矩阵是否相似JordanBlockMatrix 构造约当块矩阵JordanForm 将矩阵约化为约当型KroneckerProduct 构造两个矩阵的 Kronecker 张量积LeastSquares 方程的最小二乘解LinearSolve 求解线性方程组 A . x = bLUDecomposition 计算矩阵的 Cholesky,PLU 或 PLU1R 分解Map 将一个程序映射到一个表达式上,对矩阵和向量在原位置上进行处理MatrixAdd 计算两个矩阵的线性组合VectorAdd 计算两个向量的线性组合MatrixExponential 确定一个矩阵 A 的矩阵指数 exp(A)MatrixFunction 确定方阵 A 的函数 F(A)MatrixInverse 计算方阵的逆或矩阵的 Moore-Penrose 伪逆MatrixMatrixMultiply 计算两个矩阵的乘积MatrixVectorMultiply 计算一个矩阵和一个列向量的乘积VectorMatrixMultiply 计算一个行向量和一个矩阵的乘积MatrixPower 矩阵的幂MinimalPolynomial 构造矩阵的最小多项式Minor 计算矩阵的子式Multiply 矩阵相乘Norm 计算矩阵或向量的p-范数MatrixNorm 计算矩阵的p-范数VectorNorm 计算向量的p-范数Normalize 向量正规化NullSpace 计算矩阵的零度零空间OuterProductMatrix 两个向量的外积Permanent 方阵的不变量Pivot 矩阵元素的主元消去法PopovForm Popov 正规型QRDecomposition QR 分解RandomMatrix 构造随机矩阵RandomVector 构造随机向量Rank 计算矩阵的秩Row 返回矩阵的一个行向量序列Column 返回矩阵的一个列向量序列RowOperation 对矩阵作初等行变换ColumnOperation 对矩阵作出等列变换RowSpace 返回矩阵行空间的一组基ColumnSpace 返回矩阵列空间的一组基ScalarMatrix 构造一个单位矩阵的数量倍数ScalarVector 构造一个单位向量的数量倍数ScalarMultiply 矩阵与数的乘积MatrixScalarMultiply 计算矩阵与数的乘积VectorScalarMultiply 计算向量与数的乘积SchurForm 将方阵约化为 Schur 型SingularValues 计算矩阵的奇异值SmithForm 将矩阵约化为 Smith 正规型StronglyConnectedBlocks 计算方阵的强连通块SubMatrix 构造矩阵的子矩阵SubVector 构造向量的子向量SylvesterMatrix 构造两个多项式的 Sylvester 矩阵ToeplitzMatrix 构造 Toeplitz 矩阵Trace 计算方阵的迹Transpose 转置矩阵HermitianTranspose 共轭转置矩阵TridiagonalForm 将方阵约化为三对角型UnitVector 构造单位向量VandermondeMatrix 构造一个 Vandermonde 矩阵VectorAngle 计算两个向量的夹角ZeroMatrix 构造一个零矩阵ZeroVector 构造一个零向量Zip 将一个具有两个参数的程序作用到一对矩阵或向量上LinearAlgebra[Generic] 子函数包 [Generic] 子函数包提供作用在场,欧几里得域,积分域和环上的线性代数算法。
实验七 用Maple解常微分方程
实验七用Maple解常微分方程1. 实验目的本实验旨在通过使用数学建模软件Maple来解常微分方程,加深对常微分方程解法的认识和理解。
通过实际操作和观察结果,提高对Maple软件的运用能力。
2. 实验原理常微分方程是描述物理、化学、工程等领域中的连续变化过程的常见数学工具。
解常微分方程可以帮助我们理解系统的演化规律,从而进行预测和控制。
Maple是一款强大的数学软件,其中包含了丰富的求解常微分方程的函数。
通过输入常微分方程的表达式,Maple可以直接给出解析解或数值解。
在本实验中,我们将使用Maple来解常微分方程。
3. 实验步骤3.1 安装Maple软件3.2 打开Maple软件双击桌面上的Maple图标,打开软件。
3.3 输入常微分方程点击菜单栏中的"输入",选择"数学输入",在弹出的对话框中输入常微分方程的表达式。
例如,我们要解的方程是一阶线性常微分方程`dy/dx + y = 0`,则输入表达式为:diff(y(x),x) + y(x) = 03.4 求解方程点击菜单栏中的"执行",选择"执行工作表",Maple将根据输入的方程进行求解。
3.5 查看解析解或数值解Maple会给出方程的解析解或数值解。
根据实验需求,可以选择相应的解进行查看和分析。
3.6 导出结果点击菜单栏中的"文件",选择"导出为",选择导出格式和保存路径,点击"保存",将结果导出为文档或图像文件。
4. 实验结果根据实验中输入的常微分方程,Maple求解得到如下解析解:y(x) = C exp(-x)其中C为任意常数。
5. 实验总结通过本次实验,我们研究了使用Maple软件求解常微分方程的方法。
Maple的强大功能和简便操作使得解常微分方程变得更加容易。
通过实际操作,我们可以深入理解常微分方程的解法和物理意义。
Maple中的微分代数方程求解
Part10:Maple中的微分代数方程求解西希安工程模拟软件(上海)有限公司,200810.0 Maple中的微分方程求解器介绍Maple中微分方程求解器使用领先的算法求解以下问题:常微分方程 (ODEs): dsolve 命令用于求解线性和非线性ODEs, 初始值问题 (IVP), 以及边界值问题 (BVP),可以通过参数项选择求符号解 (解析解) 或数值解。
ODE Analyzer Assistant 微分方程分析器助手提供一个交互式用户界面方便用户求解 ODE 以及显示结果的图形。
了解更多信息,参考帮助系统中的 dsolve, dsolve/numeric, 和 ODE Analyzer.偏微分方程 (PDEs): pdsolve 命令用于求 PDEs 和含边界值问题的 PDEs 的符号解或数值解。
使用Maple的PDE工具可以完成对PDE系统的结构分析和指数降阶处理。
了解更多信息,参考帮助系统中的 pdsolve and pdsolve/numeric.微分-代数方程 (DAEs): dsolve/numeric 命令是符号-数值混合求解器,使用符号预处理和降阶技术,让Maple能够求解高指数的DAE问题。
Maple内置三个求解器用于处理DAEs:1)修正的 Runge-Kutta Fehlberg 方法,2)Rosenbrock 方法,以及 3)修正的拓展后向差分隐式方法。
10.1 Maple中的微分代数方程(DAEs)更多亮点:大部分情况下,通过识别是否存在因变量的纯代数方程,dsolve命令可以判断给定的问题是否是微分代数方程,而不是常微分方程。
如果输入是一个不含有纯代数方程的微分代数方程,使用solve求解时需要用method参数指定对象是一个微分代数方程。
dsolve 有三种数值方法求解DAEs。
默认的 DAE IVP 方法是 modified Runge-Kutta Fehlberg method (rkf45_dae),另两个方法是 rosenbrock_dae 和 Modified Extended Backward-Differentiation Implicit method (mebdfi),可以通过 method 参数项指定。
数学软件 Maple 在常微分方程教学中的应用
数学软件Maple在常微分方程教学中的应用闻小永(北京信息科技大学数学系,北京 100192)摘 要:本文讨论了数学软件Maple在常微分方程教学中的运用,总结了教学实践经验,并结合具体实例,说明数学软件Maple是提高学生分析和解决问题能力的有效工具。
关键词:数学软件Maple;常微分方程;教学一、引言数学软件是大学生数学建模竞赛以及数学实验的有力工具,也是培养学生应用数学以及实践数学能力的有效工具。
高等学校工科数学课程教学指导委员会在1996年提出的《关于工科数学系列课程教学改革的建议》[1]中指出:计算机的广泛使用和计算技术、软件包的高速发展,正在改变着人们对数学知识的需求,冲击着传统的观念和方法。
该建议将利用计算机进行数学实验包括数学建模、实用数值方法、常用软件包的使用、数据处理作为基本知识之一,要求各校根据自身的条件,开展计算机数学软件辅助教学,努力探索将计算机数学软件引入课堂教学,促进教学内容课程体系改革的途径。
随着计算机技术的深入发展及计算机的日益普及,计算机的应用已渗透到国民经济和科学研究的各个领域,工科数学的教学也不例外。
近年来,国外不少数学教材(如微积分、线性代数、概率与统计、常微分方程、数值计算等)都增加了应用数学软件的内容。
数学软件 Maple [2-4]是加拿大滑铁卢大学(University of Waterloo)和 Waterloo Maple Software 公司设计的一套为微积分、线性代数、微分方程等高等数学使用的软件包,Maple软件适用于解决微积分、解析几何、线性代数、微分方程、计算方法、概率统计等数学分支中的常见计算问题,它以良好的使用环境、强有力的符号计算、高精度的数值计算、灵活的图像显示和高效的编程功能,为越来越多的教师、学生以及科研人员所喜爱,并且成为他们数学处理的重要工具。
现在越来越多的教师和科研人员利用Maple软件来处理教学和科研中所遇到的数学问题,已取得一定的教学和科研成果[5-7]。
如何利用Maple求解偏微分方程
如何利用Maple求解偏微分方程微分方程分有常微分和偏微分方程两种,利用Maple对微分方程求解是Maple的一个核心优势,下面介绍利用Maple求偏微分方程的命令。
求偏微分方程或偏微分方程系统的命令是“Pdsolve”。
调用格式是:pdsolve(PDE, f, HINT = hint, INTEGRATE, build)pdsolve(PDE_system, funcs, HINT, other_options)pdsolve(PDE_or_PDE_system, conds, type=numeric, other_options)其中:PDE:偏微分方程。
f:不定函数或名称;当有很多导函数时需要指定此项。
hint:(可选项)HINT = hint中的右边,其中hint 为“+,“*”之一,关键词strip 或TWS之一,结构TWS(math_function_name),或关于不定函数的任意代数表达式。
INTEGRATE:(可选项)当使用变量分离法求解PDE时发现ODE集合,此选项表明进行自动积分。
Build:(可选项)尝试建立不定函数的显式表达式,不管所得解的一般性。
PDE_system:偏微分方程系统;可包含不等式。
Funcs:(可选项)由不定函数或名称构成的集合或列表。
other_options:当精确求解PDE系统时,casesplit命令接受的所有选项也被pdsolve 接受。
PDE_or_PDE_system:偏微分方程或偏微分方程系统;可包含不等式。
Conds:初始或边界条件。
type=numeric:等式;表明寻找数值解;可使用关键词numeric替代整个等式。
示例:求解热传导方程的数值解、解析解和图形解。
初始条件:为了得到数值解,我们需要定义a和h的值,以及提供第二个边界条件:这个命令创建了一个模块(module,使用方法类似于Maple的函数包),可以看到模块的输出函数是plot,plot3d,animate和value。
Maple教程 - 第4章 - 方程求解
也可用下面的语句一步求出:
> solve({x^2+y^2=25,y=x^2-5},{x,y}); { x = 0, y = -5 }, { x = 0, y = -5 }, { y = 4, x = 3 }, { y = 4, x = -3 }
这个问题非常简单, 但通常遇到的非线性问题却不是这么简单, 例如要求解方程
> fsolve(x^5-x+1,x,complex);
-1.167303978 , -.1812324445 − 1.083954101 I, -.1812324445 + 1.083954101 I, .7648844336 − .3524715460 I, .7648844336 + .3524715460 I
求解也只有下述结果:
> allvalues(%); RootOf( 3 _Z − sin( _Z ) π, 0. )
另外一个问题是, Maple 在求解方程之前,会对所有的方程或表达式进行化简, 而不 管表达式的类型, 由此而产生一些低级的错误:
> (x-1)^2/(x^2-1);
( x − 1 )2 x2 − 1
> x^7-2*x^6-4*x^5-x^3+x^2+6*x+4;
x7 − 2 x6 − 4 x5 − x3 + x2 + 6 x + 4
> solve(%);
1 + 5 , 1 − 5 , RootOf( _Z5 − _Z − 1, index = 1 ), RootOf( _Z5 − _Z − 1, index = 2 ), RootOf( _Z5 − _Z − 1, index = 3 ), RootOf( _Z5 − _Z − 1, index = 4 ), RootOf( _Z5 − _Z − 1, index = 5 )
maple_chap7
整数解中以下滑线开始的变量可以取任意整数。然后,我们将结果在代入到我们所需要的无量纲量中去:
Maple对于幂的连乘积的化简规则是把相同底数的项合并起来,而在这里,为了得到相互无关的无量纲量,需要将相同指数的项合并起来(因为_N1,_N2,_N3是相互独立的整数)。可以编写一小段程序实现这个功能。我们知道,对连乘积求对数后,原来的指数都变成了对数项的系数,然后,我们就可以用函数collect将相同系数的项合并。最后,再用exp函数获得我们所需要的形式。
在这一章中,我们将学习在Maple中实现的各种求解方程和方程组的方法。再学习方程的精确解法的同时,也将介绍各种数值解法,并通过例子使读者能够快速的掌握它们的用法。对于许多常微分方程(组),Maple都可以显式或隐式地给出它的们解析解。而在Maple中,许多常用的近似解法也都予以了实现,例如级数方法,渐进解法等等。我们还将介绍利用Maple解决一部分偏微分方程问题的方法。
7.3
在数学中,常微分方程是这样定义的,它具有一般形式:F ( y, y', y", ..., y(n), x ) = 0,其中y, y', y", ..., y(n)是一元函数y (x)对其自变量x的各阶导数,F是定义在Rn+2上的实值函数。称该常微分方程为线性的,当且仅当F对其前n+1个变元而言是线性函数,亦即可以表示成为如下的形式:
函数realroot还有一个可选参数,它是用来限制区间的最大长度的,为了保证使用数值求解方法时收敛,我们可以用它限制区间的最大长度。
7.2.2
Maple的函数isolve是用来求解方程或方程组的整数解的,它常常被用来求解不定方程。作为它的一个简单应用,我们来看一个量纲分析的小例子。
matlab-maple画常微分向量场上课讲义
m a t l a b-m a p l e画常微分向量场作业一、常微分方程向量场相关概念1、常微分方程向量场定义答:设一阶微分方程()y x f dx,dy= 满足解的存在唯一性定理的条件。
过D 中任一点()y x 0,,有且仅有一个解(),x y ϕ=满足(),y 0x =ϕ()()()x x f x ϕϕ,'=。
称域D 为方程所定义的向量场。
2、常微分方程向量场性质答:性质1:解()x ϕ=y 就是通过点()y 0x ,的一条曲线(称为积分曲线),且()()x x ϕ,f 就是该曲线上的点()()x ϕ,x 处的切线斜率,特别在()y 0x ,切线斜率就是()y x 0,f。
性质2:向量场可以用映射22:F R R Ω⊂→r来表示,其中(,)(,)F X x y i Y x y j =+r r r,Ω为一个平面区域,22R R →表示由平面一点映射到一个二维向量。
性质3:若函数(,)f x y 为Ω上的连续函数,那么向量场也是连续的。
性质4:向量场的原函数不唯一,但是任意两个原函数之间只差一个常数。
3、利用向量场求常微分方程(组)近似解答:从几何上看,方程()y x f dx,dy=的一个解()x y ϕ=就是位于它所确定的向量场中的一条曲线,该曲线所经过的每一点都与向量场在这一点的方向相切。
形象的说,解()x ϕ就是始终沿着向量场中的方向行进的曲线,因此,求方程()y x f dx,dy=满足初始值()yx 0y =的解,就是求通过点()y 0x ,的这样的一条曲线。
4、利用向量场研究常微分方程定性理论答:向量场对于求解微分方程的近似解和研究微分方程的几何性质极为重要,因为,可根据向量场的走向来近似求积分曲线,同时也可根据向量场本身的性质来研究解的性质。
(1). 李雅普诺夫稳定性考虑方程262dy y y dx =-和242dyy y dx =-+,现用向量场判断方程的李雅普诺夫稳定性。
用matlab求解常微分方程
实验六 用matlab 求解常微分方程1.微分方程的概念未知的函数以及它的某些阶的导数连同自变量都由一已知方程联系在一起的方程称为微分方程。
如果未知函数是一元函数,称为常微分方程。
常微分方程的一般形式为0),,",',,()(=n y y y y t F如果未知函数是多元函数,成为偏微分方程。
联系一些未知函数的一组微分方程组称为微分方程组。
微分方程中出现的未知函数的导数的最高阶解数称为微分方程的阶。
若方程中未知函数及其各阶导数都是一次的,称为线性常微分方程,一般表示为)()(')()(1)1(1)(t b y t a y t a y t a y n n n n =++++--若上式中的系数ni t a i ,,2,1),( =均与t 无关,称之为常系数。
2.常微分方程的解析解有些微分方程可直接通过积分求解.例如,一解常系数常微分方程1+=y dt dy可化为dt y dy=+1,两边积分可得通解为1-=tce y .其中c 为任意常数.有些常微分方程可用一些技巧,如分离变量法,积分因子法,常数变异法,降阶法等可化为可积分的方程而求得解析解.线性常微分方程的解满足叠加原理,从而他们的求解可归结为求一个特解和相应齐次微分方程的通解.一阶变系数线性微分方程总可用这一思路求得显式解。
高阶线性常系数微分方程可用特征根法求得相应齐次微分方程的基本解,再用常数变异法求特解。
一阶常微分方程与高阶微分方程可以互化,已给一个n 阶方程),,",',()1()(-=n n y y y t f y设)1(21,,',-===n n y y y y y y ,可将上式化为一阶方程组⎪⎪⎪⎩⎪⎪⎪⎨⎧====-),,,,(''''2113221n n nn y y y t f y yy y y y y反过来,在许多情况下,一阶微分方程组也可化为高阶方程。
MATLAB求解常微分方程
的数值解, x1 (0) = 1, x1 (0) = 1, x 2 (0) = 2, x 2 (0) = 2 ,并绘制出轨迹曲线。
引入 u1 = x1 , u 2 = x1 , u 3 = x 2 , u 4 = x 2 , 可写出如下的隐式方程标准型为
• •
•
•
• u1 − u 2 = 0 • 2 • − u3 2 2 2 sin( ) + 5 =0 u u u u u 2 4 1 3 2 u 4 cos(u1 ) + t u1u 3 − e • 可用下面的程序求解: u 3 − u 4 = 0 • u u + u• u sin(u 2 ) + cos(u• u ) − sin t = 0 4 2 1 4 3 2 3
x ' = − y − z y ' = x + ay 将 a,b,c 作为附加参数, 给定微分方程组 z ' = b + ( x − c) z
选定 a=0.2,b=0.5,c=10 时,绘制出状态变量的三维图。
用下面的程序求解:
f=inline('[-x(2)-x(3);x(1)+a*x(2);b+(x(1)-c)*x(3)]',... 't','x','flag','a','b','c');%flag不可省去,用于占位 [t,x]=ode45(f,[0,100],[0;0;0],[],0.2,0.5,10); plot3(x(:,1),x(:,2),x(:,3));grid
Hale Waihona Puke = e −5t cos(2t + 1) + 5 , 试求出下面微分方
基于maple软件《常微分方程》一体化教学的探讨
基于maple软件《常微分方程》一体化教学的探讨近年来,随着科学技术和信息技术的发展,电脑已经成为教育领域的重要工具。
以Maple软件为载体,通过信息软件进行教学,有助于改善本科生在学习常微分方程的过程中的学习环境,可以有效提高学习的效率。
本文从探讨以Maple软件为载体,实施《常微分方程》一体化教学的可行性和优势出发,旨在为基于Maple软件的一体化教学活动提供参考。
一、Maple软件《常微分方程》一体化教学的可行性Maple软件是一款多功能的数学软件,它支持多种数学计算,如代数、几何、微积分和常微分方程等。
它的优点有:一方面,它可以模拟出完整的数学计算过程,为学生提供全面的学习数学的机会;另一方面,它提供更丰富的图像,可以更直观地看到数学函数的表现形式,这对学生学习数学知识提供了更多的可能性。
因此,Maple软件为实施《常微分方程》一体化教学提供了良好的基础。
二、《常微分方程》一体化教学的优势1、可以更全面地学习数学和常微分方程。
通过Maple软件,学生可以更全面地学习数学和常微分方程的知识,这有助于提高学生的数学和常微分方程的学习成绩。
2、可以更全面综合地分析问题。
Maple软件支持多种数学计算,可以支持学生以综合的方式分析常微分方程问题。
3、可以更容易地深入理解常微分方程。
通过使用Maple软件,学生可以更容易地了解常微分方程中的算法,从而可以更深入、更清晰地理解常微分方程,从而更好地掌握它。
三、一体化教学的实施1、结合Maple软件,教师可以使用模拟图形、动画和视频等方法,结合常微分方程的实际应用,对学生进行丰富多彩的教学,以辅助学生理解和掌握常微分方程的知识点。
2、采取分组学习的方法,鼓励学生讨论和研究常微分方程,以增强学生的自主学习能力。
3、开展实验活动,让学生动手实践,体会常微分方程中不同方法的求解过程,以加强学生对常微分方程的理解和掌握。
四、总结以Maple软件为载体,实施《常微分方程》的一体化教学,可以有效提高学生学习常微分方程的效率。
Maple6-ch41-常微分方程word精品文档11页
第 1 页第四章 微分方程§4.1 常微分方程4.1.1 常微分方程的解析解1. 函数dsolve 在微分方程中的应用在Maple 中,这是一个用途最广的函数——称为通用函数吧,几乎可以求解所有的微 分方程和方程组,既能求解解析解,也能求解数值解,本节只介绍其求微分方程的解析解中的作用:dsolve (ODE);dsolve (ODE,y(x),extra_args);其中,ODE(Ordinary Differential Equation)是一个常微分方程; y(x)为未函数,求解时这个参数可以省略;第三个参数extra_args 是一个可选的参数,主要用来设置最后解析解的形式或求解过程中一些积分的设置,它的选值很广,这里仅举几个参数。
(1) explicit: 求出显式解;(2) implicit: 解可以是隐式;(3) useInt: 运算中用“Int ”函数代替“int ”函数,可加快运算速度;(4) parametric: 将最后的解析解表达成另外一个自变量的形式。
这些参数的位置很灵活,可以放在除第一个参数位置外的任何位置,并且它们的组合 也很灵活,可以单独作用,也可几何参数合用,只要在中间用逗号隔开,而且参数并不一定需要写在一起,也可以分开。
> eq:='eq': eq:=diff(y(x),x)*(1+y(x)^2)+cos(x)=0; 可以两端都不是零 > sol1:=dsolve(eq,explicit); 给出显式解其中“_C 1”表示第一个任意常数。
方程的解是很恐怖的解,这里仅给出了一个解,另外还有两个更长的解,读者可以在Maple 下执行上面求解过程观察到另外两个解的全貌。
这是由于将解转换成显函数造成的,假如我们将参数进行改善:> sol2:=dsolve(eq,implicit,y(x)); 给出隐式解,式中的y(x)可省略 再加上一个参数“useInt ”,可以明显感到运算速度非常快,因此,它在求解过程中积分比较复杂时很有用,同时还能使解过程、解结果给出较多的信息:> sol3:=dsolve(eq,implicit,y(x),useInt);其中“_a ”为积分变量.即解为.0)1(cos 2=+---⎰⎰C dt t xdx ya最后加入参数“parametric ”,可以知道经过一段时段运算后的结果: > sol4:=dsolve(eq,implicit,y(x),useInt,parametric);我们惊讶地发现函数没有给出任何结果,这是因为解太复杂了,函数找不到用参数表示的第 2 页方法。
matlab,maple画常微分向量场
作业一、常微分方程向量场相关概念1、常微分方程向量场定义答:设一阶微分方程()y x f dx,dy= 满足解的存在唯一性定理的条件。
过D 中任一点()y x 0,,有且仅有一个解(),x y ϕ=满足(),y 0x =ϕ()()()x x f x ϕϕ,'=。
称域D 为方程所定义的向量场。
2、常微分方程向量场性质答:性质1:解()x ϕ=y 就是通过点()y 0x ,的一条曲线(称为积分曲线),且()()x x ϕ,f 就是该曲线上的点()()x ϕ,x 处的切线斜率,特别在()y 0x ,切线斜率就是()y x 0,f。
性质2:向量场可以用映射22:F R R Ω⊂→来表示,其中(,)(,)F X x y i Y x y j =+,Ω为一个平面区域,22R R →表示由平面一点映射到一个二维向量。
性质3:若函数(,)f x y 为Ω上的连续函数,那么向量场也是连续的。
性质4:向量场的原函数不唯一,但是任意两个原函数之间只差一个常数。
3、利用向量场求常微分方程(组)近似解答:从几何上看,方程()y x f dx,dy=的一个解()x y ϕ=就是位于它所确定的向量场中的一条曲线,该曲线所经过的每一点都与向量场在这一点的方向相切。
形象的说,解()x ϕ就是始终沿着向量场中的方向行进的曲线,因此,求方程()y x f dx,dy=满足初始值()yx 00y =的解,就是求通过点()y 0x ,的这样的一条曲线。
4、利用向量场研究常微分方程定性理论答:向量场对于求解微分方程的近似解和研究微分方程的几何性质极为重要,因为,可根据向量场的走向来近似求积分曲线,同时也可根据向量场本身的性质来研究解的性质。
(1). 李雅普诺夫稳定性考虑方程262dy y y dx =-和242dyy y dx =-+,现用向量场判断方程的李雅普诺夫稳定性。
分别绘制其向量场如下图:从该图中的向量场方向可以看出,其所有解都渐进稳定于直线3y =。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 / 20第四章 微分方程§4.1 常微分方程4.1.1 常微分方程的解析解1. 函数dsolve 在微分方程中的应用在Maple 中,这是一个用途最广的函数——称为通用函数吧,几乎可以求解所有的微 分方程和方程组,既能求解解析解,也能求解数值解,本节只介绍其求微分方程的解析解中的作用:dsolve (ODE);dsolve (ODE,y(x),extra_args);其中,ODE(Ordinary Differential Equation)是一个常微分方程; y(x)为未函数,求解时这个参数可以省略;第三个参数extra_args 是一个可选的参数,主要用来设置最后解析解的形式或求解过程中一些积分的设置,它的选值很广,这里仅举几个参数。
(1) explicit: 求出显式解; (2) implicit: 解可以是隐式;(3) useInt: 运算中用“Int ”函数代替“int ”函数,可加快运算速度; (4) parametric: 将最后的解析解表达成另外一个自变量的形式。
这些参数的位置很灵活,可以放在除第一个参数位置外的任何位置,并且它们的组合 也很灵活,可以单独作用,也可几何参数合用,只要在中间用逗号隔开,而且参数并不一定需要写在一起,也可以分开。
> eq:='eq': eq:=diff(y(x),x)*(1+y(x)^2)+cos(x)=0; 可以两端都不是零:= eq = + ⎛⎝ ⎫⎭⎪⎪∂()y x () + 1()y x 2()cos x 0 > sol1:=dsolve(eq,explicit); 给出显式解sol1()y x =:= 12- ()- - + 12()sin x 12_C12 - + + 3418()cos 2x 72()sin x _C136_C12()/234()- - + 12()sin x 12_C12 - + + 3418()cos 2x 72()sin x _C136_C12()/13,其中“_C 1”表示第一个任意常数。
方程的解是很恐怖的解,这里仅给出了一个解,另2 / 20外还有两个更长的解,读者可以在Maple 下执行上面求解过程观察到另外两个解的全貌。
这是由于将解转换成显函数造成的,假如我们将参数进行改善:> sol2:=dsolve(eq,implicit,y(x)); 给出隐式解,式中的y(x)可省略:= sol2 = + + + ()sin x ()y x 1()y x 3_C10再加上一个参数“useInt ”,可以明显感到运算速度非常快,因此,它在求解过程中积分比较复杂时很有用,同时还能使解过程、解结果给出较多的信息: > sol3:=dsolve(eq,implicit,y(x),useInt);:= sol3 = - + d ⎛⎠⎜()cos x x d ⎛⎠⎜⎜()y x - - 1_a 2_a _C10其中“_a ”为积分变量.即解为.0)1(cos 2=+---⎰⎰C dt t xdx ya最后加入参数“parametric ”,可以知道经过一段时段运算后的结果: > sol4:=dsolve(eq,implicit,y(x),useInt,parametric);:= sol4我们惊讶地发现函数没有给出任何结果,这是因为解太复杂了,函数找不到用参数表示的方法。
下面我们用一个比较简单的例子来说明设置参数以后的结果,大家容易从结果中看出表示的方法:>dsolve(diff(y(x),x)=-x/y(x), parametric); 圆曲线上切线的斜率, = ()y x - + x 2_C1 = ()y x -- + x 2_C1此为圆的上半圆与下半圆曲线表示式.> dsolve(diff(y(x),x)=-x/y(x),implicit, parametric); 参数式⎡⎣⎢⎢⎤⎦⎥⎥, = ()x _T -_T _C1 + 1_T 2 = ()y _T _C1 + 1_T 2此为圆曲线的参数式,但并不是常用的t a y t a x sin ,cos ==参数式格式. 2. 用函数odetest 检验常微分方程的解odetest(sol,ODE); ——y(x)可省略 odetest(sol,ODE,y(x));——y(x)最好加上 odetest(solsys,sysODE);——用于方程组以返回值为“0”给出解为真。
> with(DEtools):3 / 20> odetest(sol1[1],eq,y(x)); sol1[1]是方程的解> odetest(sol1[2],eq,y(x)); sol1[2]是方程的解> odetest(sol1[3],eq,y(x)); sol1[3]是方程的解> odetest(sol2,eq,y(x)); sol2是方程的解> odetest(sol3,eq,y(x)); sol3是方程的解> odetest(sol4,eq,y(x)); sol4不能代入检验Error, (in odetest) expecting the second argument to be an ODE or a set or list of ODEs. Received: y(x)下面验证一个函数是否前面所给方程的解:> y(x)=x^2; 验证y(x)=x^2是否方程的解,这里的y(x)不能赋给= ()y x x 2> odetest(%,eq); 所给函数y(x)=x^2使方程左端不为0,故不是方程的解+ + 2x 2x 5()cos x但它是下列方程的解:> eq:='eq': eq:=diff(y(x),x)=2*x;:= eq = ∂()y x 2x> y(x)=x^2;= ()y x x 2> odetest(%,eq);3.用Deplot 函数来显示微分方程的解的图像DEplot(deqns,vars,trange,eqns); Deplot(deqns,vars,trange,inits, eqns);其中 deqns :是待求的微分方程或微分方程组,本节中就是指微分方程;vars :是一个非独立的变量或变量的集合,如y(x);trange :设定变量的取值范围;eqns 是一个等式形式的条件,如:linecolor=blue(设定图像中线的颜色为蓝的);4 / 20stepsize=0.05(变量的取值步长);inits :是微分方程的初值条件,如果有多个初值条件,用集合表示,并且每个初值条件都必须用方括号起来,如果不给初始值,函数将等间隔的取最后解中的常数为某值。
请看下面的例子:> with(DEtools):> eq:='eq': eq:=diff(y(x),x)*(1+y(x)^2)+cos(x)=0;:= eq = + ⎛⎝ ⎫⎭⎪⎪∂∂x ()y x () + 1()y x 2()cos x 0 > DEplot(eq,y(x),x=-10..10,y=0..3,linecolor=blue,stepsize=0.05);这个例子中没有为微分方程设定初始值,所以函数用一些箭头来表示解的趋势,假如我们设方程的初始值是y(0)=2。
图像将变为:> DEplot(eq,y(x),x=-10..10,[[y(0)=2]],y=0..3,linecolor=blue,stepsize =0.05); [[y(0)=2]]这个初始条件也可放在“y=0..3”的后面图形中的粗线就是满足初始条件的解的图形,假如我们对这个图形是不是刚才求得的解的图形有疑问的话,我们可以用另外一个作图函数contourplot 来验证一下,这个函数在plots 程序包里: > with(plots):5 / 20> f:=sin(x)+1/3*y^3+y:> contourplot(f,x=-10..10,y=-3..3,coloring=[red,blue]);显然,过y(0)=2这点的图形跟上面图形中篮粗线对应的图形是一样的,说明我们的求解没有错。
如果将这个图的范围适当调整,尽量得到过y(0)=2的那条曲线,显示效果会更好些。
实际上,只要将作图中y 的范围改为-2.55~2.55即可达到目的.4.用各种特定函数求解各种微分方程——P176odeadvisor(ODE); 在Detools 程序包中这是一个判断微分方程类型的函数,可用来判分离变量、一阶线性、全微分方程还是普通方程。
最常见的返回参数和中文含义如下:separable 可分离变量方程,用separablesol (lode,v)求解,其中v 为未知函数 linear 线性方程, 用linearsol (lode,v)homogeneous 齐次型方程,用homogeneous (lode,v) bernoulli 贝努里 exact 全微分方程 Abel 阿贝尔方程Quadrature 积分形式的微分方程(如dy=xdx ),是可离变量方程中最简单的(1)可分离变量的方程.)1( Ex.1y y x y x xy '+='-解可分离变量方程解:(Maple-lx4-解法参考) > eq:='eq':> eq:=x*y(x)*(1-x*diff(y(x),x))=x+y(x)*diff(y(x),x);:= eq = x ()y x ⎛⎝ ⎫⎭⎪⎪ - 1x ⎛⎝ ⎫⎭⎪⎪∂∂x ()y x + x ()y x ⎛⎝ ⎫⎭⎪⎪∂∂x ()y x > with(DEtools): 调用程序包6 / 20> odeadvisor(eq); 判断方程类型[]_separable 方程为可分离变量的方程> separablesol(eq,y(x)); 用程序包中的分离变量法求解{} = ()y x + ()LambertW + x 21_C1e()-11法2: 仍用dsolve 求解:> dsolve(eq,explicit); 用通用函数求解.接上方程,结果与上法相同= ()y x + ()LambertW + x 21_C1e()-11法3: 将方程改为C dx x f dy y g y g x f dx dy +==⎰⎰)()(,)()(再利用求隐式解: > diffy:='diffy': 初始化变量,这步一要定做 > diffy=solve(eq,diff(y(x),x)); 解出y 的导数=diffy x ()- ()y x 1()y x ()+ x 21 > f:='f': g:='g':> f:=x->x/(x^2+1);g:=y->y/(y-1); 构造函数f(x),g(y):= f →x x+ x 21:= g →y y这里的y 视为单变量,不要写成y(x)> RHS:=int(g(y),y);LHS:=int(f(x),x); 赋表达式分别得左、右两端:= RHS + y ()ln - y 1:= LHS 12()ln + x 21> LHS=RHS+C; 给出隐式解= 12()ln + x 21 + + y ()ln - y 1C > solve(%,y); 求出显式解+ ()LambertW e()- - /12()ln + x 211C 17 / 20(2)齐次型的方程.tan Ex.2的通解求齐次型方程xyx y y +=' 解 (Maple-lx4-1)法1: (按齐次方程专用求解函数求解) > eq:='eq';:= eq eq> eq:=diff(y(x),x)=y(x)/x+tan(y(x)/x);:= eq = ∂∂x ()y x + ()y x x ⎛⎝ ⎫⎭⎪⎪tan ()y x x > with(DEtools): 调程序包 > odeadvisor(eq); 判断类型[],,[],_homogeneous class A [],_1st_order _with_linear_symmetries _dAlembert齐次型方程的A 种,是一阶、线性对称方程> genhomosol(eq); 用齐次方程的求解函数求解,得以下两个通解{}, = ()y x ⎛⎝⎫⎭⎪⎪⎪arctan -()- + 1_C1x 2_C1x - + 1_C1x 2x = ()y x -⎛⎝ ⎫⎭⎪⎪⎪arctan -()- + 1_C1x 2_C1x - + 1_C1x 2x 法2: 用通用函数求解:> dsolve(eq,explicit);, = ()y x ⎛⎝ ⎫⎭⎪⎪⎪arctan -()- + 1_C1x 2_C1x - + 1_C1x 2x = ()y x -⎛⎝ ⎫⎭⎪⎪⎪arctan -()- + 1_C1x 2_C1x - + 1_C1x 2x法3: 按解齐次型方程的求解方法求解:> y:='y':x:='x':u:='u': 如果不是新打开的Maple 工作窗口,最好要这一步 > y:=u*x:> one:=expand(eq); 试将方程中“y/x”直接换成u 后给出新方程:= one = + ⎛⎝ ⎫⎭⎪⎪∂∂x ()u x ()x x ()u x ⎛⎝ ⎫⎭⎪⎪∂∂x ()x x + ()u x ()x x x ⎛⎝ ⎫⎭⎪⎪tan ()u x ()x x x > two:=subs(diff(x(x),x)=1,x(x)=x,one); 简化方程:= two = + ⎛⎝ ⎫⎭⎪⎪∂∂x ()u x x ()u x + ()u x ()tan ()u x8 / 20> diffu:=solve(two,diff(u(x),x)); 化为可分离变量的方程:=diffu ()tan ()u x x> left:=int(1/tan(u),u);right:=int(1/x,x); 按可分离变量方法求解,这里的u 不能写成u(x),因为要把它当单变量进行积分:= left - ()ln ()tan u 12()ln + 1()tan u 2:= right ()ln x> y:='y': 初始化变量y,此前它是”ux” > subs(u=y/x,left)=right+_C1;= - ⎛⎝ ⎫⎭⎪⎪ln ⎛⎝ ⎫⎭⎪⎪tan y x 12⎛⎝ ⎫⎭⎪⎪⎪ln + 1⎛⎝ ⎫⎭⎪⎪tan y x 2+ ()ln x _C1 > solve(%,y);,⎛⎝⎫⎭⎪⎪⎪⎪arctan -()- + 1e()2_C1x 2e()2_C1x - + 1e()2_C1x 2x -⎛⎝⎫⎭⎪⎪⎪⎪arctan -()- + 1e()2_C1x 2e()2_C1x - + 1e()2_C1x 2x 这一结果与前的解仅在于任意常数的写法上不同而已.法4: 本人的解法——化为分离变量方程的求解函数进行求解:> y(x):='y(x)':x:='x':u(x):='u(x)':> y(x):=u(x)*x: 注意函数关系,如果用y=ux 或(x)=u*x,得不到下面的形式> eq1:=subs(y(x)/x=u(x),eq); 替换完毕,再对方程化简:= eq1 = + ⎛⎝ ⎫⎭⎪⎪∂∂x ()u x x ()u x + ()u x ()tan ()u x上式两端可不再化简,解过程用时相近> separablesol(eq1,u(x)); 用分离变量法函数求解方程,得两个同样的通解{}, = ()u x ⎛⎝ ⎫⎭⎪⎪⎪arctan () - 1_C1x 2_C1x - + 1_C1x 2 = ()u x -⎛⎝ ⎫⎭⎪⎪⎪arctan () - 1_C1x 2_C1x - + 1_C1x 2 > a:=subs(u(x)=y/x,%); 换回原变量,如果不将两个通解赋值给集合a,就不能用“solve ”对集合中的两个非方程组的函数关于同一变量求解9 / 20:= a {}, = y ⎛⎝ ⎫⎭⎪⎪⎪arctan -()- + 1_C1x 2_C1x - + 1_C1x 2 = y -⎛⎝ ⎫⎭⎪⎪⎪arctan -()- + 1_C1x 2_C1x - + 1_C1x 2 > y1:=solve(op(1,a),y);y2:=solve(op(2,a),y); 给出两个显式解:= y1⎛⎝ ⎫⎭⎪⎪⎪arctan -()- + 1_C1x 2_C1x - + 1_C1x 2x := y2-⎛⎝⎫⎭⎪⎪⎪arctan -()- + 1_C1x 2_C1x - + 1_C1x 2x 上面用了提出集合元素的函数“op ”,参第一章“1.1.3 集合”. 也可用分离方程中变量的函数isolate,执行“isolate(op(1,a),y);”得到第一个通解中的y 的表达式.请试之.Ex.2’ 解齐次型(C )的微分方程.31-++-='y x y x y 答案: = - + - - y 24y 2x y 2x x 2C解 (Maple-lx4-2) .,)(222111解读者可比照固定方法求有固定的解法对准齐次型方程c y b x a c y b x a f dx dy++++=也可以用通用求解函数dsolve()求解.这里选用求齐次型方程的求解函数进行求解: > eq:='eq':> eq:=diff(y(x),x)=(x-y(x)+1)/(x+y(x)-2);:= eq = ∂∂x ()y x - + x ()y x 1 + - x ()y x 2> with(DEtools):> a:=genhomosol(eq); 用齐次型方程的求解函数求解,解用集合表示,其解需要按元素取出使用,为此,将解赋给集合“a ”:= a {} = ()y x - 31 + () - 2x 1_C1 + 2() - 2x 12_C121由于x 与y 的隐式关系很简单,而这里的显示结果即较为复杂,为此,如以下化简:> subs(_C1=C,a[1]):subs(y(x)=z,a[1]):subs(_C1=C,%); 替换= z - 3212 + () - 2x 1C + 2() - 2x 12C 21C10 / 20> map(simplify,%); 对上式两端化简。