主要内容

fsolve

解非线性方程组

描述

非线性系统解算器

规定解决问题

F(x)= 0

x,在那里F(x)是一个函数,它返回一个矢量值。

x是一个向量或矩阵;看到矩阵的参数

例子

x= fsolve (有趣的,x0)起价x0并试图解决方程有趣的(x) =0,零的数组。

请注意

传递额外的参数解释如何通过额外的参数向量函数有趣的(x),如果必要的。看到求解参数化方程

例子

x= fsolve (有趣的,x0,选项)解决了方程的优化选项中指定选项。使用optimoptions设置这些选项。

例子

x= fsolve (问题)解决了问题描述的结构问题

例子

(x,fval)= fsolve (___),对于任何语法,返回目标函数的值有趣的在解决方案x

例子

(x,fval,exitflag,输出)= fsolve (___)此外,返回一个值exitflag描述的退出条件fsolve,一个结构输出的信息优化过程。

(x,fval,exitflag,输出,雅可比矩阵)= fsolve (___)返回的雅可比矩阵有趣的在解决方案x

例子

全部折叠

这个例子展示了如何解决两个非线性方程在两个变量。方程是

c数组$ $ \开始{}{}& # xA; {e ^ {- {e ^ {——({x_1} + {x_2}}}}} = {x_2} \离开({1 + x_1 ^ 2} \) \ \ & # xA; {x_1} \因为\离开({{x_2}} \右)+ {x_2} \罪\离开({{x_1}} \右)= \压裂{1}{2}# xA;公司\{数组}$ $

将方程转换为表单$ F (x) = \ bf {0} $

c数组$ $ \开始{}{}& # xA; {e ^ {- {e ^ {——({x_1} + {x_2}}}}} - {x_2} \离开({1 + x_1 ^ 2} \右)= 0 \ \ & # xA; {x_1} \因为\离开({{x_2}} \右)+ {x_2} \罪\离开({{x_1}} \右)& # xA; - \压裂{1}{2}= 0。\{数组}$ $

写一个函数,这个函数计算这两个方程的左边。

函数F = root2d F (x) (1) = exp (exp (- x (x (1) + (2)))) - x (2) * (1 + x (1) ^ 2);F (2) = x (1) * cos (x (2)) + x (2) * sin (x (1)) - 0.5;

将该代码保存为一个文件命名root2d.m在你的MATLAB®路径。

解方程组的开始点(0,0)

有趣= @root2d;x0 = (0,0);x0, x = fsolve(有趣)
方程解决。fsolve完成因为函数值接近于零的向量的值函数的宽容,问题出现普通的梯度。x = 0.3532 - 0.6061

检查解决方案过程非线性系统。

选项设置为不显示和绘制函数显示一阶最优性,而应该作为算法迭代收敛于0。

选择= optimoptions (“fsolve”,“显示”,“没有”,“PlotFcn”,@optimplotfirstorderopt);

方程的非线性系统

c数组$ $ \开始{}{}& # xA; {e ^ {- {e ^ {——({x_1} + {x_2}}}}} = {x_2} \离开({1 + x_1 ^ 2} \) \ \ & # xA; {x_1} \因为\离开({{x_2}} \右)+ {x_2} \罪\离开({{x_1}} \右)= \压裂{1}{2}# xA;公司\{数组}$ $

将方程转换为表单$ F (x) = \ bf {0} $

c数组$ $ \开始{}{}& # xA; {e ^ {- {e ^ {——({x_1} + {x_2}}}}} - {x_2} \离开({1 + x_1 ^ 2} \右)= 0 \ \ & # xA; {x_1} \因为\离开({{x_2}} \右)+ {x_2} \罪\离开({{x_1}} \右)& # xA; - \压裂{1}{2}= 0。\{数组}$ $

写一个函数,这个函数计算这两个方程的左边。

函数F = root2d F (x) (1) = exp (exp (- x (x (1) + (2)))) - x (2) * (1 + x (1) ^ 2);F (2) = x (1) * cos (x (2)) + x (2) * sin (x (1)) - 0.5;

将该代码保存为一个文件命名root2d.m在你的MATLAB®路径。

解决了非线性系统从这一点(0,0)并观察解决方案的过程。

有趣= @root2d;x0 = (0,0);x = fsolve(有趣,x0,选项)
x = 0.3532 - 0.6061

