计算机代数系统第5章-方程求解

合集下载

代数方程的解法及应用

代数方程的解法及应用

代数方程的解法及应用一、代数方程的定义与分类1.代数方程的概念:含有未知数的等式称为代数方程。

2.代数方程的分类:a)一元一次方程:形式为ax + b = 0,其中a、b为常数,a≠0。

b)一元二次方程:形式为ax^2 + bx + c = 0,其中a、b、c为常数,a≠0。

c)二元一次方程:形式为ax + by = c,其中a、b、c为常数,a、b≠0。

d)多元方程:含有多个未知数的方程。

二、代数方程的解法1.解的概念:使方程两边的代数式相等的未知数的值称为方程的解。

a)因式分解法:将方程化为几个整式的积的形式,从而求出未知数的值。

b)公式法:利用求根公式求解一元二次方程。

c)配方法:将方程转化为完全平方的形式,从而简化方程求解。

d)消元法:将方程组中的方程相加、相减或相乘,消去一个或多个未知数,从而求解。

e)图像法:利用函数图像求解方程的解。

三、代数方程的应用1.实际问题与方程的建立:a)利润问题:成本、售价、利润与数量的关系。

b)面积问题:几何图形的面积与边长、角度的关系。

c)速度问题:路程、速度、时间的关系。

d)增长率问题:增长率、增长量与原始数量的关系。

2.方程在生活中的应用:a)财务管理:投资、贷款、利息等问题。

b)物品配置:资源分配、优化问题。

c)生产计划:生产成本、产量、利润等问题。

d)社会问题:人口增长、环保等问题。

四、方程的变形与求解步骤1.方程的变形:a)移项:将方程中的未知数移至等式的一边。

b)合并同类项:将方程中的同类项合并。

c)系数化简:将方程中的系数化为1。

2.求解步骤:a)分析方程的类型与特点。

b)选择合适的解法。

c)按照解法求解。

d)检验解的正确性。

五、方程的解的性质与判定1.解的性质:a)唯一性:一元一次方程和一元二次方程通常有唯一解。

b)无限性:线性方程组和多项式方程的解可能无限多。

c)存在性:非线性方程可能无解或存在多个解。

2.解的判定:a)有解:方程两边代数式相等时,方程有解。

第五章 1代数系统的概念

第五章 1代数系统的概念

5-1 代数系统的引入
例2 下面均是二元运算的例子。 (1) A为集合,2A为其幂集。f : 2A×2A →2A 。f 可以 是∩、∪、-、。 (2) A={0,1}。f:AAA。f 可以是∧、∨、、 。
一般地,二元运算用符号“”、“◦”、“•”、 “△”、“◇”、“☆”等等表示,并将其写于 两个元素之间,如Z×Z→Z的加法:
定义5-2.1 设“”,“◦”均为集合A上的二元运 算。 (1) 若x, y∈A,都有xyA,则称“”运算在A 上是封闭的(Closed) 。即
xy( x A y A x y A) 在A上封闭
(2) 若x, y∈A,都有xy=yx,则称“”运算在A 上满足交换律(Commutativity) 。即
离散数学
(Discrete Mathematics)
第五章 代数结构(Algebraic Structure)
❖ 以具体代数为研究对象的经典代数,其研究内容、 基本理论和方法,主要反映在初等代数和高等代数 (工科的线性代数)两部分的现代教育中。
❖ 从19世纪早期由法国数学家Galois(1811-1832)创始, 近200年来经历起伏、逐渐成熟的代数系统,常被 人们冠以代数结构、抽象代数及近世代数(Modern Algebra)等美称。
xy(x A y A x y y x)
在A上可交换
5-2 运算及其性质
(3) 若x, y, z∈A,都有x(yz)=(xy)z,则称“” 运算在A上满足结合律(Associativity) 。即
在A上可结合 xyz( x A y A z A
x(y z) (x y) z)
(4) 若x, y, z∈A,都有x(y◦z)=(xy)◦(xz) ,则称 “”运算对“◦”运算满足左分配律; 若x, y, z∈A,都有(x◦y)z=(xz)◦(yz) ,则称“” 运算对“◦”运算满足右分配律。若二者均成立, 则称“”运算对“◦”运算满足分配律 (Distributivity) 。

用mathematica计算机代数系统求解数理方程

用mathematica计算机代数系统求解数理方程

用mathematica计算机代数系统求解数理方

要使用Mathematica计算机代数系统来求解数理方程,可以按照以下步骤进行:
1. 打开Mathematica软件。

2. 在计算机代数系统中,数理方程可以通过解方程的函数 `Solve` 或 `Reduce`来求解。

`Solve`函数会给出方程的明确解,而`Reduce`函数会给出方程的一般解。

3. 输入待求解的数理方程,例如:
```mathematica
Solve[x^2 + 2x + 1 == 0, x]
```
或者
```mathematica
Reduce[x^2 + 2x + 1 == 0, x]
```
4. 按下"Shift" + "Enter"执行代码。

5. Mathematica将输出方程的解,例如:
```mathematica
{{x -> -1}}
```
或者
```mathematica
x == -1
```
这表示方程的解为x=-1。

在Mathematica中还有一些其他的函数可以求解数理方程,如`NSolve`用于求解数值解,
`FindRoot`用于求解数值近似解等。

根据具体的数理方程类型和求解需求,可以选择适合的函数来求解数理方程。

代数方程求解

代数方程求解

代数方程求解引言在数学领域,代数方程是基础且重要的一环。

它不仅是中学数学课程的核心内容之一,而且在科学研究、工程技术以及日常生活中都有广泛的应用。

本文将简要介绍一元一次方程和一元二次方程的解法,帮助初学者掌握代数方程求解的基本技能。

一元一次方程求解定义一元一次方程是指只含有一个未知数,并且未知数的最高次数为一次的方程,一般形式为:ax + b = 0,其中a和b为常数,x为未知数。

解法解一元一次方程通常采用以下步骤:1. 移项:将含有未知数的项移到方程的一边,常数项移到另一边。

2. 合并同类项:如果方程两边有相同类型的项,可以合并。

3. 化简:将系数化简到最简形式。

4. 求解:得到未知数的值。

例如,求解方程 2x - 5 = 3:1. 移项得:2x = 3 + 52. 合并同类项得:2x = 83. 化简得:x = 4所以方程2x - 5 = 3的解是x = 4。

一元二次方程求解定义一元二次方程是指含有一个未知数,且未知数的最高次数为二次的方程,一般形式为:ax^2 + bx + c = 0,其中a、b和c为常数,且a≠0。

解法解一元二次方程可以使用以下几种方法:1. 因式分解:适用于能够简单分解的情况。

2. 配方法(完成平方):通过配方将二次三项式转化为完全平方的形式。

3. 公式法(求根公式):直接应用二次方程的求根公式来求解。

4. 图像法:利用函数图像与x轴的交点来确定解的位置。

示例以方程 x^2 - 4x + 4 = 0 为例,使用因式分解法:(x - 2)(x - 2) = 0得 x = 2因此,方程x^2 - 4x + 4 = 0的解为x = 2。

结语以上便是一元一次方程和一元二次方程的基础求解方法。

掌握这些技巧对解决更复杂的代数问题至关重要。

当然,随着学习的深入,我们还会接触到更多种类的代数方程及其解法。

希望本文能帮助你打下坚实的基础,为进一步的学习铺平道路。

《代数方程求解》课件

《代数方程求解》课件

配方法
定义:将一个代数方程通过添加 和减去相同的项,使其成为完全 平方的形式
步骤:将方程中的常数项移到等 号的右边,然后配方,最后开方
添加标题
添加标题添加标题添标题适用范围:适用于二次或高次方 程
注意事项:配方的过程要保证等 号两边相等,同时要注意开方的 符号
分解因式法
定义:将一个多 项式分解为几个 整式的乘积
注意解的范围:在确定方程的解时,需要注意解的范围。例如,对于分式 方程,需要注意分母不能为零的情况。
注意解的稳定性:在确定方程的解时,需要注意解的稳定性。例如,对于 某些非线性方程,其解可能会随着参数的变化而变化。
注意解的范围和限制条件
定义域:确定代数方程的定义域,确保解在定义域内 值域:确定代数方程的值域,确保解在值域内 奇偶性:判断代数方程的奇偶性,确保解的奇偶性符合要求 符号问题:注意代数方程的符号问题,确保解的符号符合要求 特殊情况:注意特殊情况下的解的范围和限制条件
具体步骤:首先 将多项式表示为 另一种多项式的 形式,然后通过 代入法或消元法 求解未知数
一元二次方程的求
04

直接开平方法
添加标题
定义:将一元二次 方程转化为平方的 形式,然后直接开 平方得到解的方法。
添加标题
适用范围:适用于 形如ax^2=b
(a≠0)的一元二 次方程。
添加标题
步骤:先将方程化 为ax^2+bx+c=0 (a≠0)的形式, 然后提取a,将方程
注意解的符号和性质
代数方程的解的符号:正、负、零 代数方程的解的性质:唯一性、存在性
注意解的精度和误差控制
精度控制:选 择合适的算法 和计算方法, 确保解的精度
满足要求

代数方程求解的方法与技巧

代数方程求解的方法与技巧

代数方程求解的方法与技巧代数方程是数学中重要的概念之一,它是指一个或多个未知数的系数与常数之间的关系式。

解代数方程是数学中的基本技能之一,它在各个领域都有广泛的应用。

本文将介绍一些常见的代数方程求解方法与技巧。

一、一次方程的求解一次方程是指未知数的最高次数为1的方程,它的一般形式为ax + b = 0,其中a和b为已知数,x为未知数。

求解一次方程的方法很简单,只需要将未知数的系数和常数代入方程中,然后进行简单的运算即可得到解。

