{"id":108,"date":"2022-01-28T18:01:07","date_gmt":"2022-01-28T10:01:07","guid":{"rendered":"https:\/\/www.zjulhy.cn\/?p=108"},"modified":"2022-01-29T13:18:05","modified_gmt":"2022-01-29T05:18:05","slug":"python%e6%b1%82%e8%a7%a3%e6%97%a0%e7%ba%a6%e6%9d%9f%e6%9c%80%e4%bc%98%e5%8c%96%e9%97%ae%e9%a2%98%ef%bc%9a%e7%89%9b%e9%a1%bf%e6%b3%95%e5%92%8c%e6%9c%80%e5%b0%8f%e4%ba%8c%e4%b9%98%e6%b3%95","status":"publish","type":"post","link":"https:\/\/www.zjulhy.cn\/index.php\/2022\/01\/28\/python%e6%b1%82%e8%a7%a3%e6%97%a0%e7%ba%a6%e6%9d%9f%e6%9c%80%e4%bc%98%e5%8c%96%e9%97%ae%e9%a2%98%ef%bc%9a%e7%89%9b%e9%a1%bf%e6%b3%95%e5%92%8c%e6%9c%80%e5%b0%8f%e4%ba%8c%e4%b9%98%e6%b3%95\/","title":{"rendered":"Python\u6c42\u89e3\u65e0\u7ea6\u675f\u6700\u4f18\u5316\u95ee\u9898\uff1a\u725b\u987f\u6cd5\u548c\u6700\u5c0f\u4e8c\u4e58\u6cd5"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u4e0a\u5b66\u671f\u4e0a\u4e86\u4e00\u95e8\u8bfe\u53eb\u505a\u6570\u503c\u8ba1\u7b97\uff0c\u9700\u8981\u7528python\u5199\u4e00\u4e9b\u8fed\u4ee3\u89e3\u65b9\u7a0b\u7684\u4ee3\u7801\u3002\u767e\u5ea6\u540e\u7684\u7ed3\u679c\u90fd\u4e0d\u5c3d\u5982\u4eba\u610f\uff0c\u56e0\u6b64\u81ea\u5df1\u5199\u4e86\u4e00\u4e9b\uff0c\u8fd9\u91cc\u5c06\u6bd4\u8f83\u91cd\u8981\u7684\u4e24\u4e2a\u653e\u4e0a\u6765\uff08\u8003\u8bd5\u7684\u65f6\u5019\u8003\u5230\u4e86\uff09\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.zjulhy.cn\/wp-content\/uploads\/2022\/01\/\u5c4f\u5e55\u622a\u56fe-2022-01-28-182602-1024x576.png\" alt=\"\" class=\"wp-image-117\" srcset=\"https:\/\/www.zjulhy.cn\/wp-content\/uploads\/2022\/01\/\u5c4f\u5e55\u622a\u56fe-2022-01-28-182602-1024x576.png 1024w, https:\/\/www.zjulhy.cn\/wp-content\/uploads\/2022\/01\/\u5c4f\u5e55\u622a\u56fe-2022-01-28-182602-300x169.png 300w, https:\/\/www.zjulhy.cn\/wp-content\/uploads\/2022\/01\/\u5c4f\u5e55\u622a\u56fe-2022-01-28-182602-768x432.png 768w, https:\/\/www.zjulhy.cn\/wp-content\/uploads\/2022\/01\/\u5c4f\u5e55\u622a\u56fe-2022-01-28-182602.png 1283w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>\u65e0\u7ea6\u675f\u4f18\u5316\u95ee\u9898\u7684\u725b\u987f\u6cd5<\/figcaption><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">import numpy as np\nimport sympy as sym\n\n#\u8bbe\u7f6e\u51fd\u6570\u5e76\u6c42\u68af\u5ea6\u77e9\u9635\u548cHesse\u77e9\u9635\nvars = sym.symbols('x1 x2')\nf = sym.sympify(['100 * (x2 - x1 ** 2) ** 2 + (1 - x1) ** 2'])\nGradientMatrix = sym.zeros(len(vars), 1)\nHessiansMatrix = sym.zeros(len(vars), len(vars))\n\nfor i,fi in enumerate(f):\n    for j,r in enumerate(vars):\n        GradientMatrix[j, 0] = sym.diff(fi,r)\n        for k,s in enumerate(vars):\n            HessiansMatrix[j,k]  =  sym.diff(sym.diff(fi,r),s)\n\nHessiansMatrix = sympy.lambdify([x1, x2], HessiansMatrix)\nGradientMatrix = sympy.lambdify([x1, x2], GradientMatrix)\n\nx0 = np.array([[-1.2], [1]])\ne = 1e-3\n\n#\u65e0\u7ea6\u675f\u4f18\u5316\u95ee\u9898\u7684\u725b\u987f\u6cd5\ndef Newton(x, e):\n    dx = np.linalg.solve(HessiansMatrix(x[0, 0], x[1, 0]), GradientMatrix(x[0, 0],x[1, 0]))\n    print(dx)\n    print(x)\n    while(np.sum(abs(dx)) &gt; e):\n        x = x - dx\n        dx = np.linalg.solve(HessiansMatrix(x[0, 0], x[1, 0]), GradientMatrix(x[0, 0],x[1, 0]))\n        print(dx)\n        print(x)\n        \nNewton(x0, e)<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.zjulhy.cn\/wp-content\/uploads\/2022\/01\/\u5c4f\u5e55\u622a\u56fe-2022-01-28-182637-1024x576.png\" alt=\"\" class=\"wp-image-118\" srcset=\"https:\/\/www.zjulhy.cn\/wp-content\/uploads\/2022\/01\/\u5c4f\u5e55\u622a\u56fe-2022-01-28-182637-1024x576.png 1024w, https:\/\/www.zjulhy.cn\/wp-content\/uploads\/2022\/01\/\u5c4f\u5e55\u622a\u56fe-2022-01-28-182637-300x169.png 300w, https:\/\/www.zjulhy.cn\/wp-content\/uploads\/2022\/01\/\u5c4f\u5e55\u622a\u56fe-2022-01-28-182637-768x432.png 768w, https:\/\/www.zjulhy.cn\/wp-content\/uploads\/2022\/01\/\u5c4f\u5e55\u622a\u56fe-2022-01-28-182637.png 1281w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>\u65e0\u7ea6\u675f\u4f18\u5316\u95ee\u9898\u7684\u6700\u5c0f\u4e8c\u4e58\u6cd5<\/figcaption><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">import numpy as np\nimport sympy as sym\n\n#\u8bbe\u7f6e\u51fd\u6570\u5e76\u6c42\u96c5\u53ef\u6bd4\u77e9\u9635\nvars = sym.symbols('f1 f2 x1 x2')\nf1 = 10 * (x2 - x1 ** 2)\nf2 = 1 - x1\nfuncs = sympy.Matrix([f1, f2])\nargs = sympy.Matrix([x1, x2])\njac = funcs.jacobian(args)\nfuncs = sympy.lambdify([x1, x2], funcs)\njac = sympy.lambdify([x1, x2], jac)\n\nx0 = np.array([[-1.2], [1]])\ne = 1e-3\n\n#\u65e0\u7ea6\u675f\u4f18\u5316\u95ee\u9898\u7684\u6700\u5c0f\u4e8c\u4e58\u6cd5\ndef GaussNewton(x, e):\n    while(np.sum(abs(jac(x[0, 0], x[1, 0]).T @ funcs(x[0, 0],x[1, 0]))) &gt; e):\n        dx = np.linalg.solve(jac(x[0, 0], x[1, 0]).T @ jac(x[0, 0], x[1, 0]), -jac(x[0, 0], x[1, 0]).T @ funcs(x[0, 0],x[1, 0]))\n        x = x + dx\n        print(dx)\n        print(x)\n        \nGaussNewton(x0, e)<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4e0a\u5b66\u671f\u4e0a\u4e86\u4e00\u95e8\u8bfe\u53eb\u505a\u6570\u503c\u8ba1\u7b97\uff0c\u9700\u8981\u7528python\u5199\u4e00\u4e9b\u8fed\u4ee3\u89e3\u65b9\u7a0b\u7684\u4ee3\u7801\u3002\u767e\u5ea6\u540e\u7684\u7ed3\u679c\u90fd\u4e0d\u5c3d\u5982\u4eba\u610f\uff0c\u56e0\u6b64\u81ea\u5df1\u5199\u4e86\u4e00\u4e9b\uff0c\u8fd9\u91cc\u5c06\u6bd4\u8f83\u91cd\u8981\u7684\u4e24\u4e2a\u653e\u4e0a\u6765\uff08\u8003\u8bd5\u7684\u65f6\u5019\u8003\u5230\u4e86\uff09\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[13],"class_list":["post-108","post","type-post","status-publish","format-standard","hentry","category-ai","tag-13"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":4}},"_links":{"self":[{"href":"https:\/\/www.zjulhy.cn\/index.php\/wp-json\/wp\/v2\/posts\/108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zjulhy.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.zjulhy.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.zjulhy.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zjulhy.cn\/index.php\/wp-json\/wp\/v2\/comments?post=108"}],"version-history":[{"count":6,"href":"https:\/\/www.zjulhy.cn\/index.php\/wp-json\/wp\/v2\/posts\/108\/revisions"}],"predecessor-version":[{"id":138,"href":"https:\/\/www.zjulhy.cn\/index.php\/wp-json\/wp\/v2\/posts\/108\/revisions\/138"}],"wp:attachment":[{"href":"https:\/\/www.zjulhy.cn\/index.php\/wp-json\/wp\/v2\/media?parent=108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zjulhy.cn\/index.php\/wp-json\/wp\/v2\/categories?post=108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zjulhy.cn\/index.php\/wp-json\/wp\/v2\/tags?post=108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}