IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【optimtool.unconstrain】无约束优化工具箱 -> 正文阅读

[Python知识库]【optimtool.unconstrain】无约束优化工具箱

【optimtool.unconstrain】无约束优化工具箱

# import packages
%matplotlib inline
import sympy as sp
import matplotlib.pyplot as plt
import optimtool as oo
def train(funcs, args, x_0):
    f_list = []
    title = ["gradient_descent_barzilar_borwein", "newton_CG", "newton_quasi_L_BFGS", "trust_region_steihaug_CG"]
    colorlist = ["maroon", "teal", "slateblue", "orange"]
    _, _, f = oo.unconstrain.gradient_descent.barzilar_borwein(funcs, args, x_0, False, True)
    f_list.append(f)
    _, _, f = oo.unconstrain.newton.CG(funcs, args, x_0, False, True)
    f_list.append(f)
    _, _, f = oo.unconstrain.newton_quasi.L_BFGS(funcs, args, x_0, False, True)
    f_list.append(f)
    _, _, f = oo.unconstrain.trust_region.steihaug_CG(funcs, args, x_0, False, True)
    f_list.append(f)
    return colorlist, f_list, title
# 可视化函数:传参接口(颜色列表,函数值列表,标题列表)
def test(colorlist, f_list, title):
    handle = []
    for j, z in zip(colorlist, f_list):
        ln, = plt.plot([i for i in range(len(z))], z, c=j, marker='o', linestyle='dashed')
        handle.append(ln)
    plt.xlabel("$Iteration \ times \ (k)$")
    plt.ylabel("$Objective \ function \ value: \ f(x_k)$")
    plt.legend(handle, title)
    plt.title("Performance Comparison")
    return None

Extended Freudenstein & Roth function

f ( x ) = ∑ i = 1 n / 2 ( ? 13 + x 2 i ? 1 + ( ( 5 ? x 2 i ) x 2 i ? 2 ) x 2 i ) 2 + ( ? 29 + x 2 i ? 1 + ( ( x 2 i + 1 ) x 2 i ? 14 ) x 2 i ) 2 , x 0 = [ 0.5 , ? 2 , 0.5 , ? 2 , . . . , 0.5 , ? 2 ] . f(x)=\sum_{i=1}^{n/2}(-13+x_{2i-1}+((5-x_{2i})x_{2i}-2)x_{2i})^2+(-29+x_{2i-1}+((x_{2i}+1)x_{2i}-14)x_{2i})^2, x_0=[0.5, -2, 0.5, -2, ..., 0.5, -2]. f(x)=i=1n/2?(?13+x2i?1?+((5?x2i?)x2i??2)x2i?)2+(?29+x2i?1?+((x2i?+1)x2i??14)x2i?)2,x0?=[0.5,?2,0.5,?2,...,0.5,?2].

# make data(4 dimension)
x = sp.symbols("x1:5")
f = (-13 + x[0] + ((5 - x[1])*x[1] - 2)*x[1])**2 + \
    (-29 + x[0] + ((x[1] + 1)*x[1] - 14)*x[1])**2 + \
    (-13 + x[2] + ((5 - x[3])*x[3] - 2)*x[3])**2 + \
    (-29 + x[2] + ((x[3] + 1)*x[3] - 14)*x[3])**2
x_0 = (1, -1, 1, -1) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)

Extended Trigonometric function:

f ( x ) = ∑ i = 1 n ( ( n ? ∑ j = 1 n cos ? x j ) + i ( 1 ? cos ? x i ) ? sin ? x i ) 2 , x 0 = [ 0.2 , 0.2 , . . . , 0.2 ] f(x)=\sum_{i=1}^{n}((n-\sum_{j=1}^{n}\cos x_j)+i(1-\cos x_i)-\sin x_i)^2, x_0=[0.2, 0.2, ...,0.2] f(x)=i=1n?((n?j=1n?cosxj?)+i(1?cosxi?)?sinxi?)2,x0?=[0.2,0.2,...,0.2]

# make data(2 dimension)
x = sp.symbols("x1:3")
f = (2 - (sp.cos(x[0]) + sp.cos(x[1])) + (1 - sp.cos(x[0])) - sp.sin(x[0]))**2 + \
    (2 - (sp.cos(x[0]) + sp.cos(x[1])) + 2 * (1 - sp.cos(x[1])) - sp.sin(x[1]))**2