例如,对于方程2x + 3 = 0,我们可以将未知数的系数2和常数3代入方程中,得到2x + 3 = 0,然后将3移到等号的另一侧,得到2x = -3,最后将方程两边同时除以2,即可得到x的解为-3/2。

二、二次方程的求解二次方程是指未知数的最高次数为2的方程,它的一般形式为ax^2 + bx + c = 0,其中a、b和c为已知数,x为未知数。

求解二次方程的方法有多种,下面将介绍两种常见的方法。

1.配方法配方法是求解二次方程的一种常用方法,它的基本思想是将二次方程转化为完全平方的形式。

具体步骤如下:首先,将二次方程的左边进行配方,即将x^2和bx两项分别拆开,得到(ax^2+ bx) + c = 0。

然后,将(ax^2 + bx)这一部分进行配方,即将b/2a的平方项加到方程的两边,得到(ax^2 + bx + (b/2a)^2) + c - (b/2a)^2 = 0。

接下来,将方程左边的三项进行合并,并进行化简,得到(ax + b/2a)^2 + c - (b/2a)^2 = 0。

最后,将方程两边同时开方,并进行化简,即可得到x的解。

2.因式分解法因式分解法是求解二次方程的另一种常用方法,它的基本思想是将二次方程进行因式分解。

具体步骤如下:首先,将二次方程进行因式分解,得到(ax + m)(bx + n) = 0。

然后,根据因式分解的性质,得到两个方程ax + m = 0和bx + n = 0。

代数方程的求解方法

代数方程的求解方法

代数方程是数学中的一个重要概念,它是指一个或多个未知数与常数之间通过运算关系形成的等式。

在数学中,代数方程的求解是一项基础而且重要的工作,它在各个领域都有广泛的应用。

在本文中,我们将介绍几种常见的代数方程求解方法。

首先,最基本的代数方程求解方法是试运算法。

这种方法适用于解一元一次方程。

假设我们要解方程ax + b = 0,其中a和b是已知系数,x是未知数。

我们可以对方程两边同时进行运算,通过代入不同的数值来验证方程的解。

如果我们发现某个数值使得方程成立,那么这个数值就是方程的解。

试运算法简单易行,但对于复杂数学方程来说效率较低。

其次,代数方程求解中常用的方法是因式分解法。

这种方法适用于解一元二次方程。

一元二次方程的一般形式是ax^2 + bx + c = 0,其中a, b和c是已知系数,x是未知数。

我们可以通过因式分解将方程转化为(x + m)(x + n) =0的形式,然后利用分解出来的(x + m)和(x + n)分别等于0的条件解方程。

通过这种方法,我们可以较快地找到一元二次方程的根。

另一种常见的代数方程求解方法是配方法。

这种方法同样适用于解一元二次方程。

配方法的目标是将方程转化为平方的形式。

例如,对于方程ax^2 + bx +c = 0,我们可以通过选取合适的系数m和n,将方程转化为a(x + m)^2 + n = 0的形式。

然后,我们可以通过移项、开方等运算来解方程。

配方法相对较复杂,但适用范围广,并且在解一些特殊的高次方程时有着重要的地位。

最后,使用数值方法是解决复杂代数方程的有效途径。

数值方法利用数值计算的思想,通过迭代逼近的方式求解方程。

这种方法适用于解高次方程、多元方程以及非线性方程等。

数值方法通过将连续的问题转化为离散的问题,并利用计算机进行迭代计算,可以在较短的时间内得到较精确的解。

综上所述,代数方程的求解方法有很多种,我们可以根据方程的形式和条件选择合适的方法。

无论是试运算法、因式分解法还是配方法,都可以解决不同类型的代数方程。

《计算机方程式》知识点归纳

《计算机方程式》知识点归纳

《计算机方程式》知识点归纳1.方程式的表示:《计算机方程式》通过数学符号和计算机编程语言中的表达式来表示方程式。

可以用变量、常量、函数和运算符来构建表达式,用以描述数学关系。

2.方程式求解:《计算机方程式》主要用于解决方程式的求解问题。

根据方程式的类型和形式,可以采用不同的求解方法,如代数解法、数值解法和符号化解法等。

3.代数解法:代数解法是指通过代数运算来解决方程式的方法。

常见的代数解法有因式分解法、配方法、消元法和代数恒等式等。

代数解法适用于求解简单方程式和多项式方程式等。

4.数值解法:数值解法是通过数值计算来求解方程式的方法。

常见的数值解法有迭代法、二分法、牛顿法和高斯-塞德尔方法等。

数值解法适用于求解非线性方程式和微分方程等。

5.符号化解法:符号化解法是通过利用符号计算软件和代数运算来求解方程式的方法。

符号化解法可以得到方程式的精确解,但对于复杂的方程式求解可能存在局限性。

6.方程组求解:《计算机方程式》也可以用于求解方程组的问题。

方程组是由多个方程组成的数学模型,通常表示为一组线性方程或非线性方程。

方程组求解可以采用代数运算、矩阵运算和迭代算法等方法。

7.经典案例:《计算机方程式》的应用十分广泛,其中一些经典案例包括:-牛顿-拉弗森迭代法:用于求解非线性方程的一种迭代方法。

-高斯消元法:用于求解线性方程组的一种消元方法。

-多项式插值:利用已知数据点拟合出一个多项式函数的问题。

-数值微分和数值积分:用于近似计算函数的导数和定积分。

总之,《计算机方程式》是一种将数学理论和计算机算法相结合的求解方法,广泛应用于解决各种数学问题。

了解《计算机方程式》的知识点可以帮助我们更好地掌握和应用计算机求解方法,提高数学问题的解决效率和准确性。

代数方程的求解

代数方程的求解

代数方程的求解
引言
代数方程是数学领域的重要内容之一,求解代数方程是许多数学问题的关键步骤。

本文将介绍代数方程的基本概念,常见的求解方法以及求解过程中需要注意的事项。

代数方程的定义
代数方程是指一个或多个未知数的表达式与常数之间通过运算等式相连的等式。

常见的代数方程形式包括一次方程、二次方程、高次方程等。

代数方程的求解方法
1. 一次方程的求解方法
- 对于形如 ax + b = 0 的一次方程,可以直接通过移项求解。

- 将方程中的未知数移到一边,将常数移到另一边,将未知数的系数除到常数上即可求解出未知数的值。

2. 二次方程的求解方法
- 对于形如 ax^2 + bx + c = 0 的二次方程,可以使用求根公式进行求解。

- 求根公式为 x = (-b ± √(b^2 - 4ac)) / (2a)。

3. 高次方程的求解方法
- 对于高次方程,求解方法相对复杂,可以使用数值方法进行求解,如牛顿法、二分法等。

求解代数方程的注意事项
1. 方程的解可能有多个,也可能无解。

2. 求解过程中要注意检查结果的合法性,是否满足原方程。

3. 在使用数值方法进行求解时,需要注意选取适当的迭代次数和初始值,防止求解过程发散或陷入死循环。

总结
代数方程的求解是数学领域的重要内容,不同类型的方程有不同的求解方法。

求解代数方程时需要注意检查结果的合法性,并在使用数值方法时选择合适的迭代次数和初始值。

通过学习和掌握代数方程的求解方法,可以更好地理解和解决数学问题。

MATLAB第五课 代数方程求解

MATLAB第五课 代数方程求解
x-1/6 x3+1/120 x5-...-1/121645100408832000 x19 1 0.5 0 -0.5 -1 -6 -4 -2 0 x 2 4 6
习题:见109页1-10
x=
用solve命令解方程
>> x=solve('x+3=0') >> x=solve('x+3')
x=
x=
当你传递给solve函数x+3时,MATLAB假 设你传递的就是x+3=0 -3 -3 提问:如果你求解的方程有时候可能含有多个符 号,如ax+5=0,这个时候怎么求解?
提问:如果你在MATLAB中输入方程ax+5=0, MATLAB只认为求解x。 >> solve('a*x+5') ans = -5/a
>> doபைடு நூலகம்ble(s(1))
ans =
4.2588
>> double(s(2))
ans =
1.1164
>> ezplot(eq1,[-10 10])
x -5 x +4 x -5 x+6
10000 8000 6000 4000 2000 0 -10 -5 0 5 10
4
3
2
x
5
解: 5x+4y=3 X-6y=2
>> ezplot('x+3=0') ??? Error using ==> inlineevalError in inline expression ==> x+3=0??? Error: The expression to the left of the equals sign is not a valid target for an assignment.Error in ==> inline.feval at 34 INLINE_OUT_ = inlineeval(INLINE_INPUTS_, INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr); Error in ==> specgraph\private\ezplotfeval at 54 z = feval(f,x(1));Error in ==> ezplot>ezplot1 at 448[y,f,loopflag] = ezplotfeval(f,x); Error in ==> ezplot at 148 [hp,cax] = ezplot1(cax,f{1},vars,labels,args{:});

五代数方程的求解培训课件

五代数方程的求解培训课件

在结构网格上 从的 西排 南序 角: 开始 向, 东向 ,北 向
2020/5/7
4
5.2 直接法
5.2.1 Gauss elimination 5.2.2 LU decomposition 5.2.3 Tridiagonal system 5.2.4 Cyclic reduction
2020/5/7
A
i W
i1
A
i P
i
A
i E
i
1
Qi
eliminatio n :
A
i* P
A
i P
A
i W
A A i * 1 i 1
P
E
and
Q
* i
Q
i
A
i W
A Q i * 1 *
P
i1
back substituti on :
i
A
i* P
1
Q
* i
A
i E
i
1
2020/5/7
• 计算模板(计算分子;解元SE)
2020/5/7
2
5.1 代数方程系统: 计算模板
2D 2阶 模板
2D 3阶 模板
3D 2阶 模板
2020/5/7
3
5.1 代数方程系统: 整体方程系统
• 流场中每一点都有一个方程(小组), 整个计算域就有一 个大型稀疏方程系统
AQ
(2)
A:稀疏方 ,其阵 结构依 的赖 排于 序。
13
5.3.2 收敛性
• Consider an iterative scheme for a linear system M称为迭代矩阵
上两式相减 或

