学习笔记——矩阵(1) 02.15

在这种作业极少的美好夜晚里

听着轻音乐看看书学学东西再和心爱的姑娘说上几句

真是再美好不过了

由 m × n 个数aij排成的m行n列的数表称为m行n列的矩阵,简称m × n矩阵。记作:

这m×n 个数称为矩阵A的元素,简称为元,数aij位于矩阵A的第i行第j列,称为矩阵A的(i,j)元,以数 aij为(i,j)元的矩阵可记为(aij)或(aij)m × n,m×n矩阵A也记作Amn

加法

矩阵的加法满足下列运算律(A,B,C都是同型矩阵):

应该注意的是只有同型矩阵之间才可以进行加法

减法

数乘

矩阵的数乘满足以下运算律:

矩阵的加减法和矩阵的数乘合称矩阵的线性运算

乘法

两个矩阵的乘法仅当第一个矩阵A的列数和另一个矩阵B的行数相等时才能定义。如A是m×n矩阵和B是n×p矩阵,它们的乘积C是一个m×p矩阵  
,它的一个元素:

并将此乘积记为:

例如:

矩阵的乘法满足以下运算律:

结合律:

左分配律:

右分配律:

矩阵乘法不满足交换律。

定义矩阵重载运算符代码:

const int MAXN=1010;
const int MAXM=1010;
struct Matrix{
    int n,m;
    int a[MAXN][MAXM];
    void clear(){
        n=m=0;
        memset(a,0,sizeof(a));
    }
    Matrix operator +(const Matrix &b) const{
        Matrix tmp;
        tmp.n=n;tmp.m=m;
        for(int i=0;i<n;++i)
            for(int j=0;j<m;++j)
                tmp.a[i][j]=a[i][j]+b.a[i][j];
        return tmp;
    }
    Matrix operator -(const Matrix &b) const{
        Matrix tmp;
        tmp.n=n;tmp.m=m;
        for(int i=0;i<n;++i)
            for(int j=0;j<m;++j)
                tmp.a[i][j]=a[i][j]-b.a[i][j];
        return tmp;
    }
    Matrix operator *(const Matrix &b) const{
        Matrix tmp;
        tmp.clear();
        tmp.n=n;tmp.m=m;
        for(int i=0;i<n;i++)
            for(int j=0;j<b.m;j++)
                for(int k=0;k<m;k++)
                    tmp.a[i][j]+=a[i][k]*b.a[k][j];
        return tmp;
    }
};
时间: 2024-11-05 08:51:50

学习笔记——矩阵(1) 02.15的相关文章

Web 在线文件管理器学习笔记与总结(15)剪切文件夹 (16)删除文件夹

(15)剪切文件夹 ① 通过rename($oldname,$newname) 函数实现剪切文件夹的操作 ② 需要检测目标文件夹是否存在,如果存在还要检测目标目录中是否存在同名文件夹,如果不存在则剪切 dir.function.php 添加: //剪切文件夹 function cutFolder($src,$dst){ if(!file_exists($dst)){ return '目标目录不存在'; }else{ if(!is_dir($dst)){ return '不是目录'; }else{

工作笔记(2017/02/15)

北京时间:2017-02-15 20:58:17 农历正月十九 地点:北京市顺义区李桥镇头二营云海天公寓 今天遇到的技术难点记录如下: 1.js的splice()方法. 2.JQuery的find()方法和attr()方法. 3.Window.parent.docunment跨域问题. 4.JQuery的get()方法. 5.JQuery的toggleClass()方法. 6.MVVM模型的相关概念. 7.JavaScript的深层框架结构解析. 1.js的splice()方法. 是一个很强的数

.NET学习笔记之数据库02

1.数据冗余的问题: 1>造成了存储空间的浪费.   2>更新异常,删除异常, 所以一般情况下不允许出现表中出现数据冗余. --------------------------解决方法------------------------------------ 把原来的表中的数据拆分成多个表来存储. 当把表中信息拆分成多个表来存储的时候会出现一个问题:如何将这张表的数据关联起来? 使用主键和外键来进行关联,使用主外建就能将不同表中的数据联系起来. 什么是外键,如何通过主外键将表中的数据关联起来?

学习笔记::矩阵树定理

我很懒惰,没有理解 是这样做的 先计算每个点的度数 a[i][j]=i到j边数*-1 进行高斯消元 最后把对角线乘起来就是答案 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; #define eps 1e-9 #define N 20 int n,m; int d[N][N],c[N][N]; double a[N][N];

php基础学习笔记mysql 2(15)

php中操作数据库 <?php //1:连接数据库(系统): mysql_connect("数据库系统名/ip/地址",“用户名”,“密码”) mysql_connect("localhost", "root", ""); //mysql_connect()是php内置函数 //2:设定执行数据库操作的环境编码:这里的环境编码其实就是指当前php文件的字符编码. mysql_query("set names u

JAVA学习笔记-矩阵相加

package MyDuoWeiShuZu; public class Mycode { public static void show(int[][] c){ for(int j=0;j<c.length;j++){ for(int i=0;i<c.length;i++){ System.out.print(c[j][i]+"\t"); } System.out.println(); } } public static int[][] add(int[][] a,int[

ThinkPHP - 5 - 学习笔记(2015.4.15)

ThinkPHP __construct()和__initialize() 1.__initialize()不是php类中的函数,php类的构造函数只有__construct().2.类的初始化:子类如果有自己的构造函数(__construct()),则调用自己的进行初始化,如果没有,则调用父类的构造函数进行自己的初始化.3.当子类和父类都有__construct()函数的时候,如果要在初始化子类的时候同时调用父类的__constrcut(),则可以在子类中使用parent::__constru

【OpenGL 学习笔记02】宽点画线

我们要知道,有三种绘图操作是最基本的:清除窗口,绘制几何图形,绘制光栅化对象. 光栅化对象后面再解释. 1.清除窗口 比如我们可以同时清除颜色缓冲区和深度缓冲区 glClearColor (0.0, 0.0, 0.0, 0.0);//指定颜色缓冲区清除为黑色 glClearDepth(1.0);//指定深度缓冲区的清除值为1.0 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//指定要清除的缓冲区并清除 2.绘制几何图形 先要设置绘制颜色,

Swift学习笔记(15)--下标脚本(Subscripts)

下标脚本可以定义在类(Class).结构体(structure)和枚举(enumeration)这些目标中,使用中类似数组或者字典的用法 1.定义 定义下标脚本使用subscript关键字,语法: subscript(index: Int) -> Int { get { // 返回与入参匹配的Int类型的值 } set(newValue) { // 执行赋值操作 } } 注:newValue的类型必须和下标脚本定义的返回类型相同.与计算型属性相同的是set的入参声明newValue就算不写,在s