优化方法的应用(optimtool.example)

import optimtool as oo
from optimtool.base import np, sp, plt
pip install optimtool>=2.4.2

优化方法的应用(optimtool.example)

import optimtool.example as oe

Lasso问题(Lasso)

oe.Lasso.[函数名]([矩阵A], [矩阵b], [因子mu], [参数表], [初始迭代点])

min ⁡ 1 2 ∣ ∣ A x − b ∣ ∣ 2 + μ ∣ ∣ x ∣ ∣ 1 \min \frac{1}{2} ||Ax-b||^2+\mu ||x||_1 min21∣∣Axb2+μ∣∣x1

给定 A m × n A_{m \times n} Am×n x n × 1 x_{n \times 1} xn×1 b m × 1 b_{m \times 1} bm×1,正则化常数 μ \mu μ。解决该无约束最优化问题,该问题目标函数一阶不可导。

方法头解释
gradient(A: NDArray, b: NDArray, mu: float, args: ArgArray, x_0: PointArray, verbose: bool=False, draw: bool=True, output_f: bool=False, delta: float=10, alp: float=1e-3, epsilon: float=1e-2, k: int=0) -> OutputType光滑化Lasso函数法
subgradient(A: NDArray, b: NDArray, mu: float, args: ArgArray, x_0: PointArray, verbose: bool=False, draw: bool=True, output_f: bool=False, alphak: float=2e-2, epsilon: float=1e-3, k: int=0) -> OutputType次梯度法Lasso避免一阶不可导
approximate_point(A: NDArray, b: NDArray, mu: float, args: ArgArray, x_0: PointArray, verbose: bool=False, draw: bool=True, output_f: bool=False, epsilon: float=1e-4, k: int=0) -> OutputType邻近算子更新
import scipy.sparse as ss
x = sp.symbols('x1:9')
m, n = 4, 8
u = (ss.rand(n, 1, 0.1)).toarray()
Mu = 1e-3
A = np.random.randn(m, n)
b = np.random.randn(m, n).dot(u)
x_0 = tuple([1 for _ in range(8)])
oe.Lasso.subgradient(A, b, Mu, x, x_0, verbose=False)

在这里插入图片描述

(array([ 0.31938837, -0.01063285,  0.64248879,  0.39738588, -0.59341723, -0.20835098,  0.65554228,  0.44903602]), 216)

曲线相切问题(WanYuan)

oe.WanYuan.[函数名]([直线的斜率], [直线的截距], [二次项系数], [一次项系数], [常数项], [圆心横坐标], [圆心纵坐标], [初始迭代点])

问题描述:

给定直线的斜率和截距,给定一个抛物线函数的二次项系数,一次项系数与常数项。 要求解一个给定圆心的圆,该圆同时与抛物线、直线相切,若存在可行方案,请给出切点的坐标。
方法头解释
solution(m: float, n: float, a: float, b: float, c: float, x3: float, y3: float, x_0: tuple, verbose: bool=False, draw: bool=False, eps: float=1e-10) -> str使用高斯-牛顿方法求解构造的7个残差函数
oe.WanYuan.solution(1, 2, 0.2, -1.4, 2.2, 3, -2.5, (4, 4, -4, -2, -2, 4), True)
(4, 4, -4, -2, -2, 4)	61612.182500000024	0
[ 3.29133755  0.06740836 -2.5150997   0.28351846  1.0655889  -0.94429557]	13380.08160556542	1
[-1.11968963 -3.58590014 -2.69274677 -1.37736125 -0.26164182 -0.77291041]	1198.7999458909264	2
[-0.30266852 -2.89871252 -2.59053473 -0.61494902  1.62333363 -0.18803779]	1.5198302153861234	3
[-0.09044295 -2.47519749 -2.22330715 -0.34428703  1.67765088  0.02982181]	0.3269218137297747	4
[-0.04674173 -2.3650673  -2.16182829 -0.25144656  1.69657453  0.11211081]	0.23257960438227657	5
[ 0.00834682 -2.21605565 -2.09213868 -0.11631022  1.72502288  0.23298958]	0.1283472579162907	6
[ 0.04441602 -2.1008148  -2.06090762  0.00449731  1.7522343   0.34204307]	0.010358309290037107	7
[ 0.03898432 -2.11262103 -2.07069068 -0.00294621  1.75120302  0.33509119]	0.002797404047207694	8
[ 0.03915084 -2.11208603 -2.07046856 -0.00246663  1.75127154  0.33557915]	0.002796695858338408	9
[ 0.03914121 -2.11211464 -2.07048258 -0.00249084  1.75126809  0.33555454]	0.0027966954396675928	10
[ 0.03914172 -2.11211313 -2.07048185 -0.00248957  1.75126827  0.33555584]	0.0027966954385178202	11
[ 0.03914169 -2.11211321 -2.07048189 -0.00248963  1.75126826  0.33555577]	0.0027966954385146964	12
[ 0.03914169 -2.11211321 -2.07048189 -0.00248963  1.75126826  0.33555577]	0.0027966954385146483	13
[ 0.03914169 -2.11211321 -2.07048189 -0.00248963  1.75126826  0.33555577]	0.002796695438514672	14
[ 0.03914169 -2.11211321 -2.07048189 -0.00248963  1.75126826  0.33555577]	0.0027966954385146175	15

