Maple与生活

2023-11-10 06:21
文章标签 生活 maple

本文主要是介绍Maple与生活,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我送你一个小矩阵~心意全在行列式里

  • 1. 引子
  • 2. 求解步骤与评价
  • 3. 最终结果
    • 3.1. 测试1
    • 3.2. 测试2

1. 引子

近来Maple技术交互研讨群(QQ836204107) 讨论一类矩阵的趣味行列式,大意是如何用矩阵行列式表达520、1314等情话数字。

之前有群友推送过一位搞量子力学的女up主作品,我看后也是由衷敬佩这位“喜欢物理的女孩”。当时我打趣说谁能构造一个行列式为1314520的大型矩阵放到她作品留言中看看能否让她关注到你。考虑到宇宙的本质是10=4+6&对称,随性编剧以下留言情境:

对10维弦论偏微分方程组作希尔伯特-薛定谔-爱因斯坦变换后所得到的卡拉比-丘流形,提取对应特征系数生成10阶矩阵。史聪闵格指出其行列式是解开时空之谜谎言的钥匙。你从万能淘宝上买到霍金老人家临终前的手稿,卖家说他当时得出答案后想起少年时一位故人以及为她在大榕树下立下的誓言,脸上流露出复杂一笑。于是有缘人把问题贴在此处,等待有缘up主解开~

M = ( 1 2 9 7 8 9 4 4 5 7 2 6 30 18 22 30 14 12 12 22 9 30 154 89 109 162 82 68 59 115 7 18 89 62 71 114 70 56 52 77 8 22 109 71 86 132 88 62 75 106 9 30 162 114 132 338 316 231 230 247 4 14 82 70 88 316 973 − 1936 − 776 − 4699 4 12 68 56 62 231 − 1936 9441 4754 20278 5 12 59 52 75 230 − 776 4754 2655 10385 7 22 115 77 106 247 − 4699 20278 10385 45621 ) M=\footnotesize\left( \begin {array}{cccccccccc} 1&2&9&7&8&9&4&4&5&7 \\\\ 2&6&30&18&22&30&14&12&12&22\\\\ 9 &30&154&89&109&162&82&68&59&115\\\\ 7&18&89&62&71&114& 70&56&52&77\\\\ 8&22&109&71&86&132&88&62&75&106 \\\\ 9&30&162&114&132&338&316&231&230&247 \\\\ 4&14&82&70&88&316&973&-1936&-776&-4699 \\\\ 4&12&68&56&62&231&-1936&9441&4754&20278 \\\\ 5&12&59&52&75&230&-776&4754&2655&10385 \\\\ 7&22&115&77&106&247&-4699&20278&10385&45621 \end {array} \right) M=12978944572630182230141212229301548910916282685911571889627111470565277822109718613288627510693016211413233831623123024741482708831697319367764699412685662231193694414754202785125952752307764754265510385722115771062474699202781038545621
d e t ( M ) = ? det(M)=? det(M)=?

问题描述:给出一个计算行列式为 N N N n n n阶对称矩阵程序。

2. 求解步骤与评价

当时群里留下问题以后我就放下手机。然而它一直困扰着我睡不着觉,等到12.过后想明白解法才有所缓解。拿起手机发现一位MMA大佬用LU分解给出做法,以下是个人思考步骤与求解过程。

step1 正常想法是构造对角矩阵,使得其行列式为 N N N,即:
V = d i a g o n a l ( λ 1 , . . . , λ n ) , ∏ i = 1 n λ i = N V=diagonal(\lambda_1,...,\lambda_n),\prod_{i=1}^n\lambda_i=N V=diagonal(λ1,...,λn),i=1nλi=N
显然,这种结果太过直白,一个因式分解加排列组合就能解决的问题,绝对无法百转千回表达藏涅在内心深处的情愫。以我19年好人、老实人的经验来判断,表达心意的矩阵一定要复杂,第一眼要给对方一脸懵逼的感觉,等Ta千辛万苦算完再送上满心万马奔腾

step2 注意到矩阵相乘下行列式具有可交换性,尝试对 V V V作相似变换能否实现目的。这是因为
d e t ( S V S − 1 ) = d e t ( V S − 1 S ) = d e t ( V ) det(SVS^{-1})=det(VS^{-1}S)=det(V) det(SVS1)=det(VS1S)=det(V)

