# math_model_programm **Repository Path**: BugPeddle/math_model_programm ## Basic Information - **Project Name**: math_model_programm - **Description**: 存放数学建模比赛的程序代码 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-09-22 - **Last Updated**: 2024-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README --- output: pdf_document: path: ./README.pdf --- --- ## 说明 这个仓库用来存放写完的python代码 ## 1. - 目前在没有约束条件的情况下,Loss可以非常小,要多小有多小,但是还没有考虑好怎么把**每行至多有两个元素不为零**的约束条件加上去。这个留作明天的考虑。 - 目前没有考虑计算复杂度,这个留个瑄来做,应该实现起来不算特别难。 - 一种新的想法:使用马可夫过程进行强化学习,让矩阵成为一个智能体,矩阵的变换成为智能体的决策,环境是其他矩阵因子和标准的DFT矩阵,惩罚函数是Loss,如何考虑决策模型? - **算法结束的条件需要重新设计一下** ## 2. - 感觉是掉进了局部极小值出不来了,或者就是步子太大漫无目的地乱走产生振荡,针对这两个方面的问题:想办法设计新的奖励函数形式,让它在前期舍得花时间去探索。 - 使用第一问的办法,即先在浮点数情况下使用梯度下降求一个最接近的连乘值,然后对这个连乘值进行量化,量化的单位应该有$2^{q-1}$种,可以考虑一种精度最高同时复杂度最小的方法,因此,第二问转化为:在已知浮点矩阵列${A_{i}}$的情况下,求一个常数$\alpha$,使得$\displaystyle\min_\alpha[\Pi_{i=1}^{K}\mathcal{Q}(\alpha A_i)-M_{DFT}]$,同时保证计算复杂度$\mathcal{C}[\Pi_{i=1}^{K}\mathcal{Q}(\alpha A_i)]$尽量小 - 量化函数没有梯度,使用平方平均逼近函数求解它的近似,以近似函数的梯度作为量化函数的梯度,具体方法如下: 设定义在$(0,2^q)=(0,65536)$上的全体多项式函数空间为$V$,一组向量$\mathbf{\phi}(x)=\{\phi_i(x)\}=\{1,x,x^2,x^3,...,x^k\}$是这个空间中的一组基,使用Schmidt正交化方法将这组基规范为正规正交基,向量的内积定义为: $$ <\phi_i,\phi_j>=\int_0^{65536}\phi_i(x)\cdot\phi_j(x){\mathrm d}x $$ 向量的模长定义为: $$ ||\phi_i||=\sqrt{<\phi_i,\phi_i>} $$ 再求Schmit正交化方法: $$ \begin{aligned} \varphi_1&=\phi_1\\ \varphi_2&=\phi_2-\frac{<\phi_1,\phi_2>}{||\phi_1||^2}\phi_1\\ \varphi_3&=\phi_3-\frac{<\phi_1,\phi_3>}{||\phi_1||^2}\phi_1-\frac{<\phi_2,\phi_3>}{||\phi_2||^2}\phi_2\\ &\vdots\\ \varphi_k&=\phi_k-\sum_{j=1}^{k-1}\frac{<\phi_j,\phi_k>}{||\phi_k||^2}\phi_k \end{aligned} $$ 得到的向量序列$\mathbf{\varphi}=\{\varphi_1,\varphi_2,\cdots,\varphi_k\}$便是这个空间的一组正交基,对这组正交基使用归一化后得到正规正交基,即: $$ \begin{aligned} \gamma_1&=\varphi_1/||\varphi_1||\\ \gamma_2&=\varphi_2/||\varphi_2||\\ \gamma_3&=\varphi_3/||\varphi_3||\\ &\vdots\\ \gamma_k&=\varphi_k/||\varphi_k|| \end{aligned} $$ 使用这组正规正交基可以在**几乎处处**以**任意精度**拟合这个函数空间内的全体函数。 给定某定义在$(0,65536)$上的函数$f(y)$,将该函数向空间中的正规正交基集合投影,可得: $$ \begin{aligned} a_1&=\\ a_2&=\\ &\vdots\\ a_k&=\\ \end{aligned} $$ 该函数在平方平均意义下的最佳逼近即为: $$ f(x)=\sum_{i=1}^{k}a_ix^i $$ 需要注意的是,这个逼近方法比Taylor展开在平方平均意义上更加逼近,Taylor展开是**点态**的逼近,而这个函数是**几乎处处**的。 **瑄你需要做的是** 已知函数: $$ f(x)=\left\{ \begin{aligned} 0&,&0<|x|< 2^0\\ 2^0&,&2^0<|x|< 2^1\\ 2^1&,&2^1<|x|< 2^2\\ &\vdots&\\ 2^{i-1}&,&2^{i-1}<|x|< 2^i\\ &\vdots&\\ 2^{q-1}&,&2^{q-1}<|x|< 2^q\\ \end{aligned} \right. $$ 其中,$q=16,i=1,2,\cdots,q$,是一个非常麻烦的分段函数,也是我们需要使用的量化函数,将这个函数在平方平均意义下,求最佳逼近函数: $$ g(x)=\sum_{i=1}^ka_ix^i $$ 这里可以取k等于3或者4或者5,你选一个逼近值最小的,可以使用matlab编程等实现,今天晚上之前必须出结果。 ### 大纲 论文分为以下部分: 题目复述、原理假设、解题过程,结论,如果余力可以考虑稳定性分析、显著性分析或者优化,目前来看我们是来不及的了 1. 题目复述,用自己的话将原始题目的意思重新表达一下,提取题目中的关键信息,不要照抄原文。 2. 原理假设:我来做这部分。 3. 解题过程:瑄知道一些,可以根据画图的过程来写,我马上开始弄这一部分。 4. 结论:再说