x_0 = (0.1, 0.1) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)

Extended Rosenbrock function

f ( x ) = ∑ i = 1 n / 2 c ( x 2 i ? x 2 i ? 1 2 ) 2 + ( 1 ? x 2 i ? 1 ) 2 , x 0 = [ ? 1.2 , 1 , . . . , ? 1.2 , 1 ] . c = 100 f(x)=\sum_{i=1}^{n/2}c(x_{2i}-x_{2i-1}^2)^2+(1-x_{2i-1})^2, x_0=[-1.2, 1, ...,-1.2, 1]. c=100 f(x)=i=1n/2?c(x2i??x2i?12?)2+(1?x2i?1?)2,x0?=[?1.2,1,...,?1.2,1].c=100

# make data(4 dimension)
x = sp.symbols("x1:5")
f = 100 * (x[1] - x[0]**2)**2 + \
    (1 - x[0])**2 + \
    100 * (x[3] - x[2]**2)**2 + \
    (1 - x[2])**2
x_0 = (-2, 2, -2, 2) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)

Generalized Rosenbrock function

f ( x ) = ∑ i = 1 n ? 1 c ( x i + 1 ? x i 2 ) 2 + ( 1 ? x i ) 2 , x 0 = [ ? 1.2 , 1 , . . . , ? 1.2 , 1 ] , c = 100. f(x)=\sum_{i=1}^{n-1}c(x_{i+1}-x_i^2)^2+(1-x_i)^2, x_0=[-1.2, 1, ...,-1.2, 1], c=100. f(x)=i=1n?1?c(xi+1??xi2?)2+(1?xi?)2,x0?=[?1.2,1,...,?1.2,1],c=100.

# make data(2 dimension)
x = sp.symbols("x1:3")
f = 100 * (x[1] - x[0]**2)**2 + (1 - x[0])**2
x_0 = (-1, 0.5) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)

Extended White & Holst function

f ( x ) = ∑ i = 1 n / 2 c ( x 2 i ? x 2 i ? 1 3 ) 2 + ( 1 ? x 2 i ? 1 ) 2 , x 0 = [ ? 1.2 , 1 , . . . , ? 1.2 , 1 ] . c = 100 f(x)=\sum_{i=1}^{n/2}c(x_{2i}-x_{2i-1}^3)^2+(1-x_{2i-1})^2, x_0=[-1.2, 1, ...,-1.2, 1]. c=100 f(x)=i=1n/2?c(x2i??x2i?13?)2+(1?x2i?1?)2,x0?=[?1.2,1,...,?1.2,1].c=100

# make data(4 dimension)
x = sp.symbols("x1:5")
f = 100 * (x[1] - x[0]**3)**2 + \
    (1 - x[0])**2 + \
    100 * (x[3] - x[2]**3)**2 + \
    (1 - x[2])**2
x_0 = (-1, 0.5, -1, 0.5) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)

Extended Penalty function

f ( x ) = ∑ i = 1 n ? 1 ( x i ? 1 ) 2 + ( ∑ j = 1 n x j 2 ? 0.25 ) 2 , x 0 = [ 1 , 2 , . . . , n ] . f(x)=\sum_{i=1}^{n-1} (x_i-1)^2+(\sum_{j=1}^{n}x_j^2-0.25)^2, x_0=[1,2,...,n]. f(x)=i=1n?1?(xi??1)2+(j=1n?xj2??0.25)2,x0?=[1,2,...,n].

# make data(4 dimension)
x = sp.symbols("x1:5")
f = (x[0] - 1)**2 + (x[1] - 1)**2 + (x[2] - 1)**2 + \
    ((x[0]**2 + x[1]**2 + x[2]**2 + x[3]**2) - 0.25)**2
x_0 = (5, 5, 5, 5) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)

Perturbed Quadratic function

f ( x ) = ∑ i = 1 n i x i 2 + 1 100 ( ∑ i = 1 n x i ) 2 , x 0 = [ 0.5 , 0.5 , . . . , 0.5 ] . f(x)=\sum_{i=1}^{n}ix_i^2+\frac{1}{100}(\sum_{i=1}^{n}x_i)^2, x_0=[0.5,0.5,...,0.5]. f(x)=i=1n?ixi2?+1001?(i=1n?xi?)2,x0?=[0.5,0.5,...,0.5].

