Maple在非线性方程求解中的应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
输入 plot( f1( x) , x=100..inf inity) , 显示如图 4.
如图 4 所示, 当 x>100 时, ( 1) 式没有其他解了. 那么 x1=- 0.166 248 692 5, x2=71.839 080 18 是否一定是
( 1) 式的解呢? 这就需要进行验根. 方法很简单, 只要将上述数值代入函数f1( x) , 如果 f1( xi) - 0 <ε, ( i=1, 2)
达式, 从中很难得到有益的结果, 而函数fsolve( ) 则可以找出这个非线性方程式的浮点数解( 以下简称解) .
输入fsolve( x- ( x/4) ^4- cos( x^5) =0, {x}) , 显示{x=0.8744267217}.
但是 fsolve( ) 函数每次只能找到方程的一个解, 那么怎样尽可能找到方程的全部解呢? 下面通过具体
而在数学上, 5 次方以上的多项式未必会有根式解, 另外一些非线性方程也不一定有有理解, 这些数学
上的限制, 使得 solve()函数无法找到方程的解, 例如要求方程
! " x-
x 4
4- cos( x5) =0
的解, 在 Maple 中输入以下命令solve( x- ( x/4) ^4- cos( x^5) =0, {x}) 时, Maple 则显示出一个非常复杂的解析表
6
2007 年 11 月
( 1)
4
2
-1
- 0.5 0
0.5
1
x
-2
-4
-6
图 1 函数 f1( x) 在区间[- 1, 1]上的图像
图 2 函数 f1( x) 在区间[- ∞, - 0.17]上的图像
如图 1 显示, ( 1) 式确实有解为x=- 0.166 248 692 5. 但是( 1) 式只有这一个解吗? 试着将搜寻的范围扩 大.
的例子, 寻找一种求非线性方程解的方法. 首先介绍一下将要用到的 Maple 中的函数.
1 本文用到的 Maple 中的函数
solve( eqn, var) , 求解 eqn 中的未知数 var; fsolve( eqn, var) , 求解 eqn 中的未知数 var, 并返回一个浮点数解; fsolve( eqn, var=x0) , 从 var=x0 来搜寻 eqn 的解, 并返回一个浮点数解; plot( f( x) , x=xmin…xmax) , 从 xmin 到 xmax 绘出 f( x) 的函数图. 另外 Maple 用 inf inity 表示无穷大. 关于这几个函数更多的用法见文献[5]. 接下来, 举几个例子.
图 7 函数 f2( x) 在区间[- ∞, 0.3]上的图像
图 8 函数 f2( x) 在区间[0.2, 2]上的图像
图 9 函数 f2( x) 在区间[2, 4]上的图像
8
石家庄学院学报
2007 年 11 月
输入 fsolve( f2( x) =0, x=1.4) , 显示 1.412520994; 输入 plot( f2( x) , x=2..4) , 显示如图 9.
输入 fsolve( f3( x) =0, {x=- 1, y=0.7}) , 显示{y=0.7071067812, x=1.224744871}.
这样, 就找到了( 3) 式的全部解, 仿照例 1 与例 2, 也可以进行验根, 这里从略.
3 结论
通过上面的 3 个例子, 可以找到解非线性方程( 或非线性方程组) 的一般方法, 步骤如下:
确实为( 1) 式的解.
那么, 为什么不一次绘出函数 f1( x) 的全部图形来寻找方
程的解呢? 不妨做个试验.
输入 plot( f1( x) , x=- inf inity..inf inity) , 显示如图 5, 这时
Maple 绘制的图形出现了失真现象.
例 2 求方程 sinh2( x) +cosh( x2) =6x- 1 的解. 解 首先, 将方程改写为
绘图功能和计算能力, 通过具体的例子, 寻找求解非线性方程的一般方法.
对于次数低于 4 的多项式方程, Maple 提供的 solve( ) 函数一般能解出其精确解或解析解. 例如要求方
程 x3+2x2- 5x- 6=0 的解, 就可以在 Maple 中输入以下命令:
输入 solve( x^3+2*x^2- 5*x- 6=0, {x}) , 显示{x=- 1}{x=2}{x=- 3}.
图 5 Maple 绘制的( - ∞, +∞) 上函数 f1( x) 上的图像
sinh2( x) +cosh( x2) - 6x+1=0.
( 2)
设函数f2( x) =sinh2( x) +cosh( x2) - 6x+1, 输入f2∶=sinh( x) ^2+cosh( x^2) - 6*x+1∶, 接着求( 2) 式的一个解. 输入
本文仅从解非线性方程方面, 来探究 Maple 在数学研究和教学中的应用. 求解一般的非线性方程( 或非
线性方程组) , 传统的方法是利用函数的一阶、二阶导数( 或偏导数) 的判断单调性、凹凸性的几何方法, 以及
利用牛顿迭代法为代表的数值方法[4], 它们分别存在精确度差和计算繁琐的缺点. 本文利用 Maple 的强大的
则其即为( 1) 式的解, 这里 ε是一个足够小的正整数. 为此:
输入 abs( f1( - 0.1662486925) ) , abs( f1( 71.83908018) ) , 显 示 1, 10-10, 2.5, 10-9.
上面的数据表明, x1=- 0.166 248 692 5, x2=71.839 080 18
6) 将解代入函数 f( x) 进行验根.
( 下转第 36 页)
36
石家庄学院学报
2007 年 11 月
第9卷 第6期 2007 年 11 月
石家庄学院学报 Journal of Shijiazhuang University
Vol.9, No.6 Nov.2007
Maple在非线性方程求解中的应用
岳崇山 1, 景海斌 2, 张 贺 1
( 1.河北北方学院 数学系, 河北 张家口 075000; 2.河北建筑工程学院 数理系, 河北 张家口 075000)
输入 fsolve( f3( x) =0, {x=- 1, y=0.7}) , 显示{y=0.7071067812, x=- 1.224744871};
输入 fsolve( f3( x) =0, {x=- 1, y=- 0.7}) , 显示{y=- 0.7071067812, x=1.224744871};
fsolve( f2( x) =0, {x}) , 显示{x=0.3568224931}; 其次, 再在不同的范围寻找( 1) 式的解: 输入 plot( f2( x) , x=- 1..1) ,
显示如图 6.
图 6 函数 f2( x) 在区间[- 1, 1]上的图像
输入 plot( f2( x) , x=inf inity..0.3) , 显示如图 7; 输入 plot( f2( x) , x=0.2..2) , 显示如图 8;
设函数
Baidu Nhomakorabea
f1(
x)
=
x2 12
-
6x-
sin(
x+8)
,
输入
f1∶=x-
>x^2/12-
6*x-
sin(
x+8)
,
再求(
1)
式的一个解.
输入fsolve( f1( x) =0, {x}) , 显示{x=- 0.1662486925}, 接着在不同的范围寻找( 1) 式的解. 先在区间[- 1, 1]的范围内绘出函数f1( x) 的图形: 输入 plot( f1( x) , x=- 1..1) , 显示如图 1.
输入 plot( f1( x) , x=- inf inity…- 0.17) , 显示如图 2. 如图 2 显示, ( 1) 式在 x<- 0.17 时是无解的. 同样, 观察 0.5≤x≤100 时, 函数 f1( x) 的图形. 输入 plot( f1( x) , x=0.5..100) , 显示如图 3.
摘 要: 介绍了数学软件 Maple 因式分解和解方程软件包 Factorization and Solving Equations 的部分函数, 并利用 Maple 图形软件包 Graphics 的 plot 函数, 通过具体的数学实验, 给出了求解一 般非线性代数方程的比较快速的方法.
关键词: 非线性方程; Maple; 浮点数解 中图分类号: O151.1 文献标识码: A 文章编号: 1673- 1972( 2007) 06- 0005- 04
1) 将方程化成 f( x) =0( 或 f( x, y) =0) 的形式, 再将方程左边设为一个函数 f( x) ;
2) 运行指令 fsolve( f( x) =0, {x}) , 求出方程的一个解 x=x0;
3) 用函数 plot( ) 在区间[x0- ε, x0+ε]内绘出函数 f( x) 的图形, 观察函数图形与 x 轴的交点的横坐标, 设为
输入 plots[implicit]( f3( x) , x=- 2..2, y=- 2..2, scaling=CONSTRAINED) 显示如图 10.
观察图 10, 有:
图 10 方程组函数f3( x) 在[- 2, 2]×[- 2, 2]上的图像
输入 fsolve( f3( x) =0, {x=- 1, y=- 0.7}) , 显示{x=- 1.224744871, y=- 0.7071067812};
"1- x2+y2=0
2- x2- y2=0
( 3)
的解.
解 设变量 f3( x, y) ={1- x2+y2=0, 2- x2- y2=0}.
输入 f3∶={1- x^2+y^2=0, 2- x^2- y^2=0}∶, 在( x, y) ∈[- 2, 2]×[- 2, 2]的范围内寻求( 3) 式的解.
Maple 是加拿大滑铁卢大学( University of Waterloo) 和 Waterloo Maple Software 公司注册的一套为微积
分、线性代数、微分方程、概率统计等数学分支研制开发的数学分析型的数学软件, 它的主要功能包括数学
图形的描绘、数值计算和符号处理等方面. 有不少文献对其进行了不同方面的论述, 如文献[1], [2], [3].
收稿日期: 2007- 05- 27 作者简介: 岳崇山( 1979- ) , 男, 河北崇礼人, 助教, 硕士研究生, 主要从事微分几何、拓扑以及数学软件研究.
6
石家庄学院学报
2 例子
例 1 求方程 x2 - 6x=sin( x+8) 的解. 12
解 将方程改写为
x2 - 6x- sin( x+8) =0. 12
如果继续扩大搜寻范围, Maple 将提示数据溢出, 如:
输入 plot( f2( x) , x=2..130) , 显示 Error, Floating point overflow. Please shorten axes. 这表明当 x→∞ 时,
函数 f2( x) 增长得非常快, 与 x 轴没有交点. 下面进行验根: 输入 abs( f2( 0.3568224931) ) , abs( f2( 1.412520994) ) 显示 0, 1, 10-10. 上面的数据表明, x1=0.356 822 493 1, x2=1.412 520 994 确实为( 2) 式的解. 例 3 求方程组
图 3 函数 f1( x) 在区间[0.5, 100]上的图像
图 4 函数 f1( x) 在区间[100, +∞)上的图像
第6期
岳崇山, 景海斌, 张 贺: Maple 在非线性方程求解中的应用
7
如图 3 所示, ( 1) 式在 x=80 附近还有一个解.
输入 fsolve( f1( x) =0, x=80) , 显示 71.83908018. 那么, 当 x>100 时, ( 1) 式还有其他解吗?
x1, x2, x3…;
4) 运行指令 fsolve( {f( x) =0}, x=xi) , 求出方程 f( x) =0 的精确解 x=xi, i=1, 2, 3…;
5) 利用 3) 和 4) 的结果改变 x0 及 ε的值, 重复步骤 3) 和步骤 4) , 直到找到方程 f( x) =0 的全部的解;