这个例子展示了如何找到一个多元函数的极值及其近似极值点附近。这个示例使用符号矩阵变量代表多元函数及其衍生物。可从R2021a符号矩阵变量。
考虑到多元函数 ,在那里 是一个2×1向量和 是一个2×2矩阵。找到这个函数的局部极值,计算导数的根 。换句话说,找到导数的解决方案 。
创建一个向量 和矩阵 作为符号矩阵变量。定义的函数 。
信谊x(2 - 1)矩阵信谊一个(2 - 2)矩阵f = sin (x。”* * x)
f =
计算导数D
函数的
关于向量
。导数D
显示在紧凑的矩阵表示法的
和
。
D = diff (f (x)
D =
symmatrix
对象信谊
对象象征性的矩阵变量x
,一个
,f
,D
是symmatrix
对象。这些对象代表矩阵、矢量和标量在紧凑型矩阵表示法。给这些变量的组件,转换symmatrix
对象信谊
对象的使用symmatrix2sym
。
xsym = symmatrix2sym (x)
xsym =
Asym = symmatrix2sym (A)
Asym =
fsym = symmatrix2sym (f)
fsym =
Dsym = symmatrix2sym (D)
Dsym =
假设你有兴趣的情况的价值
是[2 1;0 3]
。把这个值代入函数fsym
。
fsym =潜艇(fsym、Asym [2 1;0 3])
fsym =
替代的价值
的导数Dsym
Dsym =潜艇(Dsym、Asym [2 1;0 3])
Dsym =
然后,运用符号函数解决
导数的根源。
[xmin, ymin] =解决(Dsym xsym,“PrincipalValue”,真正的);x0 = [xmin;ymin]
x0 =
绘制函数
一起极值解
。设置情节间隔
和
作为第二个参数fsurf
。使用fplot3
绘制的坐标极值解。
fsurf (fsym [1 1 1 1])在ymin fplot3 (xmin,潜艇(fsym xsym, x0),“罗”)视图([-68]13日)
你可以围绕一个多变量函数近似点 多项利用泰勒展开式。
在这里,这个术语 梯度向量, 海赛矩阵的多元函数 计算在 。
找到海赛矩阵作为一个象征性的矩阵变量并返回结果。
H = diff (f, x, x。”)
H =
把海赛矩阵
到信谊
数据类型,代表组件的矩阵形式。使用潜艇
评估海赛矩阵
= (2 1;0 3]
在最小点
。
Hsym = symmatrix2sym (H);Hsym =潜艇(Hsym、Asym [2 1;0 3]);H0 =潜艇(Hsym xsym x0)
H0 =
评价梯度向量 在 。
D0 =潜艇(Dsym xsym x0)
D0 =
计算函数的泰勒近似接近最小值。
fapprox =潜艇(fsym xsym x0) + D0 * (xsym-x0) + 1/2 * (xsym-x0)。* H0 * (xsym-x0)
fapprox =
情节上的函数近似相同的图形显示 和 。
持有在fsurf (fapprox [1 1 1 1) zlim (1 [3])