# make data(4 dimension)
x = sp.symbols("x1:5")
f = x[0]**2 + 2*x[1]**2 + 3*x[2]**2 + 4*x[3]**2 + \
    0.01 * (x[0] + x[1] + x[2] + x[3])**2
x_0 = (1, 1, 1, 1) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)

Raydan 1 function

f ( x ) = ∑ i = 1 n i 10 ( exp ? x i ? x i ) , x 0 = [ 1 , 1 , . . . , 1 ] . f(x)=\sum_{i=1}^{n}\frac{i}{10}(\exp{x_i}-x_i), x_0=[1,1,...,1]. f(x)=i=1n?10i?(expxi??xi?),x0?=[1,1,...,1].

# make data(4 dimension)
x = sp.symbols("x1:5")
f = 0.1 * (sp.exp(x[0]) - x[0]) + \
    0.2 * (sp.exp(x[1]) - x[1]) + \
    0.3 * (sp.exp(x[2]) - x[2]) + \
    0.4 * (sp.exp(x[3]) - x[3])
x_0 = (0.5, 0.5, 0.5, 0.5) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)

Raydan 2 function

f ( x ) = ∑ i = 1 n ( exp ? x i ? x i ) , x 0 = [ 1 , 1 , . . . , 1 ] . f(x)=\sum_{i=1}^{n}(\exp{x_i}-x_i), x_0=[1,1,...,1]. f(x)=i=1n?(expxi??xi?),x0?=[1,1,...,1].

# make data(4 dimension)
x = sp.symbols("x1:5")
f = (sp.exp(x[0]) - x[0]) + \
    (sp.exp(x[1]) - x[1]) + \
    (sp.exp(x[2]) - x[2]) + \
    (sp.exp(x[3]) - x[3])
x_0 = (2, 2, 2, 2) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)

Diagonal 1 function

f ( x ) = ∑ i = 1 n ( exp ? x i ? i x i ) , x 0 = [ 1 / n , 1 / n , . . . , 1 / n ] . f(x)=\sum_{i=1}^{n}(\exp{x_i}-ix_i), x_0=[1/n,1/n,...,1/n]. f(x)=i=1n?(expxi??ixi?),x0?=[1/n,1/n,...,1/n].

# make data(4 dimension)
x = sp.symbols("x1:5")
f = (sp.exp(x[0]) - x[0]) + \
    (sp.exp(x[1]) - 2 * x[1]) + \
    (sp.exp(x[2]) - 3 * x[2]) + \
    (sp.exp(x[3]) - 4 * x[3])
x_0 = (0.5, 0.5, 0.5, 0.5) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)

Diagonal 2 function

f ( x ) = ∑ i = 1 n ( exp ? x i ? x i i ) , x 0 = [ 1 / 1 , 1 / 2 , . . . , 1 / n ] . f(x)=\sum_{i=1}^{n}(\exp{x_i}-\frac{x_i}{i}), x_0=[1/1,1/2,...,1/n]. f(x)=i=1n?(expxi??ixi??),x0?=[1/1,1/2,...,1/n].

# make data(4 dimension)
x = sp.symbols("x1:5")
f = (sp.exp(x[0]) - x[0]) + \
    (sp.exp(x[1]) - x[1] / 2) + \
    (sp.exp(x[2]) - x[2] / 3) + \
    (sp.exp(x[3]) - x[3] / 4)
x_0 = (0.9, 0.6, 0.4, 0.3) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)

Diagonal 3 function

f ( x ) = ∑ i = 1 n ( exp ? x i ? i sin ? ( x i ) ) , x 0 = [ 1 , 1 , . . . , 1 ] . f(x)=\sum_{i=1}^{n}(\exp{x_i}-i\sin(x_i)), x_0=[1,1,...,1]. f(x)=i=1n?(expxi??isin(xi?)),x0?=[1,1,...,1].

# make data(4 dimension)
x = sp.symbols("x1:5")
f = (sp.exp(x[0]) - sp.sin(x[0])) + \
    (sp.exp(x[1]) - 2 * sp.sin(x[1])) + \
    (sp.exp(x[2]) - 3 * sp.sin(x[2])) + \
    (sp.exp(x[3]) - 4 * sp.sin(x[3]))
