1图论的一个基本应用

下图描述了4个城市之间的航空航线图,

为了描述着4个城市之间航线的邻接关系,定义邻接矩阵

第i行描述从城市i出发,可以达到各个城市的情况,

可以证明,矩阵A^N表示一个人连续坐N次航班可以达到的城市,元素大小对应方法种数

例:下图描述了6个城市之间的航空航线图,带箭头线段表示两个城市之间的航线.

1若某人连续乘坐5次航班,那么他从哪一个城市出发到达哪一个城市方法最多

2若某人可以乘坐一次、二次、三次、或四次航班,那么他从哪一个城市出发总是不能达到哪一个城市

运行Test.m

%邻接矩阵
A=[0 1 0 0 0 1;0 0 1 1 0 0;0 0 0 1 1 0;0 1 0 0 0 0;1 0 1 0 0 0;0 1 0 0 1 0];
%连续乘坐5次航班
m =max(max(A^5));
[i,j] = find(A^5 == m);
fprintf('从一个城市出发到另一个城市方法最多有%d条,有:\n',m);
disp([i,j])
%可以乘坐1、2、3或4次
A = A+A^2+A^3+A^4;
[i,j] = find(A == 0);
fprintf('不能从一个城市达到另一个城市的有:\n');
disp([i,j])

2情报检索问题

假如数据库中包括了n个文件,而搜索所用的关键词有m个,关键词按字母顺序排列,我们就可以把数据库用一个mxn的矩阵A来表示,矩阵A的第j列表示第j个文件

矩阵A的第i行表示第i个关键词,矩阵A中的元素aij表示第i个关键词在第j个文件中出现的相对频率。用于检索的关键词清单用m维列向量x表示,假如检索策略中含有

i、j、k三个关键词,则让搜索向量x的第i、j、k个元素为1,其它为0。当确定了数据库矩阵和搜索向量x后,进行线性变换运算,y=A'x,y即为检索结果,数字大小对应着匹配度高低

3.MATLAB命令x=A\b

1)当方程组为适定方程组,x为方程组的唯一解

2)当方程组为欠定方程组时,x为方程组的一个特解

3)当方程组为超定方程组时,x为按照最小二乘原理得到的一组近似解

4已知向量组

请用向量u和v来线性表示向量w,并绘制向量图

易得方程组的解2u+3v=w

程序drawvec.m是一个绘制二维向量的函数

function drawvec(u)
plot([0;u(1)],[0;u(2)]);%画向量线段
hold on
theta = acos(u(1)/norm(u));%计算向量u与x轴的夹角,0<theta<pi
if(u(2) < 0)
theta = 2*pi - theta;%当u向量在第三和第四象限时,theta>pi
end
fill([u(1)-0.5*cos(theta+pi/12),u(1),u(1)-0.5*cos(theta-pi/12)],[u(2)-0.5*sin(theta+pi/12),u(2),u(2)-0.5*sin(theta-pi/12)],'black');%给向量箭头填充
hold off

程序la.m绘制了向量u和向量v线性表示向量w的几何图形,其中调用了drawvec.m

clear

close all
u=[1;2];v=[2;-1];w=[8;1];
u1 = u*2; v1= v*3;
%调用函数drawvec(),画向量
drawvec(u);hold on
drawvec(v);hold on
drawvec(u1);hold on
drawvec(v1);hold on
drawvec(w);hold on
%补虚线,将线条属性设置为虚线--
A = [u1,w];
B = [v1,w];
plot(A(1,:),A(2,:),'--k',B(1,:),B(2,:),'--r');
%显示坐标
text(A(1,1),A(2,1),['(',num2str(A(1,1)),',',num2str(A(2,1)),')'],'EdgeColor','red');
text(A(1,2),A(2,2),['(',num2str(A(1,2)),',',num2str(A(2,2)),')'],'EdgeColor','green');
text(B(1,1),B(2,1),['(',num2str(A(1,1)),',',num2str(A(2,1)),')'],'EdgeColor','blue');
axis([-2 10 -5 6]),grid on%设置坐标范围和网格线

运行la.m