在这里插入图片描述

'(x0, y0)=(0.04, -2.11), (x1, y1)=(-2.07, -0.0), (x2, y2)=(1.75, 0.34)'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/148992.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

矩阵的c++实现(2)

上一次我们了解了矩阵的运算和如何使用矩阵解决斐波那契数列&#xff0c;这一次我们多看看例题&#xff0c;了解什么情况下用矩阵比较合适。 先看例题 1.洛谷P1939 【模板】矩阵加速&#xff08;数列&#xff09; 模板题应该很简单。 补&#xff1a;1<n<10^9 10^9肯定…

QGIS文章四——对遥感影像进行土地类型分类

关于土地类型分类&#xff0c;按照性质、用途、利用现状有不同的分类标准。 一、按照国家土地性质分类标准&#xff0c;一般分五类:商业用地、综合用地、住宅用地、工业用地和其他用地。 二、按照用途进行土地分类&#xff1a;可以分为农用地、建设用地和未利用土地&#xff0c…

专题一:双指针【优选算法】

双指针应用场景&#xff1a; 数组划分、数组分块 目录 一、移动0 二、复写0 从后向前 三、快乐数 链表带环 四、盛水最多的容器 单调性双指针 五、有效三角形个数 单调性双指针 六、和为s的两个数字 七、三数之和 细节多 需再练 一、移动0 class Solution { public:void move…

【iptables 实战】9 docker网络原理分析

在开始本章阅读之前&#xff0c;需要提前了解以下的知识 阅读本节需要一些docker的基础知识&#xff0c;最好是在linux上安装好docker环境。提前掌握iptables的基础知识&#xff0c;前文参考【iptables 实战】 一、docker网络模型 docker网络模型如下图所示 说明&#xff1…

如何禁用Windows 10快速启动(以及为什么要这样做)

如果您不想启用Windows 10快速启动&#xff0c;则可以相对轻松地禁用它。 快速启动是一项功能&#xff0c;首先在 Windows 8 中作为快速启动实现&#xff0c;并延续到 Windows 10&#xff0c;让您的 PC 更快地启动&#xff0c;因此得名。虽然这个方便的功能可以通过将操作系统…

MySQL 事务隔离级别与锁机制详解

目录 一、前言二、事务及其ACID属性三、并发事务处理带来的问题四、事务隔离级别4.1、隔离级别分类4.2、查看当前数据库的事务隔离级别:4.3、临时修改数据库隔离级别&#xff08;重启MySQL后恢复到配置中的级别&#xff09; 五、表数据准备六、MySQL常见锁介绍5.1、锁分类5.2、…

软考高级之系统架构师之设计模式

概述 设计模式是一种通用的设计方法&#xff0c;实际开发中可能不止23种。为方便理解和应用&#xff0c;一般分为3类&#xff1a; 创建型&#xff0c;通过采用抽象类所定义的接口&#xff0c;封装系统中对象如何创建、组合等信息。工厂方法模式、抽象工厂模式、单例模式、建造…

PsychoPy Coder 心理学实验 斯特鲁普效应

选题&#xff1a;斯特鲁普效应实验 选题来源&#xff1a;你知道的「有趣的心理学实验」有哪些&#xff1f; - 知乎 (zhihu.com) 测试目标&#xff1a;探索斯特鲁普效应&#xff0c;即被试在判断文字颜色时&#xff0c;当文字的颜色与其所表示的颜色名称不一致时&#xff0c;是…

0基础学习VR全景平台篇 第103篇:使用英文、法文、德文等其他语言

大家好&#xff0c;欢迎观看蛙色VR官方系列——后台使用课程&#xff01; 蛙色VR平台目前已支持中英文语言进行切换&#xff0c;本期教程为大家带来&#xff0c;如何实现日文、法文、德文、俄文乃至其他小语种离线包里语言切换教程&#xff01; 语言切换样例展示 一、使用本功…