可以参数化方程所描述的主题传递额外的参数。例如,paramfun辅助函数在这个例子创建以下参数化方程系统 c :

2 x 1 + x 2 = 经验值 ( c x 1 ) - - - - - - x 1 + 2 x 2 = 经验值 ( c x 2 )

解决系统为特定值,在这种情况下 c = - - - - - - 1 ,设置 c 在工作区中创建一个匿名函数xparamfun

c = 1;有趣= @ (x) paramfun (x, c);

解决系统从点0 x0 = [1]

0 x0 = [1];x0, x = fsolve(有趣)
方程解决。fsolve完成因为函数值接近于零的向量的值函数的宽容,问题出现普通的梯度。
x =1×20.1976 - 0.4255

要求一个不同的值 c ,输入 c 在工作区中创建有趣的函数,所以它有新的 c 价值。

c = 2;有趣= @ (x) paramfun (x, c);现在有新的c值%有趣x0, x = fsolve(有趣)
方程解决。fsolve完成因为函数值接近于零的向量的值函数的宽容,问题出现普通的梯度。
x =1×20.1788 - 0.3418

Helper函数

这段代码创建了paramfunhelper函数。

函数F = paramfun (x, c) F = [2 * x (1) + (2)——exp (c * x (1)) * x - x (1) + 2 (2) - exp (c * x (2)));结束

创建一个结构问题fsolve和解决问题。

在解决相同的问题解决方案与默认的选项使用问题结构,但制定问题。

问题没有设置选项显示和绘制函数显示一阶最优性,而应该作为算法迭代收敛于0。

问题。选项=optimoptions(“fsolve”,“显示”,“没有”,“PlotFcn”,@optimplotfirstorderopt);

方程的非线性系统

c数组$ $ \开始{}{}& # xA; {e ^ {- {e ^ {——({x_1} + {x_2}}}}} = {x_2} \离开({1 + x_1 ^ 2} \) \ \ & # xA; {x_1} \因为\离开({{x_2}} \右)+ {x_2} \罪\离开({{x_1}} \右)= \压裂{1}{2}# xA;公司\{数组}$ $

将方程转换为表单$ F (x) = \ bf {0} $

c数组$ $ \开始{}{}& # xA; {e ^ {- {e ^ {——({x_1} + {x_2}}}}} - {x_2} \离开({1 + x_1 ^ 2} \右)= 0 \ \ & # xA; {x_1} \因为\离开({{x_2}} \右)+ {x_2} \罪\离开({{x_1}} \右)& # xA; - \压裂{1}{2}= 0。\{数组}$ $

写一个函数,这个函数计算这两个方程的左边。

函数F = root2d F (x) (1) = exp (exp (- x (x (1) + (2)))) - x (2) * (1 + x (1) ^ 2);F (2) = x (1) * cos (x (2)) + x (2) * sin (x (1)) - 0.5;

将该代码保存为一个文件命名root2d.m在你的MATLAB®路径。

创建其余的字段结构的问题。

问题。目标= @root2d;问题。x0=(0,0);问题。解算器=“fsolve”;

解决这个问题。

x = fsolve(问题)
x = 0.3532 - 0.6061

这个示例返回迭代显示解决方案的过程系统的两个方程两个未知数

2 x 1 - - - - - - x 2 = e - - - - - - x 1 - - - - - - x 1 + 2 x 2 = e - - - - - - x 2

重写方程形式 F ( x ) = 0 :

2 x 1 - - - - - - x 2 - - - - - - e - - - - - - x 1 = 0 - - - - - - x 1 + 2 x 2 - - - - - - e - - - - - - x 2 = 0

开始你的搜索解决方案x0 = 5 [5]

首先,写一个函数,这个函数计算F,的值方程x

F = @ (x) [2 * x (1) - (2) - exp (- x (1));x - x (1) + 2 * (2) - exp (- x (2)));

创建初始点x0

x0 = (5; 5);

返回迭代显示设置选项。

选择= optimoptions (“fsolve”,“显示”,“通路”);

解的方程。