x_0 = (0.5, 0.5, 0.5, 0.5) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)

Hager function

f ( x ) = ∑ i = 1 n ( exp ? x i ? i x i ) , x 0 = [ 1 , 1 , . . . , 1 ] . f(x)=\sum_{i=1}^{n}(\exp{x_i}-\sqrt{i}x_i), x_0=[1,1,...,1]. f(x)=i=1n?(expxi??i ?xi?),x0?=[1,1,...,1].

# make data(4 dimension)
x = sp.symbols("x1:5")
f = (sp.exp(x[0]) - x[0]) + \
    (sp.exp(x[1]) - sp.sqrt(2) * x[1]) + \
    (sp.exp(x[2]) - sp.sqrt(3) * x[2]) + \
    (sp.exp(x[3]) - sp.sqrt(4) * x[3])
x_0 = (0.5, 0.5, 0.5, 0.5) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)

Generalized Tridiagonal 1 function

f ( x ) = ∑ i = 1 n ? 1 ( x i + x i + 1 ? 3 ) 2 + ( x i ? x i + 1 + 1 ) 4 , x 0 = [ 2 , 2 , . . . , 2 ] . f(x)=\sum_{i=1}^{n-1}(x_i+x_{i+1}-3)^2+(x_i-x_{i+1}+1)^4, x_0=[2,2,...,2]. f(x)=i=1n?1?(xi?+xi+1??3)2+(xi??xi+1?+1)4,x0?=[2,2,...,2].

# make data(3 dimension)
x = sp.symbols("x1:4")
f = (x[0] + x[1] - 3)**2 + (x[0] - x[1] + 1)**4 + \
    (x[1] + x[2] - 3)**2 + (x[1] - x[2] + 1)**4
x_0 = (1, 1, 1) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)

Extended Tridiagonal 1 function:

f ( x ) = ∑ i = 1 n / 2 ( x 2 i ? 1 + x 2 i ? 3 ) 2 + ( x 2 i ? 1 ? x 2 i + 1 ) 4 , x 0 = [ 2 , 2 , . . . , 2 ] . f(x)=\sum_{i=1}^{n/2}(x_{2i-1}+x_{2i}-3)^2+(x_{2i-1}-x_{2i}+1)^4, x_0=[2,2,...,2]. f(x)=i=1n/2?(x2i?1?+x2i??3)2+(x2i?1??x2i?+1)4,x0?=[2,2,...,2].

# make data(2 dimension)
x = sp.symbols("x1:3")
f = (x[0] + x[1] - 3)**2 + (x[0] - x[1] + 1)**4
x_0 = (1, 1) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)

Extended TET function : (Three exponential terms)

f ( x ) = ∑ i = 1 n / 2 ( ( exp ? x 2 i ? 1 + 3 x 2 i ? 0.1 ) + exp ? ( x 2 i ? 1 ? 3 x 2 i ? 0.1 ) + exp ? ( ? x 2 i ? 1 ? 0.1 ) ) , x 0 = [ 0.1 , 0.1 , . . . , 0.1 ] . f(x)=\sum_{i=1}^{n/2}((\exp x_{2i-1} + 3x_{2i} - 0.1) + \exp (x_{2i-1} - 3x_{2i} - 0.1) + \exp (-x_{2i-1}-0.1)), x_0=[0.1,0.1,...,0.1]. f(x)=i=1n/2?((expx2i?1?+3x2i??0.1)+exp(x2i?1??3x2i??0.1)+exp(?x2i?1??0.1)),x0?=[0.1,0.1,...,0.1].

# make data(4 dimension)
x = sp.symbols("x1:5")
f = sp.exp(x[0] + 3*x[1] - 0.1) + sp.exp(x[0] - 3*x[1] - 0.1) + sp.exp(-x[0] - 0.1) + \
    sp.exp(x[2] + 3*x[3] - 0.1) + sp.exp(x[2] - 3*x[3] - 0.1) + sp.exp(-x[2] - 0.1)
x_0 = (0.2, 0.2, 0.2, 0.2) # Random given
# train
color, values, title = train(funcs=f, args=x, x_0=x_0)
# test
test(color, values, title)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 10:44:49  更:2022-07-03 10:47:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:48:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码