代码与图片,个人水平有限比较繁琐
求解函数
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import pyplot as plt
import matplotlib as mpl
from numpy import *
from sympy import symbols, diff
import numpy as np
np.seterr(divide='ignore', invalid='ignore')
'''
作业涉及到高阶函数,与二阶函数有所不同
'''
x_1 = [-0.8, 1.4]
x1, x2 = symbols('x1, x2')
# 函数
f = x1**4/4 + x2**2/2 - x1*x2 + x1 - x2
print("第0次迭代结果为\nf={}\n".format(f.subs({
x1: x_1[0], x2: x_1[1]})))
df = []
k1 = []
k2 = []
k3 = []
k4 = []
F = []
# 将偏导放入矩阵中
df = [diff(f, x1), diff(f, x2)]
print('df=', df)
for i in range(0, 2):
k1.append(diff(df[i], x1))
k2.append(diff(df[i], x2))
F.append(k1)
F.append(k2)
print('F=', F)
F_X0 = []
for i in range(0, len(F