如果能实现矩阵 S S S每个元素为整数,同时 S − 1 S^{-1} S1每个元素亦为整数,这样能保证 M M M每个元素为整数且行列式为n。出于复杂性考虑,我们期待 S ≠ I d S\not ={Id} S=Id稀疏性不能太差,最好是有一半以上非零元素)。随后我们会发现,这个想法实现起来较为繁琐。更重要的是,相似变换无法保证最终结果为对称矩阵

step3 注意到对角矩阵相合变换后仍为对称阵 ( S V S T ) T = S V S T (SVS^T)^T=SVS^T (SVST)T=SVST,进而考虑能够构造元素为整数的矩阵 S S S,使得 d e t ( S ) = ± 1 det(S)=\pm1 det(S)=±1
“任意下(上)三角型矩阵,其行列式等于对角线元素乘积”这一事实给了我们很大启发。构造下三角型矩阵 S S S,使得对角线元素在集合 { 1 , − 1 } \{1,-1\} {1,1}中随机取值,其余非零元素为指定范围下的随机整数。从而控制该矩阵一半以上元素非零保持相合变换结果矩阵的复杂性。
S = [ 1 0 ⋮ ⋱ a n 1 … − 1 ] n × n S=\begin{bmatrix} 1 & & 0\\ \vdots & \ddots \\ a_{n1} & \dots & -1 \end{bmatrix}_{n \times n} S=1an101n×n

于是我们设计如下Maple程序:

accost_matrix_generate:=proc(N::integer,n::integer:=10)local factor_seq,num,V,RP,IR,P,Sigma;RP,IR:=combinat[randperm],RandomTools[Generate]@integer:#因式分解n并转化成seq型factor_seq:=map(t->t[1]$t[2],ifactors(N)[2])[];num:=nops([factor_seq]):#转化成N个乘积为n的listif num <=n then#不足N个则补1并随机排序V:=RP([factor_seq,1$n-num]);else#超过N个则取末N-1个因子、剩下因子乘积再随机排序V:=RP([factor_seq[1-n..],`*`(factor_seq[1..num-n+1])]);end if;#构造对角线元素为{1,-1}、其余位置为随机正整数的下三角矩阵P:=Matrix(n,(i,j)->if i<j then 0 elif i=j then IR(range=-1 ..1,exclude={0}) else IR(range=1..n) end if):#构造行列式为n的对角矩阵Sigma:=LinearAlgebra[DiagonalMatrix](V,n,n):#如下型保持行列式乘积不变且生成矩阵为对称型P.Sigma.P^+;
end proc:

3. 最终结果

3.1. 测试1

#一生一世我爱你
accost_matrix_generate(1314520)

M = ( 1 2 9 7 8 9 4 4 5 7 2 6 30 18 22 30 14 12 12 22 9 30 154 89 109 162 82 68 59 115 7 18 89 62 71 114 70 56 52 77 8 22 109 71 86 132 88 62 75 106 9 30 162 114 132 338 316 231 230 247 4 14 82 70 88 316 973 − 1936 − 776 − 4699 4 12 68 56 62 231 − 1936 9441 4754 20278 5 12 59 52 75 230 − 776 4754 2655 10385 7 22 115 77 106 247 − 4699 20278 10385 45621 ) M=\left( \begin {array}{cccccccccc} 1&2&9&7&8&9&4&4&5&7 \\\\ 2&6&30&18&22&30&14&12&12&22\\\\ 9 &30&154&89&109&162&82&68&59&115\\\\ 7&18&89&62&71&114& 70&56&52&77\\\\ 8&22&109&71&86&132&88&62&75&106 \\\\ 9&30&162&114&132&338&316&231&230&247 \\\\ 4&14&82&70&88&316&973&-1936&-776&-4699 \\\\ 4&12&68&56&62&231&-1936&9441&4754&20278 \\\\ 5&12&59&52&75&230&-776&4754&2655&10385 \\\\ 7&22&115&77&106&247&-4699&20278&10385&45621 \end {array} \right) M=12978944572630182230141212229301548910916282685911571889627111470565277822109718613288627510693016211413233831623123024741482708831697319367764699412685662231193694414754202785125952752307764754265510385722115771062474699202781038545621
d e t ( M ) = 1314520 det(M)=1314520 det(M)=1314520
我把这个矩阵给一位聪明小哥哥计算时,期望他好歹花个二三十分钟再给出一个惊鸿一瞥答案。然而10秒过后他说用Maple Companion拍照就能速出答案还给我发了张图片……