数学中的代数方程求解

数学中的代数方程求解

数学中的代数方程求解代数方程是数学中的一种基本概念,它描述了数与数之间的关系。

代数方程求解是数学中的一项重要任务,它不仅在数学理论中有着广泛的应用,也在实际问题的解决中扮演着重要的角色。

本文将探讨数学中的代数方程求解,并介绍一些常见的求解方法。

一、代数方程的基本概念代数方程是指含有未知数的等式,其中未知数可以是实数、复数或其他数学对象。

代数方程的一般形式可以表示为:f(x) = 0其中,f(x)是一个关于未知数x的多项式函数,等式的解即为方程的解。

代数方程的求解就是要找到满足等式的x值。

二、一次方程的求解一次方程是最简单的代数方程,它的形式为:ax + b = 0其中,a和b是已知的常数,x是未知数。

一次方程的求解可以通过移项和化简的方法来进行。

首先,我们将方程中的常数项移到等式的另一边,得到ax = -b然后,我们可以通过除以a的操作,解出未知数x的值:x = -b/a这样,我们就得到了一次方程的解。

三、二次方程的求解二次方程是一种常见的代数方程,它的形式为:ax^2 + bx + c = 0其中,a、b和c是已知的常数,x是未知数。

二次方程的求解可以通过配方法、因式分解和求根公式等方法来进行。

配方法是一种常用的求解二次方程的方法,它的基本思想是通过变形将二次方程转化为一个完全平方的形式。

具体步骤如下:1. 将方程移项,得到ax^2 + bx = -c2. 将方程的左边进行配方,得到a(x + b/(2a))^2 = b^2/(4a^2) - c3. 化简方程,得到(x + b/(2a))^2 = (b^2 - 4ac)/(4a^2)4. 对方程开方,得到x + b/(2a) = ±√((b^2 - 4ac)/(4a^2))5. 移项,解出未知数x的值,得到x = (-b ±√(b^2 - 4ac))/(2a)这样,我们就得到了二次方程的解。

四、高次方程的求解高次方程是指次数大于2的代数方程,如三次方程、四次方程等。

数学中的代数方程求解

数学中的代数方程求解

数学中的代数方程求解一、引言代数方程作为数学中的重要研究领域之一,一直以来都对数学研究人员提出了一系列的挑战。

通过代数方程求解方法,我们可以解决各种应用问题,如建筑设计、人口统计数据和电子设备设计等。

在本文中,我们将探讨代数方程的求解和应用。

二、代数方程的基本知识在数学中,代数方程是指一个等式,其中包含一个或多个未知数,并且各项都是多项式。

一个代数方程的一般形式是:ax + by + cz = d,其中a、b、c是已知的系数,x、y、z是未知数,d是常数项。

由于代数方程具有多项式的性质,我们可以使用多种方法求解代数方程。

在下面的章节中,我们将介绍几种常用的求解代数方程的方法。

三、一元二次方程求解方法一元二次方程是代数方程的一个基本形式,其表现为ax²+bx+c=0,其中a≠0。

求一元二次方程的解需要使用一些基本的数学知识和公式。

1.公式法公式求解方法是求解一元二次方程最常见的方法。

它的公式为:x = (-b ± √(b² - 4ac)) / 2a其中,a、b、c是一元二次方程的系数,√是开根号符号。

通过将已知的系数带入公式中,即可求得一元二次方程的解。

2.配方法通过配方法,我们可以将一元二次方程表示为二项式的平方形式,进而简化运算。

在初学阶段,配方法能够帮助我们更好地理解代数方程的求解过程。

3.因数分解法一元二次方程的系数a、b、c也可经过“因数分解法”来求解。

我们可以通过将二元式ax²+bx+c分解为(a1x +c1)(a2x +c2)的形式,再带入得到通项公式中。

四、线性方程组求解线性方程组是由两个或多个线性方程组成的,其中每个方程都涉及未知数。

通常,线性方程组的解被定义为使所有方程都成立的未知数的值。

解线性方程组的一个常用的方法是高斯-约旦消元法。

这种方法基于矩阵的概念,通过消元的方法将线性方程组简化为最简单的形式,并求解未知数的值。

高斯-约旦消元法通常涉及大量计算,因此在计算机上进行线性方程组求解时需要进行优化和加速。

《代数方程的求解》课件

《代数方程的求解》课件
量的值。
添加标题
换元法:通过引入 新的变量,将原方 程组转化为更简单 的形式,从而更容
易求解。
添加标题
图像法:通过绘制 二元一次方程组的 图像,利用图像的 交点来求解方程组
的解。
添加标题
公式法:对于一些 特殊的二元一次方 程组,可以通过使 用公式直接求解。
二元一次方程组的解与系数的关系
二元一次方程组的解与系数的关系:解与系数成正比 解与系数的关系:解与系数成反比 解与系数的关系:解与系数成线性关系 解与系数的关系:解与系数成非线性关系
步骤:首先将方程两边同时加上一次项系数一半的平方,然后配 方得到一个完全平方的形式,最后对方程进行化简求解
添加项标题
注意事项:在配方过程中要注意符号问题,以及保证等式两边相 等
公式法
定义:公式法是一种通过代数运算求解代数方程的方法 适用范围:适用于一元一次方程、一元二次方程等 步骤:首先将方程化为标准形式,然后利用公式求解 注意事项:在使用公式法时需要注意公式的适用范围和精度要求
求解方法:配方法、公式法、因式分解法等
一元二次方程的解法
定义:一元二次 方程是只含有一 个未知数,并且 未知数的最高次 数为2的方程
解法:配方法、 公式法、因式分 解法
注意事项:判别 式Δ的应用,根的 判别与求根公式 的使用
实际应用:一元 二次方程在生活 中的应用举例
一元二次方程的根与系数的关系
THANK YOU
汇报人:PPT
汇报时间:20XX/XX/XX
YOUR LOGO
代数方程的定义
代数方程:由未知数和常数通过 有限次的加、减、乘、除、乘方 和开方等代数运算所组成的等式
常数:已知的数
添加标题

代数方程的解法

代数方程的解法

代数方程的解法教案:代数方程的解法一、引言代数方程是数学中一类重要的问题,解代数方程是数学研究的基础。

本教案将介绍代数方程的解法,通过几种常见的方法来解决代数方程。

二、一元一次方程的解法1.平衡法平衡法是一种简单有效的解一元一次方程的方法,即通过两边的操作使方程两边保持平衡。

例如:2x - 3 = 7首先,将方程两边加上3,得到:2x = 10然后,将方程两边除以2,得到:x = 5所以,方程的解为x = 5。

2.图像法图像法是一种直观解一元一次方程的方法,即通过将方程转化为直线的形式,通过图像来求解。

例如:y = 2x - 3通过绘制直线y = 2x - 3,并找到直线与x轴的交点,即可求得方程的解。

3.代入法代入法是一种逐步代入的方法,即通过将一个变量的值代入方程,来求得另一个变量的值。

例如:2x - 3y = 53x + 4y = 10首先,将第一个方程解为x = (5 + 3y) / 2然后,将x的值代入第二个方程,得到:3(5 + 3y) / 2 + 4y = 10通过求解得到y的值,再代回x的表达式求解x的值。

三、一元二次方程的解法1.配方法对于一元二次方程ax^2 + bx + c = 0,通过配方法可以将方程转化为两个一元一次方程。

例如:x^2 + 4x + 3 = 0首先,通过分解常数因子c,找出两个数之和为b,并且两个数之积为c的性质。

在本例中,3可以分解为1和3,且1 + 3 = 4。

得到方程(x + 1)(x + 3) = 0通过求解括号内的两个一元一次方程,得到方程的解。

2.公式法对于一元二次方程ax^2 + bx + c = 0,可以通过求解二次方程的根的公式来求得方程的解。

公式为:x = (-b ± √(b^2 - 4ac)) / 2a其中,±表示两个解。

四、高次方程的解法对于高次方程,一般需要借助特定的方法来求解。

例如,对于三次方程和四次方程,可以通过因式分解、降阶等方法来求解。

代数方程求解:解决代数方程

代数方程求解:解决代数方程

代数方程求解:解决代数方程代数方程是数学中常见的一种形式,它描述了一个或多个未知数与各种数学运算符号之间的关系。

代数方程的求解是数学中的一个基本问题,它涉及到数学家和科学家在解决各种实际问题时所面临的困难。

本文将探讨代数方程的求解方法,以及其中一些经典的数学思想和技巧。

在代数方程求解中,我们首先需要了解方程的类型。

常见的代数方程包括一元方程、二元方程、多元方程等。

其中,一元方程是指只包含一个未知数的方程,如2x+3=7;二元方程是指包含两个未知数的方程,如2x+3y=7;而多元方程则包含多个未知数。

针对不同类型的方程,我们将采用不同的求解方法。

解一元方程的方法相对简单直接。

我们可以通过逆运算的方式,将方程转化为已知数与未知数进行运算,从而求得未知数的值。

以一元一次方程为例,我们可以通过移项、合并同类项的方式将方程简化,然后通过除法、乘法等基本运算将未知数单独求解。

例如,对于方程2x+3=7,我们可以先将3移项得到2x=4,然后再将2x除以2得到x=2,即得到方程的解。