[x, fval] = fsolve (F, x0,选项)
一阶规范信赖域迭代Func-count f (x)最优步半径0 3 47071.2 - 2.29 e + 04年1 1 6 12003.4 - 1 5.75 e + 03年1 2 9 3147.02 1.47 e + 03 1 3 12 239.527 854.452 1 388 1 4 15 1 107 1 5 18 67.0412 30.8 1 6 21 16.7042 9.05 1 7 24 2.42788 2.26 1 8 27 7.03149 0.032658 0.759511 0.206 2.5 9 30 e-06 10 33 e-13 3.29525 0.00169132 6.36 0.111927 0.00294 2.5 2.5 e-07方程解决。fsolve完成因为函数值接近于零的向量的值函数的宽容,问题出现普通的梯度。
x =2×10.5671 - 0.5671
fval =2×1106×-0.4059 - -0.4059

迭代显示显示f (x),的平方函数的规范F (x)。这个值降低至接近零的水平的迭代进行。一阶最优性措施同样降低至接近零的水平随着迭代的进行。这些条目显示迭代的收敛到一个解决方案。对于其他条目的含义,明白了迭代显示

fval给出了函数值输出F (x),这应该是零在一个解决方案中FunctionTolerance公差)。

找到一个矩阵 X 满足

X * X * X = ( 1 2 3 4 ] ,

开始的时候x0 = (1, 1, 1, 1)。创建一个匿名函数,计算矩阵方程,创造点x0

有趣= @ (x) x * * x - [1, 2, 3, 4);x0 = 1 (2);

选项设置为不显示。

选择= optimoptions (“fsolve”,“显示”,“关闭”);

检查fsolve质量和过程输出的解决方案。

[x, fval exitflag、输出]= fsolve(有趣,x0,选项)
x =2×2-0.1291 0.8602 1.2903 1.1612
fval =2×2108×-0.1895 0.0868 0.1302 -0.0595
exitflag = 1
输出=结构体字段:迭代:10 funcCount: 47个算法:“trust-region-dogleg”firstorderopt: 2.7719 e-09消息:“方程解决....”

出口标志值1表示解决方案是可靠的。来验证这个手动,计算剩余(fval平方和)几乎是零。

sum (sum (fval。* fval))
ans = 6.3961 e-18

这个小剩余确认x是一个解决方案。

你可以看到的输出结构进行了多少次迭代和功能评价fsolve找到了解决方案。

输入参数

全部折叠

非线性方程组来解决,指定为一个函数处理或函数名。有趣的是一个函数,它接受一个向量x并返回一个向量F,非线性方程计算x。方程来解决F= 0的所有组件F。这个函数有趣的可以指定一个函数处理文件

x = fsolve (x0 @myfun)

在哪里myfunMATLAB是一种®等功能

函数F = myfun F (x) =在x %计算函数值

有趣的也可以是一个函数处理为一个匿名函数。

x = fsolve (@ (x) sin (x) * x), x0);

fsolve通过x你的目标函数的形状x0论点。例如,如果x0是5-by-3数组,那么fsolve通过x有趣的作为一个5-by-3数组。

如果还可以计算雅可比矩阵“SpecifyObjectiveGradient”选择是真正的设定的,

选择= optimoptions (“fsolve”,“SpecifyObjectiveGradient”,真正的)

这个函数有趣的必须返回,在第二个输出参数,雅可比矩阵值J一个矩阵,x

如果有趣的返回一个向量(矩阵)组件和x长度n,在那里n的长度是x0,雅可比矩阵J是一个——- - - - - -n矩阵J (i, J)的偏导数是吗F(我)关于x (j)。(雅可比矩阵J的梯度的转置F。)

例子:有趣= @ (x) x * * x - [1, 2, 3, 4)

数据类型:字符|function_handle|字符串

初始点,指定为一个真正的向量或真正的数组。fsolve使用元素的数量和大小x0确定变量的数量和大小有趣的接受。

例子:x0 = (1、2、3、4)

数据类型:

优化选项,指定的输出optimoptions或结构等optimset的回报。

一些选项适用于所有算法,以及其他相关的特定算法。看到优化选择参考的详细信息。

有些选项是缺席的optimoptions显示。这些选项出现在以下表中斜体。有关详细信息,请参见视图选项

所有的算法
算法

之间做出选择“trust-region-dogleg”(默认),“信赖域”,“levenberg-marquardt”

算法选项指定偏爱使用何种算法。只是偏好因为信赖域算法,非线性方程组不能欠定的;也就是说,方程的数量(元素的数量F返回的有趣的)必须至少多达的长度x。同样,trust-region-dogleg算法,方程的数目必须相同的长度xfsolve使用Levenberg-Marquardt算法时所选算法不可用。选择算法的更多信息,见选择算法