3.2. 测试2

#抱抱你亲亲你一生一世我爱你
accost_matrix_generate(8807701314520)	

M = ( 31337 250696 94011 62674 156685 250696 156685 282033 313370 219359 250696 2005569 752085 501390 1253476 2005565 1253474 2256255 2506957 1754863 94011 752085 282044 188030 470073 752113 470087 846136 940133 658116 62674 501390 188030 125355 313394 501422 313397 564104 626761 438749 156685 1253476 470073 313394 783561 1253606 783491 1410313 1566906 1096867 250696 2005565 752113 501422 1253606 2005869 1253700 2256587 2507163 1755077 156685 1253474 470087 313397 783491 1253700 1153503 − 438656 − 281990 727187 282033 2256255 846136 564104 1410313 2256587 − 438656 11784270 12066079 3823582 313370 2506957 940133 626761 1566906 2507163 − 281990 12066079 12379933 4043015 219359 1754863 658116 438749 1096867 1755077 727187 3823582 4043015 1905619 ) M=\footnotesize\left(\begin {array}{cccccccccc} 31337&250696&94011&62674&156685&250696&156685&282033&313370&219359\\\\ 250696&2005569& 752085&501390&1253476&2005565&1253474&2256255&2506957&1754863\\\\ 94011&752085&282044&188030&470073&752113&470087& 846136&940133&658116\\\\ 62674&501390&188030&125355& 313394&501422&313397&564104&626761&438749\\\\ 156685& 1253476&470073&313394&783561&1253606&783491&1410313&1566906&1096867\\\\ 250696&2005565&752113&501422&1253606&2005869& 1253700&2256587&2507163&1755077\\\\ 156685&1253474& 470087&313397&783491&1253700&1153503&-438656&-281990&727187 \\\\ 282033&2256255&846136&564104&1410313&2256587&- 438656&11784270&12066079&3823582\\\\ 313370&2506957& 940133&626761&1566906&2507163&-281990&12066079&12379933&4043015\\\\ 219359&1754863&658116&438749&1096867&1755077& 727187&3823582&4043015&1905619\end {array}\right) M=313372506969401162674156685250696156685282033313370219359250696200556975208550139012534762005565125347422562552506957175486394011752085282044188030470073752113470087846136940133658116626745013901880301253553133945014223133975641046267614387491566851253476470073313394783561125360678349114103131566906109686725069620055657521135014221253606200586912537002256587250716317550771566851253474470087313397783491125370011535034386562819907271872820332256255846136564104141031322565874386561178427012066079382358231337025069579401336267611566906250716328199012066079123799334043015219359175486365811643874910968671755077727187382358240430151905619
d e t ( M ) = 8807701314520 det(M)=8807701314520 det(M)=8807701314520
虽然用Maple Companion确实可以快速输出答案,但我的程序也不能白写。拍张照片才能明白心意也算是一种浪漫,于是不甘心的我改了串更复杂的数字把矩阵发给她希望能感动到落泪~

这篇关于Maple与生活的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/380900

相关文章

生活杂记1

生命中,总有一些事需要你一生去治愈,我把这些杂记写出来,写完了就不再想了,太内耗了…hahaha~ 因为嘴馋,小时候经常去老姑家,她家有各类零食及平时很少吃的“山珍海味”。去的次数多了,就和她家附近的邻居小孩也混的熟络了。再后来上了高中去的就少了,当年七中统招线521自费线491。我刚好压自费线,举全家之力花了15000读了七中,也没争气,后面高考也一塌糊涂。高二那会,一次去老姑家做客,经

如何看待AI技术对人们生活的影响?

人工智能(AI)技术对人们生活的影响是多方面的,既有积极的一面,也存在一些需要关注的问题。以下是对AI技术在生活中影响的综合看法:   积极影响:   提高效率:AI技术在各行各业中的应用大大提高了工作效率。例如,在制造业中,AI可以优化生产流程,减少资源浪费;在服务业中,聊天机器人可以提供24小时客户服务,提高用户体验。   增强能力:AI扩展了人类的能力,使得一些复杂和危险的任务可以

HDU 2191 珍惜现在,感恩生活(多重背包)