解二元方程的方法稍微复杂一些。

常见的二元方程求解方法包括代入法、消元法和等式相加减法。

代入法是指将方程中的一个未知数表示成另一个未知数的函数,然后将其代入到另一个方程中进行求解。

消元法是指通过运算将方程中的一个未知数消去,从而转化为只含有一个未知数的方程进行求解。

等式相加减法是指将两个方程相加或相减,从而得到一个只含有一个未知数的新方程进行求解。

例如,对于方程组2x+3y=7和4x-2y=10,我们可以通过代入法将其中一个方程化简为只含有一个未知数的方程,然后代入到另一个方程中进行求解。

解多元方程的方法更加复杂,通常涉及到矩阵、向量和线性代数等数学工具。

多元方程的求解通常涉及到线性方程组的解法,其中包括高斯消元法、矩阵求逆法、克拉默法则等。

这些方法都是基于一些数学原理和定理进行推导和证明的,可以解决一般的多元方程组。

例如,对于方程组2x+3y+z=7、4x-2y+2z=10和3x+y-3z=6,我们可以通过高斯消元法将方程组化简为阶梯形式,然后再通过消元和回代等步骤得到未知数的值,即得到方程组的解。

代数方程解法

代数方程解法

代数方程解法在数学中,代数方程是指含有未知数的数学表达式,通过求解代数方程,可以找到未知数的值。

对于不同类型的代数方程,有不同的解法。

本文将介绍几种常见的代数方程解法。

一、一次方程的解法一次方程是指次数为1的方程,可以用一次方程的标准形式表示为:ax + b = c,其中a、b、c为已知数,x为未知数。

一次方程的解法如下:1.1 消元法通过消去式子中的某一项,使得方程只含有一个未知数,从而求解未知数的值。

具体步骤如下:Step 1: 通过减法或加法将方程转化为形如ax = b的式子。

Step 2: 通过除法将方程化简为x = c的形式,即得到解x的值。

1.2 代入法将已知的数值代入方程中,求解未知数的值。

具体步骤如下:Step 1: 将已知的数值代入方程,得到一个包含未知数的一次方程。

Step 2: 求解这个一次方程,得到未知数的值。

1.3 图解法将方程转化为一条直线的方程,通过图示的方式找到直线与x轴的交点,即可得到未知数的值。

二、二次方程的解法二次方程是指次数为2的方程,可以用二次方程的标准形式表示为:ax^2 + bx + c = 0,其中a、b、c为已知数,x为未知数。

二次方程的解法如下:2.1 因式分解法通过将方程进行因式分解,将二次方程转化为两个一次方程的乘积等于0,从而求解未知数的值。

2.2 公式法二次方程的求根公式为:x = (-b ± √(b^2 - 4ac)) / 2a。

通过代入已知数的值,计算出√(b^2 - 4ac)的值,进而求解未知数x的值。

2.3 完全平方公式对于完全平方形式的二次方程,可以通过完全平方公式求解。

完全平方公式为:(a ± √b)^2 = a^2 ± 2a√b + b。

通过将已知数代入完全平方公式,求解未知数的值。

三、三次方程的解法三次方程是指次数为3的方程,可以用三次方程的标准形式表示为:ax^3 + bx^2 + cx + d = 0,其中a、b、c、d为已知数,x为未知数。

五代数方程的求解课件

五代数方程的求解课件
收敛条件:
p (1 ) X p
a i a ij , i j i
且至少对一个
i有
a i a ij j i
18
GS迭代法的应用:LU-SGS
AX b , A L D U X p X p1 X p 则 ( L D U ) X p b AX p L Sweep : D X p * b AX p L X p * U Sweep : D X p b AX p L X p * U X p i .e .
Crank-Nicholson Discretization where
26
改写成
The last term is proportion to (t)3 and can be neglected.
只需求解两个坐标坐标方向的三对角线方程。
2D无条件稳定。3D有条件稳定。特殊形式可以无条件稳定。
增量形式ADI称为 approximate factorization (AF)。
LU p1QAp
• SIP求解由L-sweep和U-sweep组成
• 收敛所用迭代次数少,但计算L和U的工作量大,总体效率较高
• 3D 七对角线和2D 九对角线(九点格式)的程序见Peric书附件。
25
5.3.5 ADI 和其他分裂方法
主要解对多维抛物型方程,也可以解拟时间的抛物型方程-> 椭圆形方程 2D抛物型方程
*
*
*
Gives upper bi-diagonal matrix. By backward substitution, we get
*
9
5.2.3 Tridiagonal system:块三对角方程组
A
i W
i1
A

代数方程的求解

代数方程的求解

M称为迭代矩阵
上两式相减
这里 n

14
5.3.2 收敛性(续)
设特征向量完备,则
趋于零的充要条件:k 1
1
is the largest eigenvalue
迭代次数:
15
5.3.2 收敛性:收敛速度
A Q AM N 要想收敛快,要求: A, N 0 M
20
GS迭代法的应用:并行的Red-black
21
5.3.4 不完全LU 分解方法 (ILU) 在PDE中的应用:SIP方法
• • • • LU method是通用方法,但没有利用原矩阵的稀疏性质; ILU: 非精确分解,i.e. M=LU =A+N; 在ILU中,如果迭代矩阵M尽量接近原矩阵A,则收敛快. . ILU method for CFD is Strongly Implicit Procedure (SIP),by Stone
eliminat io : n
i* P i P
A A A A
i W


i* 1 P
A
i 1 E
and
* i
Q Qi A A
i W


