- 博客(58)
- 收藏
- 关注
原创 凸函数(Convex functions)-- Part 1
文章目录1. 凸函数的定义2. 凸函数的性质3. 凸函数的扩展值定义4.凸函数的一阶条件5. 凸函数的二阶条件6. 如何通过Hessian矩阵判断凸性?7.常见凸函数和凹函数的例子8.下水平集 (Sublevel Sets)9.上图集 (Epigraph)10.Jensen 不等式及其扩展11.利用 Jensen 不等式来推导一些著名的不等式1. 凸函数的定义给定一个函数 f:Rn→Rf: \mathbb{R}^n \rightarrow \mathbb{R}f:Rn→R,如果函数的定义域(即 dom&
2024-10-28 11:54:06 335
原创 循环冗余校验码(Cyclic Redundancy Check,CRC)
CRC是一种基于多项式运算的高效错误检测编码方法。通过选择合适的生成多项式,CRC能够以较低的计算和传输开销,实现对数据的有效错误检测。理解CRC的技术原理有助于在实际应用中正确地实现和使用CRC算法,确保数据通信和存储的可靠性。模 2 运算是二进制中的一种运算规则,主要使用异或(XOR)操作代替加法和减法,且没有进位。模 2 乘法是普通的二进制乘法,没有进位或更高的数位。模 2 运算特别适合应用于数字通信中的错误检测、编码理论等领域,因为它能有效简化二进制数据的处理。
2024-10-20 18:03:44 1521
原创 simplexes(单纯形)
在文中,单纯形CCC是一种特殊的多面体。它由k1k+1k1个点v0v1vkv0v1vk 构成,并且这些点是仿射独立(affinely independent)的,这意味着这些点的差向量是线性独立的。仿射独立的意思是,给定的k1k+1k1个点v0v1vkv0v1vk中,任何一个点都不能通过其余kkk个点的仿射组合得到。换句话说,这些点是处在不同方向上的,它们之间的相对位置不能由低维的空间来描述。仿射组合。
2024-10-17 22:52:17 838
原创 Polyhedra(多面体)
多面体PPP是通过有限数量的线性不等式和线性等式定义的解集。Px∣ajTx≤bjj1mcjTxdjj1pPx∣ajTx≤bjj1mcjTxdjj1pxxx是变量向量。aja_jajcjc_jcj是向量,分别定义了不等式和等式的方向。bjb_jbjdjd_jdj是对应的不等式和等式的常数项。这意味着,多面体。
2024-10-16 22:29:38 1030
原创 Norm Ball(范数球) Norm Cone(范数锥)
范数球是一种有限大小的几何区域,它包含了所有符合某种范数约束的点。范数锥是一个无穷延伸的锥形区域,它通过缩放范数球形成。
2024-10-16 22:04:22 1037
原创 欧几里得球(Euclidean Ball)和椭球(Ellipsoid)
在nnn维欧几里得空间RnRn中,欧几里得球是以某个点为中心、半径为rrr的所有点的集合。开球(Open Ball)Brcx∈Rn∣∥x−c∥2rBrcx∈Rn∣∥x−c∥2r闭球(Closed Ball)B‾rcx∈Rn∣∥x−c∥2≤rBrcx∈Rn∣∥x−c∥2≤rc∈Rnc∈Rn是球的中心。∣x−c∣2∣x。
2024-10-15 22:15:44 1002
原创 超平面(Hyperplane)和半空间(Halfspace)
在nnn维欧几里得空间RnRn中,超平面是一个n−1n-1n−1维的仿射子空间。直观地说,超平面将空间划分为两个部分,是空间中的“平面”推广到高维的概念。在二维空间(R2R2)中,超平面是直线(111维)。在三维空间(R3R3)中,超平面是平面(222维)。在nnn维空间中,超平面是n−1n-1n−1维的子空间。半空间是由超平面将空间分割成的两个部分之一。具体来说,超平面将RnRn分割成两个闭的或开的半空间。
2024-10-15 22:02:26 1212
原创 锥(Cone)
也就是说,如果一个向量在锥中,那么其所有非负倍数也在锥中。中点的锥组合构成的集合。是指一个满足以下条件的集合。的向量,其中每个系数。例1:二维空间中的锥。
2024-10-14 21:43:14 707
原创 仿射包(Affine Hull)、仿射维度(Affine Dimension)、相对内部(Relative Interior)
中的点,允许进行仿射组合(即系数和为1的线性组合)所能到达的所有点的集合。它可以被看作是“拉伸”中的一个平面),但在其仿射包(这个平面本身)内,它是有内部的。的仿射维度是其仿射包的维度,即。所“占据”空间的最小维度。以填满其所在的最小平面或空间。在整个空间中没有内部(例如在。在其仿射包内的内部。作为仿射空间的维度。
2024-10-14 20:33:05 729
原创 线性子空间(Linear Subspaces)
向量空间VVV的非空子集WWW被称为VVV的一个线性子空间对于任意uv∈Wu, v \in Wuv∈W,有uv∈Wuv∈W。对于任意u∈Wu \in Wu∈W和标量c∈Rc∈R(或C\mathbb{C}C),有c⋅u∈Wc⋅u∈W。**换句话说,**线性子空间对向量加法和数乘运算是封闭的,因此它本身也是一个向量空间。线性子空间是向量空间中的“平坦”结构,必须通过原点,且对线性组合封闭。
2024-10-13 13:58:29 837
原创 仿射集合(Affine sets)
在实数向量空间中,集合AAA被称为仿射的,如果对于任意的xy∈Ax, y \in Axy∈A和任意的实数t∈Rt∈R,线性组合tx1−tytx1−ty仍然属于AAA。这意味着仿射集合包含了其任意两点的所有仿射组合。更一般地,仿射集合是包含所有有限个点的仿射组合的集合。仿射组合是指各权重之和为 1 的线性组合,即对于点x1x2xk∈Ax1x2xk∈A和实数λ1λ2λkλ1λ2。
2024-10-13 12:13:37 622
原创 对偶范数(Dual Norm)
给定一个向量空间VVV和它的范数∥⋅∥\|\cdot\|∥⋅∥,对偶范数(Dual Norm)∥⋅∥∗∥⋅∥∗是定义在V∗V^*V∗VVV的对偶空间)上的范数,用于度量对偶空间中的元素的大小。对偶空间包含作用在原始空间VVV上的所有线性函数。
2024-10-12 19:58:36 732
原创 凸函数 (Convex Function)
凸函数是指在其图像上的任意两个点之间画一条线,这条线始终不会低于函数图像。其数学定义为对于任何两个点xxx和yyy,以及λ∈01λ∈01fλx1−λy≤λfx1−λfyfλx1−λy≤λfx1−λfyeaxe^{ax}eax−logx-\log(x)−logx以及当a≥1a \geq 1a≥1时的x∣a∣x|a|x∣a∣。
2024-10-12 19:55:28 816
原创 次微分(subdifferential)
给定一个凸函数fRn→RfRn→R,在点x0x_0x0处的**次微分集(subdifferential set)**定义为满足以下条件的所有向量gggg∈∂fx0⟺fx≥fx0gTx−x0∀x∈Rng∈∂fx0⟺fx≥fx0gTx−x0∀x∈Rn这里,∂fx0∂fx0表示fff在点x0x_0x0处的次微分集。向量ggg。
2024-10-11 15:03:37 320
原创 $l_1$ 正则化问题的近端映射--软阈值函数(soft-thresholding function)
近端映射是从空间EEE到自身的单值映射,这意味着它对每个输入点x\mathbf{x}x总是返回唯一的、确定的输出点u\mathbf{u}u。这种特性在优化问题中非常有用,因为它确保了算法在每一步都有明确的更新方向,不会产生多义性。
2024-10-11 14:22:36 982
原创 Python的类全面系统学习
只读属性是指只能获取其值而不能修改其值的属性。通过使用@property装饰器,可以将一个方法定义为只读属性。示例:定义只读属性self._radius = radius # 保护属性@property@property# 创建实例# 访问只读属性print(circle.radius) # 输出: 5print(circle.area) # 输出: 78.5# 尝试修改只读属性会引发错误radius和area属性使用@property装饰器定义为只读属性。
2024-05-29 21:40:37 1237 2
原创 通过Wirtinger流进行相位恢复:理论与算法
Wirtinger流,包含通过谱方法初始化并使用类似梯度下降的新更新规则迭代地细化估计。这种方法承诺通过最少数量的随机测量实现精确的相位恢复,同时在计算和数据资源方面都具有高效性。传统方法,如Gerchberg-Saxton算法及其变体,通过迭代地应用投影,使频谱的幅度与观察数据匹配。这些方法依赖于关于信号的先验知识,并且缺乏理论上的收敛保证。Wirtinger流算法初始猜测zoz_ozo是通过计算从测量数据构建的矩阵的主特征向量得到的。使用非凸目标函数的梯度迭代地细化zzz。
2024-05-22 19:28:52 1449
原创 Gerchberg-Saxton (GS) 和混合输入输出(Hybrid Input-Output, HIO)算法
Gerchberg-Saxton (GS) 算法是一种常用于相位恢复和光学成像的迭代算法。该算法最初由R.W. Gerchberg和W.O. Saxton于1972年提出,主要用于从强度测量数据中恢复相位信息。准备输入图像的幅度信息(通常是从实验数据中获得的强度图像,取其平方根得到幅度)。初始化相位信息,通常可以设置为随机相位或者全零相位。对当前的图像(包含初始相位信息)进行傅里叶变换,得到频域图像。用实验测得的频域幅值替换频域图像的幅度,保留原相位信息。
2024-05-21 08:22:11 2397
原创 在PyQt5中创建并行线程同步输出到主窗口
在这篇博客文章中,我们将学习如何在PyQt5中创建两个线程,这两个线程将同步输出到主窗口,同时互不干扰,并在主窗口中添加一个按钮来启动这两个线程。创建一个主窗口,包含一个按钮,用于启动线程。创建两个线程类,每个线程类都包含要在线程中执行的任务。使用信号和槽机制,将线程的输出同步到主窗口。创建一个主窗口,包含一个按钮,用于启动线程。创建两个线程类,每个线程类都包含要在线程中执行的任务,并在每次任务完成后唤醒对方。使用信号和槽机制,将线程的输出同步到主窗口。
2024-05-20 10:18:34 753
原创 PyQt5中的QWaitCondition
PyQt5是一个非常流行的 Python GUI 框架,它是 Qt 库的 Python 绑定。在 GUI 应用中,多线程编程的一个重要应用是防止界面阻塞。例如,在执行长时间运行的任务(如文件下载或计算)时,如果使用主线程来执行这些任务,界面会变得无响应。通过使用多线程,可以将这些耗时操作放在后台线程中执行,保持界面的流畅性。多线程编程是指在一个程序中同时执行多个线程,以提高程序的执行效率和响应速度。线程是操作系统能够进行调度的最小单位,它们共享进程的资源(如内存),但可以独立执行。。
2024-05-19 14:50:03 958
原创 PyQt5中的QMutex
在PyQt5中,QMutex(互斥锁)用于在线程之间保护共享资源,确保同一时间只有一个线程能够访问某个特定的资源。这是通过锁定和解锁机制实现的。以下是QMutex在PyQt5中的作用与用途作用用途防止数据竞争避免多个线程同时访问和修改共享数据,确保数据一致性。保证线程安全保护多线程应用中的关键代码段,防止并发访问导致的不可预见行为。同步线程操作确保线程按照预期的顺序执行,避免操作混乱。基本使用创建QMutex对象锁定互斥锁# 访问共享资源的代码尝试锁定互斥锁# 访问共享资源的代码。
2024-05-19 14:17:30 1607
原创 PyQt5中的Column View
Column View(QColumnView)是PyQt5中的一个高级视图组件,用于显示层次化的数据结构。它将数据分成多列,每列显示一个层级的数据。当用户选择某一列中的一个项时,下一列会显示该项的子项。这样,通过连续的列展示,用户可以逐级浏览数据的各个层次。QColumnView提供了一种简洁、直观且强大的方式来展示层次化数据。无论你是在开发文件管理器、组织结构图展示工具,还是在构建需要展示多层级数据的应用程序,QColumnView都是一个非常合适的选择。
2024-05-17 15:21:29 967
原创 PyQt5中的Table view详解
二维表格数据展示:Table View 用于以行和列的形式展示数据,每个单元格可以包含文本、图像、复选框等内容。数据交互:用户可以与表格数据进行交互,例如选择单元格、编辑内容、排序和过滤数据等。在 PyQt5 中,是一个抽象基类,用于创建自定义的数据模型。它提供了处理复杂数据源(如数据库、文件、API 等)的灵活性。通过继承,可以实现自己的数据模型,并覆盖其必要的方法以提供数据和处理用户交互。要创建自定义的数据模型,需要继承方法描述返回表格的行数。返回表格的列数。返回指定索引和角色的数据。
2024-05-17 14:22:51 2754
原创 PyQt5中的Tree view
你可以创建自定义的模型来代替QFileSystemModel,例如QStandardItemModel。import sysself.setWindowTitle('自定义 Tree View 示例')# 创建自定义模型# 添加根节点# 添加子节点。
2024-05-16 11:00:52 767
原创 PyQt5 中的 List View
有时候,标准模型可能无法满足特定的需求,这时可以自定义数据模型。自定义模型需要继承自 QAbstractItemModel 类,并实现一些关键的方法,如 data()、rowCount()、columnCount() 等,以便 List View 能够正确地显示数据。# 自定义数据模型类return 1# 使用自定义模型。
2024-05-16 09:46:37 1754
原创 PyQt5多线程全面系统地学习
定义:多线程是在单个进程内运行多个线程,每个线程可以执行不同的任务。线程是操作系统调度的基本单位。共享内存空间:线程共享同一个进程的内存空间,因此可以轻松地共享数据,但这也带来了线程安全的问题。轻量级:线程比进程更轻量级,创建和销毁的开销较小。适用场景:适用于I/O密集型任务,如文件读写、网络请求等,因为这些任务往往在等待I/O操作完成时会阻塞线程,但其他线程可以继续执行。线程:使用创建和管理线程,适用于I/O密集型任务。使用LockEvent等工具进行线程同步和通信。QRunnable。
2024-05-15 16:42:31 2353
原创 PyQt5中Plain Text Edit的常用方法和常用信号
是PyQt5中的一个用于显示和编辑纯文本的组件,相比于QTextEdit,它更适用于大型文本的显示和编辑,因为它不支持富文本和HTML格式,所以在渲染大量文本时通常更高效。纯文本编辑用于纯文本的编辑和显示,不支持富文本和HTML格式,因此更适合用于纯文本文档的编辑和显示。高效渲染:相对于QTextEdit在显示大量文本时通常更高效,因为它不需要处理富文本和HTML格式。支持大型文本:由于它的高效性,适用于显示和编辑大型文本文档,如日志文件、源代码等。定制化。
2024-05-15 09:31:56 1578
原创 PyQt5编写的一个简易图像处理软件
这个界面设计采用了垂直和水平布局,使得各个组件排列有序,用户操作清晰明了,易于理解和使用。界面包含了文件路径选择、图像处理按钮、原始图片显示、处理后图片显示等功能,涵盖了基本的图像处理流程。通过按钮点击和文件路径选择,实现了用户与软件的交互,用户可以选择图片文件并进行相应的图像处理操作。用户也可以根据自己需要自行拓展功能。如果需要这个界面的源码,就帮忙点点关注,在评论区留言,我给你们私信下载链接。
2024-05-14 15:23:16 901 2
原创 PyQt5中的Tabel View
PyQt5中的TableView是一个用于显示表格数据的组件,它通常用于显示和编辑二维数据集,比如数据库查询结果、CSV文件内容等。TableView提供了一个类似于Excel表格的界面,用户可以在其中查看、编辑、排序和过滤数据。要使用TableView,你需要先创建一个数据模型(Model),通常使用Qt提供的QAbstractTableModel或者QStandardItemModel,或者你也可以自定义数据模型。
2024-05-14 09:34:23 962
原创 PyQt5中Text Edit的常用方法和常用信号
QTextEdit是PyQt中用于显示和编辑文本的强大组件之一。它提供了丰富的功能,可以显示普通文本、富文本和HTML文本,并支持各种格式的编辑和交互。以下是QTextEdit文本显示和编辑QTextEdit可以用于显示和编辑文本内容。它支持普通文本、富文本和HTML文本的显示,用户可以通过键盘输入或者通过程序动态地修改文本内容。格式化文本QTextEdit允许在文本中应用不同的字体、颜色、样式和对齐方式,以创建美观的文本布局。你可以通过设置富文本或HTML格式来实现这些效果。文本选择和操作。
2024-05-14 07:28:18 2224
原创 PyQt5中的QGraphicsView()
是PyQt5中用于显示图形场景的小部件,它提供了许多常用的方法来控制视图的行为和属性。下面是一些常用的: 设置要显示的场景。scene(): 获取当前显示的场景。: 设置对齐方式,alignment参数是Qt.AlignmentFlag类型。: 设置渲染提示,on参数表示是否启用,默认为True。: 重置视图矩阵。: 将指定的矩形区域适配到视图中。: 设置变换锚点,用于指定在缩放、旋转等操作中的参考点。设置拖拽模式,mode可以是以下之一:: 设置场景的可视区域。
2024-05-13 22:05:55 1665
原创 PyQt5的多窗口设计
1.首先新建一个窗口,把对象名改为ParentWindow,然后保存,把.ui的名字改为Main_window.ui。再新建一个窗口,把对象名改为ChildWindow1,然后保存,把.ui的名字改为child_window_1.ui。再新建一个窗口,把对象名改为ChildWindow2,然后保存,把.ui的名字改为child_window_2.ui。首先,打开这三个py文件,全部在开头导入QMainWindow的类,然后,继承这个类,如下图所示。然后,分别用PyUIC将这三个.ui文件转化为.py文件,
2024-05-12 10:39:39 935
原创 PyQt5中的QtDesigner窗口
Qt Designer 是 PyQt5 中的一款可视化界面设计工具,它允许用户通过拖放部件来设计 GUI 界面,并生成相应的代码。QtDesigner的窗口区域如下所示。
2024-05-12 07:16:04 1400
原创 PyQt5中的组件
在PyQt5中,有许多不同类型的组件,可以用于构建各种GUI界面。QWidget: 是所有用户界面对象的基类。它提供了一些基本的功能,比如事件处理和绘图。QLabel: 用于显示文本或图像。可以用于显示静态文本或者图片。: 是一个按钮组件,用于触发操作或者事件。QLineEdit: 用于接收单行文本输入。QTextEdit: 用于接收多行文本输入。QComboBox: 提供了一个下拉列表框,用户可以从中选择一个选项。QCheckBox。
2024-05-11 12:40:06 1085 1
原创 PyQt5 的对话框
PyQt5中的对话框是一种常见的用户界面组件,用于与用户进行交互并获取用户输入或确认。常见的对话框包括消息框、输入框、文件对话框、颜色对话框等。PyQt5提供了丰富的对话框类,可以满足各种不同的需求。QMessageBox(消息框):用于显示消息、警告、错误等信息,并可以包含按钮供用户进行选择。QInputDialog(输入对话框):用于获取用户输入,包括文本输入、整数输入、浮点数输入等。QFileDialog(文件对话框):用于打开或保存文件,以及选择文件或文件夹。
2024-05-11 09:38:21 936 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人