OJ题目 : click here ~~ 题目分析:就一个多重背包,在输入的时候进行二进制拆分,接下来就与01背包一样处理了。关于二进制拆分,这里讲解的不错~ AC_CODE int v[1002] , c[1002];int dp[1002];int main(){int t;cin >> t;while(t--){int n ,m , i , j , a , b , d ,k

云服务器如何提升你的创意生活:必试有趣项目

云服务器都可以做哪些有趣的项目 云服务器因其高效、灵活和可扩展等特点,成为了越来越多人选择的开发和学习平台。如果你拥有一台云服务器,但是不知道能用它做什么有趣的项目,那么这篇文章将为你提供一些有意思的想法。 1. 个人博客/网站 一个个人博客或网站无疑是云服务器的经典用途之一。你可以使用诸如WordPress、Hexo、Ghost等博客框架来创建属于自己的网站,分享知识和生活。 示例项目

营养三餐轻松搭配:健康生活从早餐开始

在如今的快节奏生活中,健康饮食与快捷管用的减调计划,已成为了许多人关注的焦点。合理的三餐搭配不仅能帮助我们控制形体,还能提升生活质量。今天,就让我们一起来学习一套科学的三餐减调套餐,让你在享受美食的同时,也能达成减调目标。 早餐计划:营养均衡,提高吸收消耗率。 早餐是一天中很重要的一餐,营养均衡是必不可少的,但也不要忽略了早上要补充水分这项,也是很重要的一环,水是开启身体系统循环的润滑剂,特别

本地生活服务平台排名榜揭秘!如何通过搭建本地生活服务系统入局?

当前,本地生活赛道的热度不断攀升,想要通过本地生活服务商这一身份入局分羹的创业者数量更是不计其数。这让本地生活市场的竞争日渐激烈的同时,也让各类本地生活服务平台排行榜成为他们的重点关注对象。 而综合多个本地生活服务平台排行榜来看,不管具体排序情况如何,美团、抖音和快手三大平台都从未掉出前三的行列,本期,我们将从这三大平台的发展现状切入,希望能够帮助大家选到更为适合自己的本地生活服务平台。

MaPLe(论文解读): Multi-modal Prompt Learning

Comment: Accepted at CVPR2023 摘要 预训练的视觉语言模型(VL-PTMs)(比如CLIP)在下游任务中已经表现出不错的泛化能力。但是它们对输入文本提示模板的选择很敏感,需要仔细选择提示模板才能表现良好。 受到NLP领域的启发,最近的CLIP的自适应性方法开始学习提示作为文本输入,来微调CLIP以适应下游任务。本文能注意到,在CLIP的单个分支(语言或图像分支)中

不管夫妻还是情人,想要长相厮守、生活幸福美满,就这两个字!

你好,我是腾阳。 近年来,娱乐圈频传“闪婚闪离”的消息,每一次都牵动着公众敏感的神经。 从光鲜亮丽的荧幕情侣到分道扬镳的路人,他们的故事如同一面镜子,映照出现代人情感关系的脆弱与浮躁。 相比之下,那些能够在公众视野中长久保持恩爱如初的夫妻,如邓超与孙俪。 相互扶持,共同成长,在繁忙的工作之余,也不忘经营彼此的小确幸。 他们的婚姻,成为了无数人心中的榜样。 我们观察身边那些美满幸

90后不买房 你的生活会更好 20年后的房子像白菜

90后不买房 你的生活会更好 20年后的房子像白菜  理由:请不要 做啥奴了 潇洒一生行啊  拒绝背贷 当资本家的韭菜 有人说:不买房咋活  答:可以啊租房   又说:租房这么贵 20年后的钱都能买了 答:那为啥你还在那个城市工作呢 可不可以去2-3线城市生活呢 又说:为啥去2-3线啊 哪里没有那么多高工资 没啥医疗啊 答:你拿到的工资全是你的么 1w去除生活费4000吧就剩6000

同城便民信息生活小程序源码系统 求职招聘+房产出租+相亲交友 带完整的安装代码包以及搭建部署教程

系统概述 同城便民信息生活小程序源码系统是一款专为满足城市居民多元化需求而设计的综合性服务平台。该系统通过整合求职招聘、房产出租、相亲交友等核心功能模块,旨在打造一个集信息发布、查询、交流于一体的闭环生态系统。用户可以在小程序内轻松发布或浏览各类信息,实现资源的有效对接和共享,从而提升生活品质,促进社区和谐。 系统采用先进的技术架构,支持多平台运行(包括微信小程序、支付宝小程序等),确保良好的