设置一些算法的选择使用optimset而不是optimoptions:

  • 算法——设置算法“trust-region-reflective”而不是“信赖域”

  • InitDamping——设置初始Levenberg-Marquardt参数λ通过设置算法一个单元阵列等{levenberg-marquardt, .005}

CheckGradients

比较用户提供衍生品(目标或约束的梯度)有限差分衍生品。的选择是真正的或默认

optimset,名字是DerivativeCheck和值“上”“关闭”。看到当前和遗留选项名称

诊断

显示诊断信息函数最小化或解决。的选择是“上”或默认“关闭”

DiffMaxChange

最大的有限差分的变量变化梯度(积极的标量)。默认值是

DiffMinChange

最低有限差分的变量变化梯度(积极的标量)。默认值是0

显示

显示(见水平迭代显示):

  • “关闭”“没有”显示没有输出。

  • “通路”在每个迭代中显示输出,给出了默认退出消息。

  • “iter-detailed”在每个迭代中显示输出,给出了技术退出消息。

  • “最后一次”(默认)显示最终的输出,并给出默认退出消息。

  • 最后详细的显示最终的输出,给出了技术退出消息。

FiniteDifferenceStepSize

标量或矢量步长因子有限的差异。当您设置FiniteDifferenceStepSize一个向量v向前,有限的差异δ

δ= v *信号′(x) *马克斯(abs (x)、TypicalX);

在哪里信号′(x) =标志(x)除了信号′(0)= 1。中央有限的差异是

δ= v *马克斯(abs (x)、TypicalX);

标量FiniteDifferenceStepSize扩大到一个向量。默认值是sqrt (eps)向前有限的差异,eps ^ (1/3)中央有限的差异。

optimset,名字是FinDiffRelStep。看到当前和遗留选项名称

FiniteDifferenceType

有限的差异,用于估算梯度,要么“前进”(默认),或“中央”(中心)。“中央”需要两倍的功能评估,但应该更准确。

算法时小心遵守限差分估计两种类型。例如,可能需要一个落后,而不是向前,避免在边界外的点评估。

optimset,名字是FinDiffType。看到当前和遗留选项名称

FunctionTolerance

终止公差函数值,一个积极的标量。默认值是1 e-6。看到公差和停止条件

optimset,名字是TolFun。看到当前和遗留选项名称

FunValCheck

检查目标函数值是否有效。“上”会显示一个错误,当目标函数返回一个值复杂的,,或。默认的,“关闭”,显示没有错误。

MaxFunctionEvaluations

最大允许函数值的运算次数,一个正整数。默认值是100 * numberOfVariables“trust-region-dogleg”“信赖域”算法,以及200 * numberOfVariables“levenberg-marquardt”算法。看到公差和停止条件迭代和函数计算

optimset,名字是MaxFunEvals。看到当前和遗留选项名称

MaxIterations

最大允许的迭代次数,一个正整数。默认值是400年。看到公差和停止条件迭代和函数计算

optimset,名字是麦克斯特。看到当前和遗留选项名称

OptimalityTolerance

终止宽容的一阶最优性(积极的标量)。默认值是1 e-6。看到一阶最优性测量

在内部,“levenberg-marquardt”算法使用了一个最优公差(停止准则)1的军医FunctionTolerance和不使用OptimalityTolerance

OutputFcn

指定一个或多个用户定义的函数,每个迭代的优化函数调用。通过一个函数处理或处理单元阵列的功能。默认是没有([])。看到输出函数和情节函数的语法

PlotFcn

情节在算法执行时进步的各种措施;从预定义的情节或编写自己的选择。通过一个内置的函数名,函数处理,或单元阵列的内置函数名或函数处理。自定义绘制函数,通过函数处理。默认是没有([]):

  • “optimplotx”当前点的阴谋。

  • “optimplotfunccount”情节数的函数。

  • “optimplotfval”情节的函数值。

  • “optimplotstepsize”情节的步长。

  • “optimplotfirstorderopt”情节一阶最优性措施。

自定义函数使用相同的语法作为输出函数。看到输出函数优化工具箱输出函数和情节函数的语法

optimset,名字是PlotFcns。看到当前和遗留选项名称