线性代数与MATALB1的更多相关文章

  1. 【BZOJ-3996】线性代数 最小割-最大流

    3996: [TJOI2015]线性代数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1054  Solved: 684[Submit][Statu ...

  2. 斯坦福大学CS224d基础1:线性代数回顾

    转自 http://blog.csdn.net/han_xiaoyang/article/details/51629242 斯坦福大学CS224d基础1:线性代数知识 作者:Zico Kolter ( ...

  3. 算法库:基础线性代数子程序库(Basic Linear Algebra Subprograms,BLAS)介绍

    调试DeepFlow光流算法,由于作者给出的算法是基于Linux系统的,所以要在Windows上运行,不得不做大量的修改工作.移植到Windows平台,除了一些头文件找不到外,还有一些函数也找不到.这 ...

  4. 【BZOJ】【TJOI2015】线性代数

    网络流/最小割/最大权闭合图 2333好开心,除了一开始把$500^2$算成25000……导致数组没开够RE了一发,可以算是一次AC~ 咳咳还是回归正题来说题解吧: 一拿到这道题,我就想:这是什么鬼玩 ...

  5. OpenGLES 怎样在十天内掌握线性代数 - 希望这是真的!

    OpenGLES 怎样在十天内掌握线性代数 - 希望这是真的! 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致&q ...

  6. MIT线性代数课程 总结与理解-第一部分

    概述 个人认为线性代数从三个角度,或者说三个工具来阐述了线性关系,分别是: 向量 矩阵 空间 这三个工具有各自的一套方法,而彼此之间又存在这密切的联系,通过这些抽象出来的工具可以用来干一些实际的活,最 ...

  7. 线性代数-矩阵-【1】矩阵汇总 C和C++的实现

    矩阵的知识点之多足以写成一本线性代数. 在C++中,我们把矩阵封装成类.. 程序清单: Matrix.h//未完待续 #ifndef _MATRIX_H #define _MATRIX_H #incl ...

  8. 线性代数-矩阵-【2】矩阵生成 C和C++实现

    矩阵的知识点之多足以写成一本线性代数. 所以我们把矩阵的运算封装成矩阵类.以C++为主进行详解. 点击这里可以跳转至 [1]矩阵汇总:http://www.cnblogs.com/HongYi-Lia ...

  9. 带你领会 线性代数 微积分的本质 3blue1brown 动画效果帅出天际

    前段时间在 哔哩哔哩 上偶然发现了 3blue1brown 精美的动画,配上生动的讲解,非常适合帮助建立数学的形象思维 其中两大系列,非常值得反复观看: 线性代数的本质(Essence of line ...

随机推荐

  1. php实现快速排序

    下午练习时候,把经典排序快速排序做了,以下是我的代码 <?php /** * Created by PhpStorm. * User: Administrator * Date: 16-8-29 ...

  2. Mac OSX 下用 Homebrew 安装 MongoDB 并配置到 WebStorm 中

    1. 安装 Ruby OSX 操作系统内置 Ruby,但如果没有 Ruby,则需先输入以下命令安装能够进行多版本ruby环境安装.管理和切换的命令行工具 RVM. 1.1 安装 RVM 打开终端输入以 ...

  3. Play 内置模板标签(1.2.3版本)http://www.anool.net/?p=617

    a标签: 用来插入一个连接到控制器方法的html link.如下: #{a @Application.logout()}Disconnect#{/a}模板内容被解析后变成: <a href=&q ...

  4. Ubuntu下修改system.img 解包system.img、打包system.img

    一.准备工作:解压解打包工具,得到三个文件:make_ext4fs.mkuserimg.sh.simg2img,把它们跟要修改的 .img.ext4(或.img)文件放置到同一个目录下 二.转换源文件 ...

  5. Android studio打包APK混淆配置

    要在打包APK时加入混淆需要在Module中的buid.gradle中加入如下信息 buildTypes { release { minifyEnabled true shrinkResources ...

  6. Android——微信界面(简易版)

    前面我们简单的介绍了一下android的五大布局,那么现在我们来实践一下,写一个简单的微信界面 首先,我们新建一个weixin.xml的linnerlayout布局 我们日常使用的微信,从简单的方面来 ...

  7. (方法调配)Method Swizzling

    一.概念 方法调配:因为Objective-C是运行时语言,也就是说究竟会调用何种方法要在运行期才能解析出来.那么我们其实也可以在运行时改变选择子名称.这样我们既不需要查看到源代码,又没有必要去重写子 ...

  8. 弃用的异步get和post方法之Block方法

    #import "ViewController.h" #import "Header.h" @interface ViewController () <N ...

  9. OC数组常见操作

    // 数组存放的内容必须是NSObject对象,数组中存放的内容是有序的 // 数组打印输出在输出台是用()包括起来的 // NSArray 不可变数组 // 1.创建对象 // 初始化方法 NSAr ...

  10. NSArray数字和排序

    1.数字 int main(int argc, const char * argv[]) { @autoreleasepool { //添加空白 [NSNull null] // NSArray *a ...