高级SQL语句

高级SQL语句&#xff08;进阶查询&#xff09; 先准备2个表 &#xff0c;一个location表&#xff1a; use market; create table location(Region char(20),Store_Name char(20)); insert into location values(East,Boston); insert into location values(East,New Yor…

【树】树的直径和重心

目录 一.树的直径 &#xff08;1&#xff09;定义 &#xff08;2&#xff09;思路 &#xff08;3&#xff09;例题 &#xff08;4&#xff09;std(第一小问) 二.树的重心 &#xff08;1&#xff09;介绍 &#xff08;2&#xff09;求重心 &#xff08;3&#xff09;例…

一文教你搞懂Redis集群

一、Redis主从 1.1、搭建主从架构 单节点的Redis的并发能力是有上限的&#xff0c;要进一步的提高Redis的并发能力&#xff0c;据需要大家主从集群&#xff0c;实现读写分离。 共包含三个实例&#xff0c;由于资源有限&#xff0c;所以在一台虚拟机上&#xff0c;开启多个red…

小程序入门笔记(一) 黑马程序员前端微信小程序开发教程

微信小程序基本介绍 小程序和普通网页有以下几点区别&#xff1a; 运行环境&#xff1a;小程序可以在手机的操作系统上直接运行&#xff0c;如微信、支付宝等&#xff1b;而普通网页需要在浏览器中打开才能运行。 开发技术&#xff1a;小程序采用前端技术进行开发&#xff0c;…

Sentinel安装

Sentinel 微服务保护的技术有很多&#xff0c;但在目前国内使用较多的还是Sentinel&#xff0c;所以接下来我们学习Sentinel的使用。 1.介绍和安装 Sentinel是阿里巴巴开源的一款服务保护框架&#xff0c;目前已经加入SpringCloudAlibaba中。官方网站&#xff1a; 首页 | Se…

Curve 文件存储的缓存策略

Curve 文件存储简介 Curve 文件存储的架构如下&#xff1a; 客户端 Posix 兼容&#xff1a;像本地文件系统一样使用&#xff0c;业务无缝接入&#xff0c;无侵入性&#xff1b; 独立的元数据集群&#xff1a;元数据分布式设计&#xff0c;可以无限扩展。同一文件系统可以在数…

JAVA设计模式-代理模式

一.概念 在软件开发中&#xff0c;也有一种设计模式可以提供与代购网站类似的功能。由于某些原因&#xff0c;客户端不想或不能直接访问一个对象&#xff0c;此时可以通过一个称之为“代理”的第三者来实现间接访问&#xff0c;该方案对应的设计模式被称为代理模式。 ​ 代理模…

Android自定义Drawable---灵活多变的矩形背景

Android自定义Drawable—灵活多变的矩形背景 在安卓开发中&#xff0c;我们通常需要为不同的按钮设置不同的背景以实现不同的效果&#xff0c;有时还需要这些按钮根据实际情况进行变化。如果采用编写resource中xml文件的形式&#xff0c;就需要重复定义许多只有微小变动的资源…

《视觉 SLAM 十四讲》V2 第 5 讲 相机与图像

文章目录 相机 内参 && 外参5.1.2 畸变模型单目相机的成像过程5.1.3 双目相机模型5.1.4 RGB-D 相机模型 实践5.3.1 OpenCV 基础操作 【Code】OpenCV版本查看 5.3.2 图像去畸变 【Code】5.4.1 双目视觉 视差图 点云 【Code】5.4.2 RGB-D 点云 拼合成 地图【Code】 习题题…

私有云盘:lamp部署nextcloud+高可用集群

目录 一、实验准备&#xff1a; 二、配置mariadb主从复制 三台主机下载mariadb 1&#xff09;主的操作 2&#xff09;从的操作 3&#xff09;测试数据是否同步 三、配置nfs让web服务挂载 1、安装 2、配置nfs服务器 3、配置web服务的httpd 4、测试 四、web 服务器 配…

使用Jest测试Cesium源码

使用Jest测试Cesium源码 介绍环境Cesium安装Jest安装Jest模块包安装babel安装Jest的VSC插件 测试例子小结 介绍 在使用Cesium时&#xff0c;我们常常需要编写自己的业务代码&#xff0c;其中需要引用Cesium的源码&#xff0c;这样方便调试。此外&#xff0c;目前代码中直接使用…