首页 > 其他分享 >矩阵乘法与其运用

矩阵乘法与其运用

时间:2023-01-08 22:33:59浏览次数:53  
标签:begin end 矩阵 bmatrix 列数 递推 与其 乘法

矩阵乘法与其运用(logn递推)

规则:

1.当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。

\[\left( \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ \end{matrix} \right) * \begin{pmatrix} 1 & 2 \\ \end{pmatrix} \]

如上图所示,A的行数等于B的列数

2.矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。

3.乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。

\[A=\begin{bmatrix} {a_{1,1}}&{a_{1,2}}&{a_{1,3}}\\ {a_{2,1}}&{a_{2,2}}&{a_{2,3}}\\ \end{bmatrix} \]

\[B=\begin{bmatrix} {b_{1,1}}\\ {b_{2,1}}\\ {b_{3,1}}\\ \end{bmatrix} \]

\[C=A*B= \begin{bmatrix} {a_{1,1}*b_{1,1}+a_{1,2}*b_{2,1}+a_{1,3}*b_{3,1}}\\ {a_{2,1}*b_{1,1}+a_{2,2}*b_{2,1}+a_{2,3}*b_{3,1}}\\ \end{bmatrix} \]

有了矩阵我们可以干嘛呢?

不可以能出门买菜还要用矩阵吧

本人学识浅薄,目前只了解一些应用,浅谈一下

在O(logn)时间复杂度推递推式

我们以最简单的递推式斐波那契为例子

\[f[i]=f[i-1]+f[i-2] \]

如果扩展一下

\[\begin{cases} \quad \text{f[i]=f[i-1]+f[i-2]} \\ \quad \text{f[i-1]=f[i-1]+0*f[i-2]}\\ \end{cases} \]

为什么要这样扩展呢?

这样可以适配矩阵乘法

\[\begin{bmatrix} {f[i-1]}\\ {f[i-2]}\\ \end{bmatrix} * \begin{bmatrix} {1}&{1}\\ {1}&{0}\\ \end{bmatrix} = \begin{bmatrix} {1*f[i-1]+1*f[i-2]}\\ {1*f[i-1]+0*f[i-2]}\\ \end{bmatrix} = \begin{bmatrix} {f[i]}\\ {f[i-1]}\\ \end{bmatrix} \]

这样就把递推变成矩阵乘法

为什么要这样变成矩阵呢,直接推不好吗,矩阵有什么好处呢?

我们可以很容易的发现之前是两个递推式中的数相加得到第3个

而矩阵中是递推矩阵中的一个乘上一个常量矩阵

在斐波那契中我们可以用下面的式子

\[\begin{bmatrix} {f[0]}\\ {f[1]}\\ \end{bmatrix} * \begin{bmatrix} {1}&{1}\\ {1}&{0}\\ \end{bmatrix}^n \]

快速算出f[n]与f[n+1]

如何快速算常数矩阵

\[ \begin{bmatrix} {1}&{1}\\ {1}&{0}\\ \end{bmatrix}^n \]

考虑快速幂O(logn)

完结撒花~~~~

标签:begin,end,矩阵,bmatrix,列数,递推,与其,乘法
From: https://www.cnblogs.com/hfjh/p/17035596.html

相关文章

  • python打印乘法口诀、加法口诀、减法口诀,复制到EXCEL直接打印
    #乘法口诀forxinrange(1,10):foryinrange(1,x+1):print(f'{y}x{x}={x*y}',end='\t')print()print('\n')#加法口诀forxinrange(1,10......
  • 多项式乘法(FTT、NTT),但主要是习题
    诈尸。摆了一个多月没写boke的BE是屑。基础知识/模板因为太屑了所以就直接放巨佬们的博客力。快速傅立叶变换[学习笔记&教程]信号,集合,多项式,以及各种......
  • 矩阵点积
    -以下是用js做了一个矩阵点积的计算:矩阵点积:计算行和列之间的乘积之和,也叫矩阵乘积 第一个矩阵的列数必须等于第二个矩阵的行数。如果第一个矩阵的维度是(m×n),则需要......
  • 十六进制加法、乘法表
    1+1=21+2=3  2+2=41+3=4  2+3=5  3+3=61+4=5  2+4=6  3+4=7  4+4=81+5=6  2+5=7  3+5=8  4+5=9  5+5=A1+6=7  2+6=8  3+6=9  ......
  • 七进制加法、乘法表
    1+1=21+2=3  2+2=41+3=4  2+3=5  3+3=61+4=5  2+4=6  3+4=104+4=111+5=6  2+5=103+5=114+5=125+5=131+6=102+6=113+6=124+6=135+6=146+6=......
  • Python 6种打印99乘法表的方法详解!
    python如何打印99乘法表?在Python中,打印99乘法表的方法有很多种,比如:for-for、while-while、while-for等,本文为大家介绍6种打印99乘法表的方法,快来学习一下吧。1、使......
  • 【集合】LeetCode 73. 矩阵置零
    题目链接73.矩阵置零思路1遍历矩阵,分别使用集合row和column记录值为0的行和列。最后将row和column所记录的行和列置为零。空间复杂度:\(O(m+n)\)代码1cla......
  • 动态规划 全1子矩阵
    题面 数组含义:dp[i][j]位于(i,j)的元素向左延长的长度状态转移:minn=min(dp[k][j],minn)向上遍历,加入满足最小长度的矩形代码: #include<iostream>#include<cstdi......
  • 深度学习随笔[tensorflow] 多维矩阵的乘法
    ​​最新openCV-Python安装教程(python:3.9||opencv-python:4.5.5)_Mr.zzc的博客​​pycharm导入opencv后无智能提示-知乎​​ 版本问题,选择3.4.14.51可以,选择3.4.18.65不行......
  • 常数比较小码量不大的 MTT(4次FFT)/任意模数多项式乘法
    先根据Prean的题解写出一个常数较小的5次FFT写法。inlinellget(constdoublex){return(ll(x+0.5))%mod;}inlinevoidMTT(constint*A,constint*B,int*C,......