SpecifyObjectiveGradient

如果真正的,fsolve使用一个用户定义的雅可比矩阵(中定义有趣的雅可比矩阵),或者信息(当使用JacobianMultiplyFcn),为目标函数。如果(默认),fsolve使用有限的差异接近雅可比矩阵。

optimset,名字是雅可比矩阵和值“上”“关闭”。看到当前和遗留选项名称

StepTolerance

终止上公差x,一个积极的标量。默认值是1 e-6。看到公差和停止条件

optimset,名字是TolX。看到当前和遗留选项名称

TypicalX

典型的x值。元素的数量TypicalX等于元素的数量x0的起点。默认值是的(numberofvariables, 1)fsolve使用TypicalX为扩展有限差分梯度估计。

trust-region-dogleg算法使用TypicalX作为一个扩展矩阵的对角线上。

UseParallel

真正的,fsolve估计并行梯度。禁用默认设置,。看到并行计算

信赖域算法
JacobianMultiplyFcn

雅可比矩阵乘法函数,指定为一个函数处理。大规模的结构性问题,这个函数计算雅可比矩阵产品J * Y,J ' * Y,或J”* (J * Y)没有真正形成J。的函数形式

W = jmfun(动力系统,Y,标志)

在哪里动力系统包含一个矩阵用于计算J * Y(或J ' * Y,或J”* (J * Y))。第一个参数动力系统必须作为第二个参数相同的目标函数返回的有趣的例如,

(F,动力系统)(x) =乐趣

Y是一个矩阵的行数一样有尺寸问题。国旗确定哪些产品来计算:

  • 如果标志= = 0,W = J ' * (J * Y)

  • 如果国旗> 0,W = J * Y

  • 如果国旗< 0,W = J ' * Y

在每种情况下,J不是显式地形成的。fsolve使用动力系统计算预调节器。看到传递额外的参数信息如何提供任何额外的参数的值jmfun的需求。

请注意

“SpecifyObjectiveGradient”必须设置为真正的fsolve通过动力系统有趣的jmfun

看到最小化茂密的结构化的麻绳,线性等式类似的例子。

optimset,名字是JacobMult。看到当前和遗留选项名称

JacobPattern

雅可比矩阵的稀疏模式有限差分。集JacobPattern (i, j) = 1有趣的(我)取决于x (j)。否则,设置JacobPattern (i, j) = 0。换句话说,JacobPattern (i, j) = 1当你可以∂有趣的(我)/∂x (j)≠0。

使用JacobPattern时不方便计算雅可比矩阵J有趣的,但你可以决定(验货)有趣的(我)取决于x (j)fsolve可以近似J当你给通过稀疏有限的差异JacobPattern

在最坏的情况下,如果结构未知的,不确定JacobPattern。就好像默认行为JacobPattern是一个稠密矩阵的。然后fsolve在每个迭代计算完整的有限差分近似。这可能是非常昂贵的大问题,所以它通常是更好的稀疏结构来确定。

MaxPCGIter

最大数量的首选条件共轭梯度迭代,一个积极的标量。默认值是马克斯(1楼(numberOfVariables / 2))。有关更多信息,请参见方程求解算法

PrecondBandWidth

上的带宽预调节器PCG,一个非负整数。默认的PrecondBandWidth,这意味着直接分解(柯列斯基)而非共轭梯度(CG)。直接分解比CG计算更贵,但质量更好一步生成解决方案。集PrecondBandWidth0对角预处理(0)上带宽。对于一些问题,一个中间带宽减少了PCG迭代的数量。

SubproblemAlgorithm

确定迭代步骤是如何计算的。默认的,“分解”,需要较慢但更精确的步骤“重心”。看到信赖域算法

TolPCG

在PCG迭代终止宽容,积极的标量。默认值是0.1

Levenberg-Marquardt算法
InitDamping

Levenberg-Marquardt参数的初始值,一个积极的标量。默认是1)依照。有关详细信息,请参见Levenberg-Marquardt方法

ScaleProblem

的雅可比矩阵有时可以改善收敛了不佳的问题。默认值是“没有”

例子:选择= optimoptions (“fsolve”、“FiniteDifferenceType”,“中央”)

问题的结构,指定为一个结构有以下字段:

字段名 条目

客观的

目标函数

x0

初始点x

解算器

“fsolve”

选项

选择创建optimoptions

