《Python数学建模算法与应用课件》03第3章 线性代数模型.pptx

《Python数学建模算法与应用课件》03第3章 线性代数模型.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共105页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第3章线性代数模型

目录3.2矩阵的奇异值分解及应用3.1特征值与特征向量

线性代数是处理矩阵和向量空间的数学分支,在很多实际领域都有应用。本章主要结合斐波那契数列、莱斯利模型和PageRank算法,介绍特征值和特征向量的应用。最后给出奇异值分解在推荐算法和图像压缩中的应用。

3.1特征值与特征向量

3.1.1差分方程

#程序文件ex3_1_1.pyimportsympyasspsp.var(k,positive=True,integer=True)a=sp.Matrix([[0,1],[1,1]])val=a.eigenvals()#求特征值vec=a.eigenvects()#求特征向量P,D=a.diagonalize()#把a相似对角化ak=P@(D**k)@(P.inv())F=ak@sp.Matrix([1,1])s=sp.simplify(F[0])print(s);sm=[]foriinrange(20):sm.append(s.subs(k,i).n())print(sm)

#程序文件ex3_1_2.pyimportsympyasspsp.var(t,c1,c2)t0=sp.solve(t**2-t-1)#求解特征方程eq1=c1+c2-1eq2=c1*t0[0]+c2*t0[1]-1s=sp.solve([eq1,eq2])print(c1=,s[c1]);print(c2=,s[c2])

解法三:直接利用Python软件求解。#程序文件ex3_1_3.pyimportsympyasspsp.var(k);y=sp.Function(y)f=y(k+2)-y(k+1)-y(k)s=sp.rsolve(f,y(k),{y(0):1,y(1):1})print(s)

3.1.2莱斯利(Leslie)种群模型

计算的Python程序如下:#程序文件ex3_2.pyimportnumpyasnpimportsympyassp?X0=np.array([500,1000,500])L=np.array([[0,4,3],[0.5,0,0],[0,0.25,0]])X1=L@X0;X2=L@X1#@表示矩阵乘法X3=L@X2?Ls=sp.Matrix([[0,4,3],[sp.Rational(1,2),0,0],[0,sp.Rational(1,4),0]])#符号矩阵sp.var(lamda)#定义符号变量p=Ls.charpoly(lamda)#计算特征多项式w1=sp.roots(p)#计算特征值w2=Ls.eigenvals()#直接计算特征值v=Ls.eigenvects()#直接计算特征向量print(特征值为:,w2)print(特征向量为:\n,v)P,D=Ls.diagonalize()#相似对角化Pinv=P.inv()#求逆阵Pinv=sp.simplify(Pinv)cc=Pinv@X0print(P=\n,P)print(c=,cc[0])

3.1.3PageRank算法

1.PageRank原理

2.基础的PageRank算法

计算的Python程序如下:#程序文件ex3_3.pyimportnumpyasnpfromscipy.sparse.linalgimporteigsimportpylabasplt?L=[(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,1),(5,6),(6,1)]w=np.zeros((6,6))#邻接矩阵初始化foriinrange(len(L)):w[L[i][0]-1,L[i][1]-1]=1r=np.sum(w,axis=1,keepdims=True)P=w/r#这里利用矩阵广播val,vec=eigs(P.T,1);V=vec.realV=V.flatten();#展开成(n,)形式的数组V=V/V.sum();print(V=,np.round(V,4))plt.bar(range(1,len(w)+1),V,width=0.6,color=b)plt.show()

3.随机冲浪模型的Pa

文档评论(0)

gcmguochunming + 关注
实名认证
内容提供者

高级工程师持证人

小小的人

领域认证该用户于2025年07月19日上传了高级工程师

1亿VIP精品文档

相关文档