i* 1 P
Q
* i 1
back subst it ut ion :
i A
i* 1 P
Q
* i
i AEi 1
• 线性代数方程和极小化: 对于对称正定矩阵A,求解 等价于找到 i , 使F极小化:
•共轭 :
假设在P1 P 2平面内极小化F: F 0 1P1 2 P 2 我们只需要针对其中任 意一个方向做极小化, 如果这两个方向 关于矩阵A是共轭的: P1 AP 2 0
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章 方程求解1 代数方程(组)求解1.1 常用求解工具—solve求解代数方程或代数方程组, 使用Maple 中的solve 函数. 求解关于x 的方程eqn=0的命令格式为:solve(eqn, x);求解关于变量组vars 的方程组eqns 的命令为:solve(eqns, vars);> eqn:=(x^2+x+2)*(x-1);:= eqn () + + x 2x 2() - x 1> solve(eqn,x);,,1- + 1212I 7- - 1212I 7 当然, solve 也可以求解含有未知参数的方程:> eqn:=2*x^2-5*a*x=1;:= eqn = - 2x 25a x 1> solve(eqn,x);, + 5a 14 + 25a 28 - 5a 1 + 25a 28 solve 函数的第一个参数是有待求解的方程或方程的集合, 当然也可以是单个表达式或者表达式的集合, 如下例:> solve(a+ln(x-3)-ln(x),x);3e a- + 1ea 对于第二个参数, Maple 的标准形式是未知变量或者变量集合, 当其被省略时, 函数indets 自动获取未知变量. 但当方程中含有参数时, 则会出现一些意想不到的情况: > solve(a+ln(x-3)-ln(x));{}, = x x = a - + ()ln - x 3()ln x很多情况下, 我们知道一类方程或方程组有解, 但却没有解决这类方程的一般解法, 或者说没有解析解. 比如, 一般的五次或五次以上的多项式, 其解不能写成解析表达式. Maple 具备用所有一般算法尝试所遇到的问题, 在找不到解的时候, Maple 会用RootOf 给出形式解.> x^7-2*x^6-4*x^5-x^3+x^2+6*x+4;- - - + + + x 72x 64x 5x 3x 26x 4> solve(%); + 15 - 15()RootOf , - - _Z 5_Z 1 = index 1()RootOf , - - _Z 5_Z 1 = index 2()RootOf , - - _Z 5_Z 1 = index 3,,,,,()RootOf , - - _Z 5_Z 1 = index 4()RootOf , - - _Z 5_Z 1 = index 5, > solve(cos(x)=x,x);()RootOf - _Z ()cos _Z对于方程组解的个数可用nops 命令获得, 如:> eqns:={seq(x[i]^2=x[i],i=1..7)};:= eqns {},,,,,, = x 12x 1 = x 22x 2 = x 32x 3 = x 42x 4 = x 52x 5 = x 62x 6 = x 72x 7 > nops({solve(eqns)}); 128但是, 有时候, Maple 甚至对一些“显而易见”的结果置之不理, 如:> solve(sin(x)=3*x/Pi,x);()RootOf - 3_Z ()sin _Z π此方程的解为0 ,6π±, 但Maple 却对这个超越方程无能为力, 即便使用allvalues 求解也只有下述结果:> allvalues(%);()RootOf , - 3_Z ()sin _Z π0.另外一个问题是, Maple 在求解方程之前,会对所有的方程或表达式进行化简, 而不管表达式的类型, 由此而产生一些低级的错误:> (x-1)^2/(x^2-1);() - x 12- x 21> solve(%);1但是, 大量实验表明, solve 的确是一个实用的方程求解工具, 但是也不可盲目相信它给出的一切结果, 特别是对于非线性方程而言, 对于给出的结果需要加以验证.下面通过几个例子说明在Maple 中非线性方程组的求解问题.例:求解方程组:⎩⎨⎧=-=+y x y x 925222 > eqns:={x^2+y^2=25,y=x^2-5};:= eqns {}, = y - x 25 = + x 2y 225> vars:={x,y};:= vars {},x y> solve(eqns,vars);,,,{}, = x 0 = y -5{}, = x 0 = y -5{}, = y 4 = x 3{}, = y 4 = x -3也可用下面的语句一步求出:> 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这个问题非常简单, 但通常遇到的非线性问题却不是这么简单, 例如要求解方程组:y x y x y x -=+=+,122> eqns:={x^2+y^2=1,sqrt(x+y)=x-y};vars:={x,y};:= eqns {}, = + x 2y 21 = + x y - x y:= vars {},x y> sols:=solve(eqns,vars);sols = y ()RootOf , + + 2_Z 24_Z 3 - -1.000000000.7071067812I ,{ := = x - - ()RootOf , + + 2_Z 24_Z 3 - -1.000000000.7071067812I 2}{}, = x 1 = y 0,可以看出, 方程解的形式是以集合的序列给出的, 序列中的每一个集合是方程的一组解, 这样就很利于我们用subs 把解代入原方程组进行检验:> subs(sols[2],eqns);{} = 11> sols2:=allvalues(sols[1]);:= sols2{}, = x - + 112I 2 = y - - 112I 2 > simplify(subs(sols2,eqns));{}, = I 2I 2 = 111.2 其他求解工具1.2.1 数值求解对于求代数方程的数值解问题, Maple 提供了函数fsolve , fsolve 的使用方法和solve 很相似:fsolve(eqns, vars, options);其中, eqns 表示一个方程、方程组或者一个程序, vars 表示一个未知量或者未知量集合, options 控制解的参数(诸如:complex: 复根; maxsols=n :只找到n 阶最小根; intervals :在给定闭区间内求根, 等).> fsolve(x^5-x+1,x);-1.167303978> fsolve(x^5-x+1,x,complex);-1.167303978 - -.1812324445 1.083954101I + -.1812324445 1.083954101I - .7648844336.3524715460I ,,,,+ .7648844336.3524715460I > fsolve(x^3-3*x+1,x,0..1);.3472963553对于多项式方程, fsolve 在默认情况下以给出所有的实数解, 如果附加参数complex , 就可以给出所有的解. 但对于更一般的其他形式的方程, fsolve 却往往只满足于得到一个解:> eqn:=sin(x)=x/2;:= eqn = ()sin x 1x > fsolve(eqn);0.> fsolve(eqn,x,0.1..infinity);1.895494267> fsolve(eqn,x,-infinity..-0.1);-1.895494267函数fsolve 主要基于两个算法, 通常使用牛顿法, 如果牛顿法无效, 它就改而使用切线法. 为了使fsolve 可以求得所有的实根, 我们通常需要确定这些根所在的区间. 对于单变量多项式, 函数realroot 可以获得多项式的所有实根所在的区间.> 4+6*x+x^2-x^3-4*x^5-2*x^6+x^7;+ + - - - + 46x x 2x 34x 52x 6x 7> realroot(%);[],,[],02[],24[],-2-1函数realroot 还有一个可选参数, 它是用来限制区间的最大长度的, 为了保证使用数值求解方法时收敛, 我们可以用它限制区间的最大长度:> realroot(%%,1/1000);⎡⎣⎢⎢⎤⎦⎥⎥,,⎡⎣⎢⎢⎤⎦⎥⎥,11951024299256⎡⎣⎢⎢⎤⎦⎥⎥,331310241657512⎡⎣⎢⎢⎤⎦⎥⎥,-633512-12651024 求解方程或方程组的整数解时使用函数isolve , 它常常被用来求解不定方程. 例如著名的“百钱买百鸡”问题♣的求解过程为:> isolve({x+y+z=100,5*x+3*y+z/3=100});{},, = z + 753_Z1 = x 4_Z1 = y - 257_Z1据此可得满足该问题的三组解为:{x, y, z}={4, 18, 78}, {x, y, z}={8, 11, 81}, {x, y, z}={12, 4, 84}1.2.2 整数环中的方程(组)求解利用Maple 中的函数msolve(eqns, vars, n), 可以在模n 的整数环中求解方程(组)eqns.例:在Z 7中求解Pell 方程2837-=x y> msolve(y^7=x^3-28,7); {}, = x 3 = y 6{}, = x 4 = y 1{}, = y 0 = x 0{}, = x 1 = y 1{}, = y 6 = x 6,,,,,{}, = x 2 = y 1{}, = y 6 = x 5, 再如下例:> msolve(y^4=x^3+32,5);,,,,{}, = x 2 = y 0{}, = x 4 = y 1{}, = x 4 = y 2{}, = x 4 = y 3{}, = x 4 = y 41.2.3 递归方程的求解在Maple 中, 可以求解有限差分方程(也称递归方程), 所需调用的函数是rsolve , 该函数使用的是一些比较通用的方法, 例如产生函数法、z 变换法以及一些基于变量替换和特征方程的方法. 作为例子, 求解Fibonacci 多项式:> eq:=f(n)=f(n-1)+2*f(n-2);:= eq = ()f n + ()f - n 12()f - n 2> rsolve({eq,f(0)=1,f(1)=1},f(n)); + 1()-1n 22n 当然, 并不是所有的递归形式的函数方程的解可以写成解析形式, 如果不能, Maple 将保留原来的调用形式. 此时, 可用asympt 函数获得它的渐进表达式, 也就是1/n 的级数解. 例如, 对于一个具有超越形式的递归函数方程, 仍然可以得到解的渐进形式:♣ 百钱买百鸡问题:用100元钱买100只鸡, 大公鸡5元钱1只, 大母鸡3元钱1只, 小鸡1元钱3只, 问如何买法?> rsolve(u(n+1)=ln(u(n)+1),u(n));()rsolve , = ()u + n 1()ln + ()u n 1()u n> asympt(%,n,5);+ + + 21 + _C 2()ln n n 2 - + - + 11_C 1_C 2⎛⎝ ⎫⎭⎪⎪- + 2_C 2()ln n 2()ln n 2n 3⎛⎝ ⎫⎭⎪⎪O 1n 41.2.4 不等式(组)求解求解一元不等式方程(组)使用命令solve :> solve((x-1)*(x-2)*(x-3)<0,x);,()RealRange ,-∞()Open 1()RealRange ,()Open 2()Open 3> solve((x-1+a)*(x-2+a)*(x-3+a) < 0, {x});,{} < x - 1a {}, < - 2a x < x - 3a> solve(exp(x)>x+1);,()RealRange ,-∞()Open 0()RealRange ,()Open 0∞> solve({x^2*y^2=0,x-y=1,x<>0});,{}, = y 0 = x 1{}, = y 0 = x 1对于由不等式方程组约束的最优问题的求解使用“线性规则”工具包simplex : > with(simplex):> cnsts:={3*x+4*y-3*z<=23, 5*x-4*y-3*z<=10,7*x+4*y+11*z<=30};:= cnsts {},, ≤ + - 3x 4y 3z 23 ≤ - - 5x 4y 3z 10 ≤ + + 7x 4y 11z 30 > obj:=-x+y+2*z;:= obj - + + x y 2z> maximize(obj,cnsts union {x>=0,y>=0,z>=0});{},, = z 12 = y 498= x 0 2 常微分方程求解微分方程求解是数学研究与应用的一个重点和难点. Maple 能够显式或隐式地解析地求解许多微分方程求解. 在常微分方程求解器dsolve 中使用了一些传统的技术例如laplace 变换和积分因子法等, 函数pdesolve 则使用诸如特征根法等经典方法求解偏微分方程. 此外, Maple 还提供了可作摄动解的所有工具, 例如Poincare-Lindstedt 法和高阶多重尺度法.帮助处理常微分方程(组)的各类函数存于Detools 软件包中, 函数种类主要有:可视化类的函数, 处理宠加莱动态系统的函数, 调整微分方程的函数, 处理积分因子、李对称法和常微分方程分类的函数, 微分算子的函数, 利用可积性与微分消去的方法简化微分方程的函数, 以及构造封闭解的函数等. 更重要的是其提供的强大的图形绘制命令Deplot 能够帮助我们解决一些较为复杂的问题.2.1 常微分方程的解析解求解常微分方程最简单的方法是利用求解函数dsolve . 命令格式为:dsolve(ODE);dsolve(ODE, y(x), extra_args);dsolve({ODE, ICs}, y(x), extra_args);dsolve({sysODE, ICs}, {funcs}, extra_args);其中, ODE —常微分方程, y(x)—单变量的任意变量函数, Ics —初始条件, {sysODE}—ODE 方程组的集合, {funcs}—变量函数的集合, extra_args —依赖于要求解的问题类型.例如, 对于一阶常微分方程y xy y y x -=')ln(可用dsolve 直接求得解析解: > ODE:=x*diff(y(x),x)=y(x)*ln(x*y(x))-y(x);:= ODE = x ⎛⎝ ⎫⎭⎪⎪∂∂x ()y x - ()y x ()ln x ()y x ()y x > dsolve(ODE,y(x));= ()y x e ⎛⎝ ⎫⎭⎪⎪x _C1x可以看出, dsolve 的第一个参数是待求的微分方程, 第二个参数是未知函数. 需要注意的是, 无论在方程中还是作为第二个参数, 未知函数必须用函数的形式给出(即:必须加括号, 并在其中明确自变量), 这一规定是必须的, 否则Maple 将无法区分方程中的函数、自变量和参变量, 这一点和我们平时的书写习惯不一致. 为了使其与我们的习惯一致, 可用alias 将函数用别称表示:> alias(y=y(x));> ODE:=x*diff(y,x)=y*ln(x*y)-y;:= ODE = x ⎛⎝ ⎫⎭⎪⎪∂∂x y - y ()ln x y y > dsolve(ODE,y);= y e⎛⎝ ⎫⎭⎪⎪x x函数dsolve 给出的是微分方程的通解, 其中的任意常数是用下划线起始的内部变量表示的.在Maple 中, 微分方程的解是很容易验证的, 只需要将解代入到原方程并化简就可以了.> subs(%,ODE);= x ⎛⎝⎫⎭⎪⎪⎪⎪∂∂x e ⎛⎝ ⎫⎭⎪⎪x x - e ⎛⎝ ⎫⎭⎪⎪x ⎛⎝ ⎫⎭⎪⎪ln e ⎛⎝ ⎫⎭⎪⎪x x e ⎛⎝ ⎫⎭⎪⎪xx > assume(x,real): assume(_C1,real):> simplify(%); = -e ⎛⎝ ⎫⎭⎪⎪x~()- + x~_C1~x~_C1~-e ⎛⎝ ⎫⎭⎪⎪x~()- + x~_C1~x~_C1~> evalb(%); true evalb 函数的目的是对一个包含关系型运算符的表达式使用三值逻辑系统求值, 返回的值是true, false 和FAIL. 如果无法求值, 则返回一个未求值的表达式. 通常包含关系型运算符“=, <>, <, <=, >, >=”的表达式在Maple 中看作是代数方程或者不等式. 然而, 作为参数传递给evalb 或者出现在if 或while 语句的逻辑表达式中时, 它们会被求值为true 或false. 值得注意的是, evalb 不化简表达式, 因此在使用evalb 之前应将表达式化简, 否则可能会出错. 再看下面常微分方程的求解:12+='y y> alias(y=y(x)):> ODE:=diff(y,x)=sqrt(y^2+1);:= ODE = ∂∂xy + y 21 > dsolve(ODE,y);= y ()sinh + x _C1函数dsolve 对于求解含有未知参变量的常微分方程也完全可以胜任:> alias(y=y(x)):> ODE:=diff(y,x)=-y/sqrt(a^2-y^2);:= ODE = ∂∂xy -y - a 2y 2> sol:=dsolve(ODE,y); := sol = + - + x - a 2y 2a 2⎛⎝ ⎫⎭⎪⎪ln + 2a 22a 2- a 2y 2y a 2_C10由此可见, 对于不能表示成显式结果的微分方程解, Maple 尽可能将结果表示成隐式解. 另外, 对于平凡解y=0常常忽略, 这一点应该引起注意.dsolve 对于求解微分方程初值问题也十分方便的:> ODE:=diff(u(t),t$2)+omega^2*u(t)=0;:= ODE = + ⎛⎝ ⎫⎭⎪⎪∂∂2t 2()u t ω2()u t 0 > dsolve({ODE,u(0)=u0,D(u)(0)=v0},u(t)); =()u t + v0()sin ωt u0()cos ωt 2.2 利用积分变换求解微分方程 对于特殊的微分方程, 我们还可以指定dsolve 利用积分变换方法求解, 只需要在dsolve 中加入可选参数method=transform 即可. 其中transform 是积分变换, 可以是laplace 、fourier 、fouriercos 或者fouriersin 变换.作为例子, 我们来看一个具有阻尼的振子在阶跃冲击(Heaviside 函数)下的响应: > ODE:=diff(u(t),t$2)+2*d*omega*diff(u(t),t)+omega^2*u(t)=Heaviside(t);:= ODE = + + ⎛⎝ ⎫⎭⎪⎪∂∂2t 2()u t 2d ω⎛⎝ ⎫⎭⎪⎪∂∂t ()u t ω2()u t ()Heaviside t > initvals:=(u(0)=u[0],D(u)(0)=v[0]);:= initvals , = ()u 0u 0 = ()()D u 0v 0> solution:=dsolve({ODE,initvals},u(t),method=laplace);:= solution = ()u t + 1ωe ()-t d ω⎛⎝ ⎫⎭⎪⎪⎪ + () - ω2u 01()cosh t - d 2ω2ω2ω() + - ωv 0d ω2u 0d ()sinh t - d 2ω2ω2 - d 2ω2ω2ωMaple 给出了问题的通解, 但没有区分自由振动(d=0)、欠阻尼(0<d<1)、临界阻尼(d=1)和过阻尼(d>1)的情况. 下面加以区分求解:> assume(omega>0):> simplify(subs(d=0,solution));= ()u t + - + 1()cos t ωω2u 0()cos t ωv 0()sin t ωωω2> K:=subs(d=1/5,u[0]=1,v[0]=1,solution);:= K = ()u t + 1ωe ()-/15t ω⎛⎝ ⎫⎭⎪⎪⎪⎪⎪⎪⎪ + () - ω21⎛⎝ ⎫⎭⎪⎪cosh t -2425ω2ω⎛⎝ ⎫⎭⎪⎪ + - ω15ω215⎛⎝ ⎫⎭⎪⎪sinh t -2425ω2-2425ω2ω> with(plots):> plot3d(rhs(%%),omega=2/3..4/3,t=0..20,style=hidden,orientation=[-30,45],axes=framed);对于d=1的情况, 可可用下式获得结果:> limit(rhs(solution),d=1);() + - + - + ω2u 0ω2v 0t 1ω3u 0t t ωe()t ωe ()-t ωω2再如下例:> diff(u(t),t$2)+3*diff(u(t),t)+2*u(t)=exp(-abs(t));= + + ⎛⎝ ⎫⎭⎪⎪∂∂2t 2()u t 3⎛⎝ ⎫⎭⎪⎪∂∂t ()u t 2()u t e ()-t > dsolve(%,u(t),method=fourier);= ()u t + + - 2e ()-2t ()Heaviside t 1e t ()Heaviside -t e ()-t t ()Heaviside t 1e ()-t ()Heaviside t2.3 常微分方程组的求解函数dsolve 不仅可以用来求解单个常微分方程, 也可以求解联立的常微分方程组. 特别是对于线性微分方程组, 由于数学上具有成熟的理论, Maple 的求解也是得心应手. 其命令格式为:dsolve( {eqn1, eqn2, …, ini_conds}, {vars});其中, ini_conds 是初始条件.> eqn1:={diff(x(t),t)=x(t)+y(t),diff(y(t),t)=y(t)-x(t)};:= eqn1{}, = ∂∂t ()x t + ()x t ()y t = ∂∂t()y t - ()y t ()x t > dsolve(eqn1,{x(t),y(t)}); {}, = ()x t e t () + _C1()sin t _C2()cos t = ()y t e t () - _C1()cos t _C2()sin t > eqn2:=2*diff(x(t),t$2)+2*x(t)+y(t)=2*t;:= eqn2 = + + 2⎛⎝ ⎫⎭⎪⎪∂∂2t 2()x t 2()x t ()y t 2t > eqn3:=diff(y(t),t$2)+2*x(t)+y(t)=t^2+1;:= eqn3 = + + ⎛⎝ ⎫⎭⎪⎪∂∂2t 2()y t 2()x t ()y t + t 21 > dsolve({eqn2, qn3, x(0)=0, D(x)(0)=1, y(0)=0, D(y)(0)=0}, {x(t),y(t)} );= ()x t + - + 18()sin 2t 2112t 3148t 434t ,{ = ()y t - + - + 1()sin 2t 21t 1t 21t 31t 4}2.4 常微分方程的级数解法1) 泰勒级数解法当一个常微分方程的解析解难以求得时, 可以用Maple 求得方程解的级数近似, 这在大多数情况下是一种非常好的方法. 级数解法是一种半解析半数值的方法. 泰勒级数法的使用命令为:dsolve({ODE,Ics}, y(x), 'series'); 或dsolve({ODE,Ics}, y(x), 'type=series');下面求解物理摆的大幅振动方程:θθsin g l -=, 其中l 是摆长, θ是摆角, g 是重力加速度.> ODE:=l*diff(theta(t),t$2)=-g*sin(theta(t));:= ODE = l ⎛⎝ ⎫⎭⎪⎪∂∂2t 2()θt -g ()sin ()θt > initvals:=theta(0)=0,D(theta)(0)=v[0]/l;:= initvals , = ()θ00 =()()D θ0v 0l> sol:=dsolve({ODE,initvals},theta(t),type=series);:= sol = ()θt - + + v 0l t 16g v 0l 2t 31120g v 0() + v 02g l l4t 5()O t 6 > Order:=11:> sol:=dsolve({ODE,initvals},theta(t),type=series);:= sol =()θt -+ - + + v 0l t 16g v 0l 2t 31120g v 0() + v 02g l l 4t 515040g v 0() + + 11g l v 02g 2l 2v 04l 6t 71362880g v 0() + + + 57g v 04l 102g 2v 02l 2g 3l 3v 06l 8t 9()O t 112) 幂级数解法对于一个符号代数系统来说, 幂级数是必不可少的微分方程求解工具. 幂级数求解函数powsolve 存于工具包powseries 中. 但是, 这一求解函数的使用范围很有限, 它只可以用来求解多项式系数的线性常微分方程或方程组,其求解命令为:powseries[function] (prep)或直接载入软件包后用function(prep), prep 为求解的线性微分方程及其初值.例:求解:042=+''+'y x y y x> ODE:=x*diff(y(x),x$2)+diff(y(x),x)+4*x^2*y(x)=0;:= ODE = + + x ⎛⎝ ⎫⎭⎪⎪∂∂2x 2()y x ⎛⎝ ⎫⎭⎪⎪∂()y x 4x 2()y x 0 > dsolve(ODE,y(x));= ()y x + _C1⎛⎝ ⎫⎭⎪⎪BesselJ ,04x ()/32_C2⎛⎝ ⎫⎭⎪⎪BesselY ,04x ()/32> initvals:=y(0)=y0,D(y)(0)=0;:= initvals , = ()y 0y0 = ()()D y 00> with(powseries):> sol:=powsolve({ODE,initvals});:= sol proc () ... end proc powparm> tpsform(sol,x,16);- + - + - + y049y0x 3481y0x 6166561y0x 9459049y0x 121613286025y0x 15()O x 16也可以用powsolve 给出的函数直接获得用递归形式定义的幂级数系数, 不过参数必须用_k , 这是powsolve 使用的临时变量. > sol(_k);-4()a - _k 3_k2例:求解一维谐振子的解:0)(2=-+''y x y ε > alias(y=y(x)):> ODE:=diff(y,x$2)+(epsilon-x^2)*y=0;:= ODE = + ⎛⎝ ⎫⎭⎪⎪∂∂2x 2y () - εx 2y 0 > H:=powsolve(ODE);:= H proc () ... end proc powparm> tpsform(H,x,8);C0C1x 1εC0x 21εC1x 3⎛⎝ ⎫⎭⎪⎪ + 1ε2C01C0x 4⎛⎝ ⎫⎭⎪⎪ + 1ε2C11C1x 5⎛⎝ ⎫⎭⎪⎪- - 1ε⎛⎝ ⎫⎭⎪⎪ + 1ε2C01C01εC0 + - - + + + x 6⎛⎝ ⎫⎭⎪⎪- - 1ε⎛⎝ ⎫⎭⎪⎪ + 1ε2C11C11εC1x 7()O x 8 + + > H(_k);-- ε()a - _k 2()a - _k 4_k ()- _k 12.5 常微分方程的数值解法在对微分方程的解析解失效后, 可以求助于数值方法求解微分方程. 数值求解的好处是只要微分方程的条件足够多时一般都可求得结果, 然而所得结果是否正确则必须依赖相关数学基础加以判断. 调用函数dsolve 求常微分方程初值问题的数值解时需加入参数type=numeric .另一方面, 常微分方程初值问题数值求解还可以选择算法, 加入参数“method=方法参数”即可, 方法参数主要有:rkf45:4~5阶变步长Runge-Kutta-Fehlberg 法 dverk78:7~8阶变步长Runge-Kutta-Fehlberg 法classical :经典方法, 包括向前欧拉法, 改进欧拉法, 2、3、4阶龙格库塔法,Sdams-Bashford 方法等 gear :吉尔单步法 mgear :吉尔多步法 2.5.1变步长龙格库塔法下面用4~5阶Runge-Kutta-Fehlberg 法求解van der Pol 方程:⎩⎨⎧-='==+'--''1.0)0(,0)0(0)1(2y y y y y y > ODE:=diff(y(t),t$2)-(1-y(t)^2)*diff(y(t),t)+y(t)=0;:= ODE = - + ⎛⎝ ⎫⎭⎪⎪∂∂2t()y t () - 1()y t 2⎛⎝ ⎫⎭⎪⎪∂()y t ()y t 0> initvals:=y(0)=0,D(y)(0)=-0.1;:= initvals , = ()y 00 = ()()D y 0-.1> F:=dsolve({ODE,initvals},y(t),type=numeric);:= F proc () ... end proc rkf45_x此时, 函数返回的是一个函数, 可以在给定的数值点上对它求值:> F(0);⎡⎣⎢⎢⎤⎦⎥⎥,, = t 0. = ()y t 0. = ∂()y t -.1 > F(1);⎡⎣⎢⎢⎤⎦⎥⎥,, = t 1. = ()y t -.144768589749425608 = ∂()y t -.178104066128215944 可以看到, F 给出的是一个包括t 、y(t)、D(y)(t)在内的有序表, 它对于每一个时间点可以给出一组数值表达式. 有序表的每一项是一个等式, 可对其作图描述. > plot('rhs(F(t)[2])', t=0..15, title="solution of the Van de Pol's Equation");> plots[odeplot](F,[t,y(t)],0..15,title="solution of the Van de Pol's Equation");2.5.2吉尔法求解刚性方程在科学和工程计算中, 常常会遇到这样一类常微分方程问题, 它可以表示成方程组:00)(),,(y t y y t f y ==', 称其为刚性方程, 其解的分量数量相差很大, 分量的变化速度也相差很大. 如果用常规方法求解, 为了使变量有足够高的精度, 必须取很小的步长, 而为了使慢变分量达到近似的稳态解, 则需要很长的时间, 这样用小步长大时间跨度的计算, 必定造成庞大的计算量, 而且会使误差不断积累. 吉尔法是专门用来求解刚性方程的一种数值方法.> ODE:=diff(u(t),t)=-2000*u(t)+999.75*v(t)+1000.25,diff(v(t),t)=u(t)-v(t);:= ODE , = ∂∂t ()u t - + + 2000()u t 999.75()v t 1000.25 = ∂∂t()v t - ()u t ()v t> initvals:=u(0)=0,v(0)=-2;:= initvals , = ()u 00 = ()v 0-2> ansl:=dsolve({ODE,initvals},{u(t),v(t)},type=numeric,method=gear);:= ansl proc () ... end proc x_gear> ansl(10,0);[],, = t 10. = ()u t .989893921726687442 = ()v t .979787842765888594> p1:=plots[odeplot] (ansl,[t,u(t)],0..20,color=red):p2:=plots[odeplot] (ansl,[t,v(t)],0..20,color=blue):plots[display] ({p1,p2}, title="Solution of a stiff equation");2.5.3 经典数值方法Maple中常微分方程数值解法中有一类被称作是“经典”(classical)方法. 当然, 称其为经典方法不是因为它们常用或是精度高, 而是因为它们的形式简单, 经常被用于计算方法课上的教学内容. 它们是一些常见的固定步长方法, 在dsolve中用参数method=classical[方法名称], 如果不特别指出, 将默认采用向前欧拉法. 主要有:foreuler:向前欧拉法(默认)hunform:Heun公式法(梯形方法, 改进欧拉法)imply:改进多项式法rk2:二阶龙格库塔法rk3:三阶龙格库塔法rk4:四阶龙格库塔法adambash:Adams-Bashford方法(预测法)abmoulton:Adams-Bashford-Moulton方法(预测法)下面给出微分方程数值方法的参数表:另外, 还有一些特殊的附加参数:maxfun :整数类型, 用于最大的函数值数量, 默认值50000, 为负数时表示无限制 corrections :正整数类型, 指定每步修正值数量, 在abmoulton 中使用, 建议值≤4 stepsize :浮点数值, 指定步长 下面看一个简单的例子:> ODE:=diff(y(x),x)=y(x)-2*x/y(x);:= ODE = ∂∂x ()y x - ()y x 2x()y x> initvals:=y(0)=1;:= initvals = ()y 01> sol1:=dsolve({ODE,initvals},y(x),numeric,method=classical,stepsize=0.1,start=0);:= sol1proc () ... end proc x_classical而其解析解为:> sol2:=dsolve({diff(y(x),x)=y(x)-2*x/y(x), y(0)=1}, y(x));:= sol2 = ()y x + 2x 1将两者图形同时绘制在同一坐标系中比较, 可以发现, 在经过一段时间后, 欧拉法的数值结果会产生较大误差.> plot({rhs(sol2),'rhs(sol1(x)[2])'},x=0..2);求解微方程, 无论使用什么方法或者加入什么选项, 求解完成后必须利用相关数学知识进行逻辑判断, 绝对不对简单迷信Maple 给出的结果, 否则很有可能得到一个对于方程本身也许还看得过去, 但在数学或者物理意义上不合理的解.2.6摄动法求解常微分方程由于微分方程求解的复杂性, 一般微分方程常常不能求得精确解析解, 需要借助其它方法求得近似解或数值解, 或者两种方法兼而有之. 摄动法是重要的近似求解方法.摄动法又称小参数法, 它处理含小参数ε的系统, 一般当ε=0时可求得解x 0. 于是可把原系统的解展成ε的幂级数 +++=2210εεx x x x , 若这个级数当ε→0时一致收敛,则称正则摄动, 否则称奇异摄动. 摄动法的种类繁多, 最有代表性的是庞加莱—林斯泰特(Poicare-Lindstedt )法, 在此, 我们以该方法求解van der Pol 方程:0)1(2=+'--''y y y y ε当ε=0时该方程退化为数学单摆的常微分方程, 当ε=1时为3.5讨论的情况, 对任意ε, 该微分方程拥有一个渐进稳定的周期解, 称为极限环.由于van der Pol 方程中没有显式的时间依赖项, 不失一般性, 设初值为y(0)=0. 在庞加莱—林斯泰特法中, 时间通过变换拉伸:t ωτ=, 其中∑∞==0i ii εωω对于)(τy , van der Pol 方程变为:0)1(22=+'--''y y y y ωεωrestart:diff(y(t),t$2)-epsilon*(1-y(t)^2)*diff(y(t),t)+y(t)=0;= - + ⎛⎝ ⎫⎭⎪⎪∂∂2t 2()y t ε() - 1()y t 2⎛⎝ ⎫⎭⎪⎪∂∂t ()y t ()y t 0 > ODE:=DEtools[Dchangevar]({t=tau/omega,y(t)=y(tau)},%,t,tau);:= ODE = - + ω2⎛⎝ ⎫⎭⎪⎪∂∂2τ2()y τε() - 1()y τ2ω⎛⎝ ⎫⎭⎪⎪∂()y τ()y τ0> e_order:=6:> macro(e=epsilon,t=tau):> alias(seq(y[i]=eta[i](tau),i=0..e_order)): > e:=()->e:> for i from 0 to e_order do eta[i]:=t->eta[i](t) od:> omega:=1+sum('w[i]*e^i','i'=1..e_order);:= ω + + + + + + 1w 1εw 2ε2w 3ε3w 4ε4w 5ε5w 6ε6> y:=sum('eta[i]*e^i','i'=0..e_order);:= y + + + + + + η0η1εη2ε2η3ε3η4ε4η5ε5η6ε6> deqn:=simplify(collect(ODE,e),{e^(e_order+1)=0}):> for i from 0 to e_order do ode[i]:=coeff(lhs(deqn),e,i)=0 od:> ode[0];= + y 0⎛⎝ ⎫⎭⎪⎪∂∂2τ2y 00> ode[1];= - + + + ⎛⎝ ⎫⎭⎪⎪∂∂2τ2y 1⎛⎝ ⎫⎭⎪⎪∂y 0y 12w 1⎛⎝ ⎫⎭⎪⎪∂∂2τ2y 0⎛⎝⎫⎭⎪⎪∂y 0y 020 > ode[2];= + - + + + - + + + ⎛⎝ ⎫⎭⎪⎪∂y 0w 1y 022⎛⎝ ⎫⎭⎪⎪∂y 0y 0y 1⎛⎝ ⎫⎭⎪⎪∂y 1⎛⎝ ⎫⎭⎪⎪∂∂2τy 2y 2⎛⎝ ⎫⎭⎪⎪∂y 1y 02⎛⎝ ⎫⎭⎪⎪∂y 0w 12w 1⎛⎝ ⎫⎭⎪⎪∂∂2τy 12⎛⎝ ⎫⎭⎪⎪∂∂2τy 0w 2⎛⎝ ⎫⎭⎪⎪∂∂2τy 0w 12> dsolve({ode[0],eta[0](0)=0,D(eta[0])(0)=C[1]},eta[0](t));= y 0C 1()sin τ> eta[0]:=unapply(rhs(%),t);:= η0 → τC 1()sin τ> ode[1];= - + - + ⎛⎝ ⎫⎭⎪⎪∂∂2τ2y 1C 1()cos τy 12w 1C 1()sin τC 13()cos τ()sin τ20 > map(combine,ode[1],'trig');= - + - + - ⎛⎝ ⎫⎭⎪⎪∂∂2τ2y 1C 1()cos τy 12w 1C 1()sin τ14C 13()cos τ14C 13()cos 3τ0 > ode[1]:=map(collect,%,[sin(t),cos(t)]);:= ode 1 = - + + + - 2w 1C 1()sin τ⎛⎝ ⎫⎭⎪⎪- + C 114C 13()cos τ⎛⎝ ⎫⎭⎪⎪∂∂2τ2y 1y 114C 13()cos 3τ0 > dsolve({ode[1],eta[1](0)=0,D(eta[1])(0)=C[2]},eta[1](t),method=laplace);= y 1 + - ⎛⎝ ⎫⎭⎪⎪- + + 18C 1() - C 12() + C 12τw 1C 1C 2()sin τ⎛⎝ ⎫⎭⎪⎪ - 132C 13C 1τw 1()cos τ132C 13()cos 3τ > map(collect,%,[sin(t),cos(t),t]);= y 1 + - ⎛⎝ ⎫⎭⎪⎪- + + 1C 1() - C 12() + C 12τw 1C 1C 2()sin τ⎛⎝ ⎫⎭⎪⎪ - 1C 13C 1τw 1()cos τ1C 13()cos 3τ> solve({coeff(lhs(ode[1]),sin(t))=0,coeff(lhs(ode[1]),cos(t))=0});,,{}, = C 10 = w 1w 1{}, = C 12 = w 10{}, = C 1-2 = w 10> w[1]:=0:C[1]:=-2: > ode[1];= + + ⎛⎝ ⎫⎭⎪⎪∂∂2τ2y 1y 12()cos 3τ0 > dsolve({ode[1],eta[1](0)=0,D(eta[1])(0)=C[2]},eta[1](t),method=laplace);= y 1 - + 1()cos 3τ1()cos τC 2()sin τ> eta[1]:=unapply(rhs(%),tau);:= η1 → τ - + 1()cos 3τ1()cos τC 2()sin τ> map(combine,ode[2],'trig'):> ode[2]:=map(collect,%,[sin(t),sin(3*t),cos(t),cos(3*t)]);:= ode 2 = + + - + - + ⎛⎝ ⎫⎭⎪⎪ + 14w 2()sin τ5()sin 5τ⎛⎝ ⎫⎭⎪⎪∂∂2τ2y 23()sin 3τ2C 2()cos τ3C 2()cos 3τy 20> solve({coeff(lhs(ode[2]),sin(t))=0,coeff(lhs(ode[2]),cos(t))=0});{}, = C 20 = w 2-1> assign(%):> dsolve({ode[2],eta[2](0)=0,D(eta[2])(0)=C[3]},eta[2](t),method=laplace): > eta[2]:=unapply(rhs(%),t);:= η2 → τ-+ + 3()sin 3τ⎛⎝ ⎫⎭⎪⎪ + 29C 3()sin τ5()sin 5τ > for i from 0 to e_order domap(combine,ode[i],'trig'):ode[i]:=map(collect,%,[seq(sin((2*j+1)*t),j=0..i),seq(cos((2*j+1)*t),j=0..i)]): solve({coeff(lhs(ode[i]),sin(t))=0,coeff(lhs(ode[i]),cos(t))=0}): assign(%):dsolve({ode[i],eta[i](0)=0,D(eta[i])(0)=C[i+1]},eta[i](t),method=laplace): collect(%,[seq(sin((2*j+1)*t),j=0..i),seq(cos((2*j+1)*t),j=0..i)]): eta[i]:=unapply(rhs(%),t); od:> omega;- + + 1116ε2173072ε435884736ε6> y(t):> y:=unapply(simplify(y(t),{e^e_order=0}),t): > e:=1:y(t);1037927()sinτ1519()sinτ()cosτ681()sinτ()cosτ461()sinτ()cosτ813()sinτ()cosτ25257957()cosτ35533()cosτ11912187()cosτ7799991()cosτ- + - - + + + + -1212373 259200()cosτ511494128800()cosτ9- -> plot(y(t),t=0..15);在该问题的求解过程中, 前半部分我们按照交互式命令方式输入, 也就是把数学逻辑推理的过程“翻译”成Maple函数, 而在后半部分, 则采用程序设计方式书写了数学推导过程, 这是应用Maple解决实际问题的两种方式. 前一种方法只需了解Maple函数即可应用, 而后一种程序设计方式则需掌握Maple程序设计语言. 但是, 不论是那一种方式, 数学基础总是最重要的.3 偏微分方程求解初步Maple中偏微分方程求解器为pdsolve, 该函数及其它偏微分方程求解工具存于软件包PDEtools中. 函数pdsolve能够很快的辨认出偏微分方程是否为可以用标准方法求解的类型, 如果无法判别, 则pdsolve采用一种启发式的算法尝试偏微分方程按特征结构分离出来. pdsolve的策略就是寻找给定偏微分方程的通解, 如不能成功则寻找可以完全分离的变量, 因此, 该函数返回的结果可能为:(i) 通解;(ii) 近似的通解(即包含任意函数但又不足以得到通解的解);(iii) 变量分离的非耦合的常微分方程.如不能完全分离变量, 则函数再次调用自身, 如仍失败则返回未完全分离的变量并给出一个警告信息. 其命令格式为:pdsolve(PDE, f);其中, PDE为偏微分方程, f为被求解函数.下面通过几个例子说明pdsolve的用法:> PDE1:=diff(u(x,t),[t$2])-1/v^2*diff(u(x,t),[x$2]);:= PDE1 - ⎛⎝ ⎫⎭⎪⎪∂∂2t 2()u ,x t ∂∂2x 2()u ,x t v 2 > pdsolve(PDE1,u(x,t));= ()u ,x t + ()_F1- - t v x ()_F2 - t v x> restart:> PDE2:=a*x*diff(u(x,t),x)+b*t*diff(u(x,t),t)=0;:= PDE2 = + a x ⎛⎝ ⎫⎭⎪⎪∂∂x ()u ,x t b t ⎛⎝ ⎫⎭⎪⎪∂∂t ()u ,x t 0 > pdsolve(PDE2,u(x,t));= ()u ,x t ⎛⎝ ⎫⎭⎪⎪⎪⎪_F1t x ⎛⎝ ⎫⎭⎪⎪b a> PDE3:=diff(u(x,t),x$2)-t^2*diff(u(x,t),t$2)-t*diff(u(x,t),t)=0;:= PDE3 = - - ⎛⎝ ⎫⎭⎪⎪∂∂2x 2()u ,x t t 2⎛⎝ ⎫⎭⎪⎪∂∂2t 2()u ,x t t ⎛⎝ ⎫⎭⎪⎪∂∂t ()u ,x t 0 > pdsolve(PDE3,u(x,t));= ()u ,x t + ()_F1t e x ()_F2t e()-x> restart:> heatPDE:=diff(u(x,t),t)=diff(u(x,t),[x$2]);:= heatPDE = ∂()u ,x t ∂∂2x2()u ,x t> pdsolve(heatPDE,u(x,t));() = ()u ,x t ()_F1x ()_F2t &where ⎡⎣⎢⎢⎤⎦⎥⎥{}, = ∂∂2x 2()_F1x _c 1()_F1x = ∂∂t ()_F2t _c 1()_F2t > dsolve(diff(F2(t),t)=c[1]*F2(t),F2(t));= ()F2t _C1e()c 1t> dsolve(diff(F1(x),[x$2])=c[1]*F1(x));= ()F1x + _C1e()c 1x _C2e()-c 1x> result:=rhs(%)*rhs(%%);:= result () + _C1e ()c 1x _C2e()-c 1x _C1e()c 1t> subs(u(x,t)=result,heatPDE):expand(%);+_C12c 1e()c 1t e()c 1x _C1c 1e()c 1t _C2e()c 1x =+_C12c 1e()c 1t e ()c 1x _C1c 1e()c 1t _C2e()c 1x> lhs(%)-rhs(%);。

相关文档
最新文档