第11课 扩展知识

多元函数的梯度:

多元函数对各个自变量偏导数形成的向量叫做多元函数的梯度。
写成修饰器时这样的

def grad(func):
    def f(*args):
        return Matrix([diff(func(*args),i,1) for i in args]).T
    return f

计算举例:

@grad
def gf(x,y):
    return x**2+x*y+y**2
gf(x,y)

\left[\begin{matrix}2 x + y & x + 2 y\end{matrix}\right]

雅可比矩阵

如果有一个多元函数,它输入的每个参数对应着某一n维向量的每一维度,并且这个n元函数的输出为m维向量,那么,输出向量的每个分量对输入向量的每个分量的偏导数构成一个m行n列的矩阵,这个m行n列的矩阵叫做这个函数的雅可比矩阵。
计算举例

u=x**2+2*x*y+z
v=x-y**2+z**2
X = Matrix([u, v])
Y = Matrix([x, y, z])
X.jacobian(Y)

\left[\begin{matrix}2 x + 2 y & 2 x & 1\\1 & - 2 y & 2 z\end{matrix}\right]

Hessian矩阵

n元函数的二阶偏导数有n^2个,如果把它们依次排开,能够得到一个对称矩阵,这个矩阵就叫做这个函数的Hessian矩阵
矩阵主对角线上的n个元素是对同一个自变量求二阶偏导数。
例如,求下面这个的Hessian矩阵
f(x,y,z)=x^{2} + 2 x y + 4 y^{2} + 6 y z + 4 z^{2}

f = x**2+2*x*y+4*y**2+6*y*z+4*z**2
hessian(f,(x,y,z))

\left[\begin{matrix}2 & 2 & 0\\2 & 8 & 6\\0 & 6 & 8\end{matrix}\right]

二次型

二次型是只由二次项构成的二次函数,例如下面的三元二次函数:
f(x,y,z)=x^{2} + 2 x y + 4 y^{2} + 6 y z + 4 z^{2}
写成矩阵的形式为
\left[\begin{matrix}x & y & z\end{matrix}\right]×\left[\begin{matrix}1 & 1 & 0\\1 & 4& 3\\0 & 3 & 4\end{matrix}\right]×\left[\begin{matrix}x\\y\\z\end{matrix}\right]=\left[\begin{matrix}x+y & x+4y+3z & 3y+4z\end{matrix}\right]×\left[\begin{matrix}x\\y\\z\end{matrix}\right]=\left[\begin{matrix}1xx+2xy+4yy+6yz+4zz\end{matrix}\right]
这个矩阵形式也叫二次型,其中,
\left[\begin{matrix}1 & 1 & 0\\1 & 4& 3\\0 & 3 & 4\end{matrix}\right]
等于这个二次型的Hessian矩阵的一半

矩阵的各种“定”

矩阵正定

用任意一个非零的n维行向量,乘以一个n阶方阵,再乘以这个n维行向量的转置,得到一个只有一个元素的矩阵,这个元素都大于0,则这个n阶方阵是一个正定矩阵

判定矩阵正定的常用方法:
  1. 矩阵的特征值全大于0
  2. 矩阵的顺序主子式都大于0(n阶方阵的前i行和前i列构成的矩阵的行列式,叫做这个方阵的i阶顺序主子式,n阶方阵总共有n个顺序主子式)
  3. 矩阵合同于与之同阶的单位矩阵(如果存在一个可逆矩阵C,使得C的转置乘以n阶方阵A,再乘以C的结果等于n阶方阵B,则矩阵A合同与矩阵B)

矩阵负定

用任意一个非零的n维行向量,乘以一个n阶方阵,再乘以这个n维行向量的转置,得到一个只有一个元素的矩阵,这个元素都小于0,则这个n阶方阵是一个负定矩阵

矩阵半定

用任意一个非零的n维行向量,乘以一个n阶方阵,再乘以这个n维行向量的转置,得到一个只有一个元素的矩阵,这个元素都大于或小于0,则这个n阶方阵是一个半定矩阵

矩阵半正定

用任意一个非零的n维行向量,乘以一个n阶方阵,再乘以这个n维行向量的转置,得到一个只有一个元素的矩阵,这个元素都大于或等于0,则这个n阶方阵是一个半正定矩阵

矩阵半负定

用任意一个非零的n维行向量,乘以一个n阶方阵,再乘以这个n维行向量的转置,得到一个只有一个元素的矩阵,这个元素都小于或等于0,则这个n阶方阵是一个半负定矩阵

矩阵不定

除了上述五种定的情形外的矩阵不定。

from sympy import *
from sympy.matrices import Matrix

def classify_matrix(matrix):
    eigenvalues = matrix.eigenvals()
    positive = 0
    negative = 0
    zero = 0
    for eigenvalue in eigenvalues.values():
        if eigenvalue > 0:
            positive += 1
        elif eigenvalue < 0:
            negative += 1
        else:
            zero += 1
    if positive == matrix.shape[0]:
        return "正定"
    elif negative == matrix.shape[0]:
        return "负定"
    elif zero > 0:
        return "不定"
    elif positive > 0 and negative > 0:
        return "半定"
    elif positive > 0 and negative == 0:
        return "半正定"
    elif positive == 0 and negative > 0:
        return "半负定"

matrix = Matrix([[1, -2, -3], [-2, -5, -3], [-3, -3, -6]])
print(classify_matrix(matrix))

这是用来判断矩阵如何定的python代码,输入的必须是方阵,函数没有做输入检查,请注意。

推论——针对多元函数

如果一个多元函数的Hessian矩阵半正定,则此函数为凸函数;如果一个多元函数的Hessian矩阵正定,则此函数为严格凸函数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342