数据类型:结构体

输出参数

全部折叠

解决方案,作为真正的向量或返回数组。的大小x是一样的尺寸吗x0。通常情况下,x是当地的解决问题的办法exitflag是正的。信息的质量解决方案,明白了当解决成功

目标函数值的解决方案,作为一个真正的返回向量。一般来说,fval=有趣的(x)

原因fsolve停止,返回一个整数。

1

方程解决。一阶最优性很小。

2

方程解决。的变化x小于指定的公差,或雅可比矩阵x是未定义的。

3

方程解决。剩余的变化小于指定的公差。

4

方程解决。大小的搜索方向小于指定的公差。

0

迭代次数超过options.MaxIterations超过或数量的功能评估options.MaxFunctionEvaluations

1

输出函数或函数停止算法的阴谋。

2

方程没有解决。退出消息可以有更多的信息。

3

方程没有解决。信赖域半径太小(trust-region-dogleg算法)。

优化过程的信息,作为结构返回字段:

迭代

采取的迭代次数

funcCount

数量的功能评估

算法

优化算法

cgiterations

PCG迭代(总数“信赖域”算法只)

stepsize

最终位移x(不是“trust-region-dogleg”)

firstorderopt

的一阶最优性

消息

退出消息

雅可比矩阵的解决方案,作为一个真正的返回矩阵。雅可比矩阵(i, j)的偏导数是吗有趣的(我)关于x (j)在解决方案x

限制

  • 要解决必须连续的函数。

  • 一旦成功,fsolve只给了一个根。

  • 默认的信赖域狗腿的方法只能用于当方程组广场,即。方程的数量等于未知数的数目。Levenberg-Marquardt法、方程组不需要广场。

提示

  • 对于大型问题,这意味着那些成千上万的变量或更多,节省内存(并可能节省时间)通过设置算法选项“信赖域”SubproblemAlgorithm选项“重心”

算法

Levenberg-Marquardt和信赖域方法是基于非线性最小二乘算法用于lsqnonlin。如果系统使用其中一种方法可能没有一个零。该算法仍然返回剩余很小。然而,如果系统的雅可比矩阵奇异,算法可能会收敛到一个点,并不是一个解决方程组(见限制)。

  • 默认情况下fsolve选择信赖域算法狗腿。该算法的一种变体鲍威尔狗腿中描述的方法[8]。它在本质上是类似的算法实现[7]。看到Trust-Region-Dogleg算法

  • 信赖域算法是一个子空间信赖域方法和基于interior-reflective牛顿方法中描述[1][2]。每个迭代都包括近似解大型线性系统使用条件共轭梯度法(PCG)。看到信赖域算法

  • Levenberg-Marquardt方法中描述的引用[4],[5],[6]。看到Levenberg-Marquardt方法

选择功能

应用程序

优化住编辑任务提供了一个可视化界面fsolve

引用

李[1]科尔曼,T.F.和y”内部,信赖域方法对非线性最小化界限,”暹罗杂志上优化》第六卷,第445 - 418页,1996年。

[2]科尔曼,T.F.和y,“在大规模非线性最小化的反光牛顿方法的收敛范围,“数学规划2号,卷。67年,第224 - 189页,1994年。

[3]丹尼斯,j·e·Jr .)“非线性最小二乘,”先进的数值分析艾德。d . Jacobs学术出版社,页269 - 312。

[4]Levenberg, K。,“A Method for the Solution of Certain Problems in Least-Squares,”2季度应用数学,第168 - 164页,1944年。

[5]马夸特,D。,“An Algorithm for Least-squares Estimation of Nonlinear Parameters,”暹罗《应用数学11卷,第441 - 431页,1963年。

[6],J·J。,“The Levenberg-Marquardt Algorithm: Implementation and Theory,”数值分析,艾德。g·a·沃森在630年数学课堂讲稿,施普林格-,105 - 116年,1977页。

[7],J·J。,B. S. Garbow, and K. E. Hillstrom,用户指南MINPACK 1阿贡国家实验室报告。退火- 80 - 74,1980。

[8]鲍威尔,m . j . D。,“A Fortran Subroutine for Solving Systems of Nonlinear Algebraic Equations,”非线性代数方程的数值方法,艾德。p . Rabinowitz Ch.7, 1970年。

扩展功能

版本历史

之前介绍过的R2006a