产品
产品概览
Mathematica
Mathematica 学生版
Mathematica Home Edition
Wolfram
CDF Player
(免费下载)
可计算文档格式(CDF)
web
Mathematica
grid
Mathematica
Wolfram
Workbench
Wolfram
SystemModeler
Wolfram
Finance Platform
Mathematica
附加程序包
Wolfram|Alpha 产品
解决方案
解决方案概览
工程
航空航天与国防
化学工程
控制系统
电气工程
图像处理
工业工程
材料科学
机械工程
运筹学
光学
石油工程
生物技术与医药
生物信息学
医学影像
金融、统计、商业分析
精算科学
数据分析与挖掘
计量经济学
经济学
金融工程与数学
金融风险管理
统计
软件工程、内容传递
创作与出版
界面开发
软件工程
网页开发
科学
天文学
生物科学
化学
环境科学
地球科学
社会与行为科学
设计、艺术以及娱乐
游戏设计、特殊效果及衍生艺术
教育
STEM 教育倡议
高等教育
高职高专院校
中小学教育
学生
科技
可计算文档格式(CDF)
高性能并行计算(HPC)
参见:技术指南
购买
网上商店
其它购买方式
批量许可及站点许可证
联络销售部
软件
服务
升级
培训
书籍
Merchandise
技术支持
技术支持概览
Mathematica
参考资料
知识库
学习中心
技术服务
社区与论坛
培训
查看站点是否有许可证授权
Wolfram 用户门户
公司概况
关于 Wolfram Research
新闻与活动
Wolfram 博客
合作伙伴
工作机会
Mathematica
的历史
Stephen Wolfram 主页
联系我们
公司网站
全部站点
Wolfram|Alpha
演示项目
MathWorld
Integrator
Wolfram Functions Site
Mathematica Journal
Wolfram Media
Wolfram
Tones
Wolfram Science
Stephen Wolfram
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE
DOCUMENTATION CENTER
FOR THE LATEST INFORMATION.
DOCUMENTATION CENTER SEARCH
New to
Mathematica
?
Find your learning path
»
Mathematica
>
数学和算法
>
方程求解
>
FindRoot
>
MATHEMATICA 内置符号
数值运算
解方程
方程的数值解
求数值根
约束最优化
非约束优化
符号计算
教程 »
|
NSolve
Solve
FindMinimum
FindInstance
RootIntervals
IsolatingInterval
参见 »
|
方程求解
逆函数
多项式方程
更多关于 »
FindRoot
FindRoot
搜索
f
的一个数值根,初始值是
.
FindRoot
搜索方程
的一个数值解.
FindRoot
搜索所有
的一个同步数值解.
FindRoot
搜索同步方程
的一个数值解.
更多信息
如果变量的初始值是以列表形式给出,变量值采用相同维数的列表.
FindRoot
返回
x
,
y
,... ,的替换列表,这和
Solve
获得的形式相同.
FindRoot
首先局部化所有变量值,然后计算符号变量
f
,然后重复进行计算数值结果.
FindRoot
具有属性
HoldAll
,并实际上用
Block
局部化变量.
FindRoot
用
和
作为
x
的前 2 个值搜索
f
的解,避免使用导数.
FindRoot
搜索一个解,如果
x
超出了
到
的范围,停止搜索.
如果用户仅指定一个
x
的初值,
FindRoot
用牛顿方法搜索一个解. 如果用户指定两个初值,
FindRoot
用一个正切变量.
如果所有方程和初值是实数的,则
FindRoot
仅搜索实数根. 如果方程和初值有部分复数,则搜索复数根.
您可以通过对初值增加
I
,使
FindRoot
搜索复数根.
可以给出下列选项:
AccuracyGoal
Automatic
搜索的准确度
EvaluationMonitor
None
当方程计算时,计算的表达式
Jacobian
Automatic
Jacobian 组
MaxIterations
100
最大迭代数
PrecisionGoal
Automatic
搜索精度
StepMonitor
None
每个步骤计算的表达式
WorkingPrecision
MachinePrecision
内部计算的精度
AccuracyGoal
和
PrecisionGoal
的默认设置是
WorkingPrecision
.
AccuracyGoal
的设置指定搜索根的坐标值和根的函数值的数字位数.
PrecisionGoal
的设置指定在搜索根的坐标值时数字精度.
FindRoot
继续直到由
AccuracyGoal
或
PrecisionGoal
指定的目标中的任何一个被达到.
如果
FindRoot
在
MaxIterations
步骤内,没有搜索到您指定准确度的解,它将返回它所找到的一个解近似值. 您可以再次应用
FindRoot
,以这个近似值为初始值.
范例
关闭所有单元
例
(3)
求接近
的方程
的一个解:
求接近
的方程
的一个解:
求一个非线性方程组:
求接近
的方程
的一个解:
In[1]:=
Out[1]=
求接近
的方程
的一个解:
In[1]:=
Out[1]=
求一个非线性方程组:
In[1]:=
Out[1]=
范围
(4)
求两个非线性方程组的解:
求 3 元的 3 个函数的根:
您可以给出一个复数初值来搜索复数根:
对实数输入,当函数较复杂,则一个实数初值会给出一个复数结果:
推广和延伸
(1)
如果一个变量在初值中使用,则该变量被认为是向量值:
选项
(8)
改变误差估计的公差:
降低停止的误差估计:
在停止的主要标准下,估计到根的相对距离:
可以用来帮助高阶根的加速收敛:
EvaluationMonitor
可用来跟踪所用的计算函数:
对一个"黑盒子" 函数,指定 Jacobian:
没有指定的 Jacobian,额外的计算用来计算有限的差分:
如果您仅指定稀疏形式,指定稀疏模式的模板来保存计算:
限制或增加采用的步骤数:
缺省迭代数是 100:
应为软化函数在
处的所有导数都为 0,最终算法停止:
用不同的方法,求
的根:
缺省(牛顿)方法:
Brent 的包围根方法需要两个初始条件来包围根:
Secant 方法,从两个初始条件开始:
当迭代步骤发生的监控:
显示
等高图的步骤:
显示步骤 (红色) 和计算 (绿色). 一个步骤可能需要几次计算:
用 100 位精度的算法,求一个根:
初始精度和相应的工作精度 100 求根:
应用
(3)
对于一个同构
,
的逆是
的根:
指数函数的一个近似逆:
这非常接近内置
Log
函数:
一个"黑盒子" 函数给出振动的周期:
绘制它的逆:
用打靶法求
,
的边界值问题:
用根任意一边的点,给出包围初值:
绘制解:
用
n
个排列点,求
,
的边界值问题:
视为一阶系统
:
用梯形规则,排列方程:
用 0 作为一个初值:
对
特定值的求解:
属性和关系
(2)
对一个多项式方程组,
NSolve
求所有解,
FindRoot
求一个解:
用迭代方法,
FindRoot
将求单个解:
用一个直接方法,
NSolve
将求所有解:
对关于参数或具体解的方程,用
Solve
,
Reduce
或
FindInstance
:
Solve
将返回某些解:
Reduce
列举所有解:
FindInstance
求特定实例:
可能存在的问题
(2)
如果一个函数是复数,变量允许是复数值:
如果一个函数是实数值,则变量同样是实数:
符号计算函数可能很耗时:
限制函数定义可防止符号计算:
参见
NSolve
Solve
FindMinimum
FindInstance
RootIntervals
IsolatingInterval
教程
数值运算
解方程
方程的数值解
求数值根
约束最优化
非约束优化
符号计算
更多关于
方程求解
逆函数
多项式方程
相关链接
关于内部实现的一些注释: 数值及相关函数
NKS|Online
(
A New Kind of Science
)
版本 1 的新功能 | 版本 5 修改功能