基于Matlab的数学建模学习笔记(1)

小序言

浅谈对用Matlab进行数学建模的认识

  • Matlab是一个功能强大的软件,它可以处理工程上十分复杂的问题,用它建模绰绰有余,但也给初学者造成了一个问题:学习的时候不能把握Matlab的哪些操作是建模能用到的,所以,我选择从数学模型教学而非Matlab教程入手,争取做到效率最高。比较幸运的是,我找到了一个符合自己口味的教学课程(文章结尾安利)。
  • 数学建模本质上和初高中的应用题差不多,无非是条件复杂了并加入了“科研”的味道,所以它仍然是有迹可循的,而目前我认为,入门数学建模的最好方法就是先学习基本模型,它是建模中的“1+1=2”
  • 学习前听说许多语言都可以建模,例如Python、R等,之所以选择Matlab还是因为觉得它比较专业吧,自己是学工程的,将来可能也用得上。

知识点

层次分析法的预备知识

Matlab的基础操作

  1. 批量注释语句 Ctrl+R
    在这里插入图片描述

  2. 批量取消注释语句 Ctrl+T
    在这里插入图片描述

  3. 清空命令行窗口 clc

  4. 清空储存的变量 clear

  5. 设E为一矩阵,E(:)是从第一列开始,按顺序首尾相接,把一个大矩阵连成一个长长的列向量
    基于Matlab的数学建模学习笔记(1)_第1张图片

  6. 设E为一矩阵,E([2,5];:)是取第二行第五行的所有元素,E(2:5;:)是取第二行第五行的所有元素

  7. Matlab里生成等差数十分容易:“A:B:C”,A为起始值,B为步长,C为终止值

  8. 取元素或者生成等差数的时候,end可以起到代替最后一行的作用,例:A(2:end,:) % 取第二行到最后一行

  9. 矩阵与常数比大小的判断运算(大于 小于 等于)
    -对于此用法我理解为:逻辑运算,就像C语言里面一样,真则为1,假则为0。例如A为矩阵,A>2 ,则A中元素大于2的变成1,小于2的变成0。
    -这个用法配合find函数,可以用来寻找特定值或特定范围的数。基于Matlab的数学建模学习笔记(1)_第2张图片

Matlab中的基础函数

  1. 输出函数 disp()
    -括号里的单双引号不做区分
    -加不加分号无所谓,反正都会显示结果
    -输出的东西只能是字符串

  2. 数字转换为字符串函数 num2str()

  3. 拼接字符串函数 strcat()
    -strcat(‘A’,‘B’,‘C’…)

  4. 输入函数 input()
    -A = input(‘请输入A:’);

  5. 求和函数 sum()
    -对行(列)向量操作时,sum函数就是直接把所有元素加起来就完事了
    -对矩阵操作时,由于Matlab里的矩阵默认按列储存,所以设A为一矩阵,则sum(A)和sum(A,1)均为按列求和,得到行向量;而sum(A,2)是按行求和得到一个列向量

  6. 求积函数 prod()
    -这玩意的用法和sum()的用法一样,不赘述。

  7. 求矩阵大小函数 size()
    -设A为2行3列的函数,则[r,c]=size(A)运行后,r=2,c=3;若r = size(A,1) 就只返回行数,若c = size(A,2)就只返回列数

  8. 矩阵拼接函数 repmat()
    -设A 为一矩阵,B=repmat(A,m,n)表示B 由m*n个A平铺而成

  9. 查找位置函数 find()
    -返回向量或矩阵中不为0的元素的位置索引 。若为向量,无论行向量还是列向量,均看作列向量返回位置;若为矩阵,则按照E(:)的规则,并成长长的列向量,再返回位置
    基于Matlab的数学建模学习笔记(1)_第3张图片
    (更多find函数用法请到博客:Matlab 之 find()函数)

Matlab中对矩阵的运算

  1. 求逆矩阵 inv(B)
  2. 两个同型矩阵对应位置元素相乘(区分于矩阵之间的乘)A.*B
  3. 两个同型矩阵对应位置元素相除(区分于矩阵之间的除)A./Binf表示分母为0时的无穷
  4. 设C为一常数,A为一矩阵,则A与C之间的“点乘”、“点除”与“乘”、“除”效果一样,都直接作用到每个元素上
  5. A为一矩阵,A的每个元素各自平方必须用“.^”,例:A .^ 2
  6. 求矩阵特征值 E=eig(A):A的特征值构成列向量E,若写[V,D]=eig(A),则矩阵V的每一列为特征向量,矩阵D 为对角阵,对角上的元素即为特征值
    基于Matlab的数学建模学习笔记(1)_第4张图片

–本人萌新,此文章仅作为学习笔记,Matlab的知识点网上一找一大片,只不过我写的都是“层次分析法”能用到的,不多不少刚刚好。如有错误,还望各位朋友不吝赐教!

–层次分析法的内容下次再写吧,我得动手操作一遍有了心得再写,要不效果不好容易白给。

– 现在网上知识爆炸,B乎上的各种教学接踵而至,但想找到高质量的内容不是一件容易的事,有时候不是怕为了知识花钱,而是怕买了不值得的课程浪费时间,毕竟大家的时间都是越来越宝贵的,所以我真诚的推荐入门Matlab数学建模的朋友们了解一下清风老师的课,老师的课以模型为入手点,密度很大,综合的去讲模型、代码、应用三方面知识,基本上好好听完、做做笔记,这个模型连带着编程就都差不多掌握了,每节的课后作业也可以发给老师去检查改正(我还没试过QWQ),目前我感觉清风老师的课是市面上比较良心的了(虽然其他的我也没买过,但是从视频里可以感受到老师的负责与认真),另外,买课之后的赠送资料是十分丰厚的:可供学习的代码、专题课、与本节有关的获奖论文、流程图等,都是需要花大量的时间整理才有的东西,一举两得,何乐而不为?

—当然,大家决定之前可以看看试听课,我就是这么入坑的【强烈推荐】清风:数学建模算法、编程和写作培训的视频课程以及Matlab等软件教学
这两个是清风老师的配套视频,可以看看感受一下适不适合自己:
作业讲解视频
论文写作小技巧分享
–课程也不算贵,想了解的朋友微信关注[数学建模学习交流],后台回复“买”就可以吧~
基于Matlab的数学建模学习笔记(1)_第5张图片
基于Matlab的数学建模学习笔记(1)_第6张图片

你可能感兴趣的:(学习笔记,matlab,数学建模)