matlab入门—数值计算

matlab的所有运算都是基于矩阵进行的,matlab中大多数数据几乎都是矩阵。在下面的介绍中主要从这几个方面介绍matlab基本的数值计算指令:
1.矩阵的创建
2.矩阵的运算
3.多项式的运算
4.线性插值

1.矩阵的创建

matlab中矩阵的创建主要有两种方式:
1.通过直接输入矩阵数据创建
2.通过调用矩阵创建函数创建

1.通过直接输入矩阵数据创建:
这是创建matlab矩阵最为常见的方式,直接输入的数据必须包括在[ ]中,数据间用空格或者逗号分隔,不同行的数据必须用分号分隔,矩阵中的每个元素可以是表达式,实数,复数等如:
(1)输入1×5的行矩阵,并赋给a:
用空格作为每行不同列数据之间的分隔符:

>> a=[1 2 3 4 5]a =1     2     3     4     5

用“,”作为每行不同列数据之间的分隔符:


>> a=[1,2,3,4,5]a =1     2     3     4     5

(2)创建2×3的行矩阵,并赋给a:

>> a=[2,3,4;1,5,7]a =2     3     41     5     7
>> b=[1,6+7i,5;2,7.5,8]b =1.0000             6.0000 + 7.0000i   5.0000          2.0000             7.5000             8.0000        

2.通过调用矩阵函数创建:
常用的矩阵创建函数如下:
rand(m,n)——————创建m行n列的随机矩阵
eye(m,n)——————-创建m行n列的单位矩阵
ones(m,n)—————–创建m行n列的全1矩阵
zeros(m,n)—————–创建m行n列的全零矩阵
另外还有稀疏矩阵、对角矩阵、魔方矩阵函数等,不一一举例。

>> rand(3,4)ans =0.8147    0.9134    0.2785    0.96490.9058    0.6324    0.5469    0.15760.1270    0.0975    0.9575    0.9706
>> eye(3,3)ans =1     0     00     1     00     0     1
>> ones(2,3)ans =1     1     11     1     1
>> zeros(3,2)ans =0     00     00     0

3.矩阵的元素的修改
矩阵的元素可以通过索引的方式来修改,比如创建了一个3×3的随机矩阵a,现在想修改矩阵中第三行第3列的元素,将之修改为8,则可以通过a(3,3)=8来修改(注意,matlab的行列下标都是从0开始的,这一点不同于其他高级语言),具体过程如下:

>> a=rand(3,3)a =0.9572    0.1419    0.79220.4854    0.4218    0.95950.8003    0.9157    0.6557>> a(3,3)=8a =0.9572    0.1419    0.79220.4854    0.4218    0.95950.8003    0.9157    8.0000

2.矩阵的运算

矩阵的运算类型比较多,常见的有:
矩阵的+、-、×、乘方、转置、左右上下翻转、求逆矩阵、求对角矩阵、矩阵开方、求矩阵的特征值和对角矩阵等,还有矩阵的数组运算等等。下面从一一介绍:
1.矩阵的+、-、×、乘方运算
(1)+、-运算
矩阵的+、-运算,要求参与运算的矩阵A与B必须有相同的行数和列数,在进行运算时,A与B两个矩阵对应位置上的元素各自相加得到最终结果,如果是单独的一个标量c与矩阵相加,则结果为该矩阵各个位置上的数各自加上该标量后的一个矩阵,具体如下。
两个矩阵A和B相加:

>> A=rand(2,2)A =0.0357    0.93400.8491    0.6787>> B=ones(2,2)B =1     11     1>> A+Bans =1.0357    1.93401.8491    1.6787

矩阵A和一个标量5相加:

>> AA =0.0357    0.93400.8491    0.6787>> A+5ans =5.0357    5.93405.8491    5.6787

(2)矩阵×运算
矩阵A与B相乘时,A矩阵的列数必须等于B矩阵的行数才能相乘。其数学过程与意义不赘述。

>> AA =0.0357    0.93400.8491    0.6787>> BB =1     11     1>> A*Bans =0.9697    0.96971.5279    1.5279

(3)矩阵乘方运算
矩阵的乘方运算,可以用A^b来表示,如果A表示矩阵,b表示一个标量,则表示b个矩阵进行矩阵乘法,如果A和b都表示矩阵,则运算无意义。

>> AA =0.0357    0.93400.8491    0.6787>> b=2b =2>> A^bans =0.7944    0.66730.6067    1.2538

2.矩阵的数组运算
矩阵的数组的运算,用带“.”的运算符来进行运算,比如”.*”、”./”、”.^”等。矩阵的数组运算要求进行运算的矩阵数组A与B必须具备同样的维数大小,否则不能进行运算。
其运算结果为数组A与B的对应位置的数进行相应的*、/、^等运算,结果返回一个与A、B同等大小的数组。

 A=rand(2,3)A =0.7547    0.6797    0.16260.2760    0.6551    0.1190>> B=rand(2,3)B =0.4984    0.3404    0.22380.9597    0.5853    0.7513>> A.*Bans =0.3761    0.2314    0.03640.2649    0.3834    0.0894>> A./Bans =1.5143    1.9969    0.72660.2876    1.1193    0.1584
>> c=[1 2 0;1 1 1]c =1     2     01     1     1>> A.^cans =0.7547    0.4620    1.00000.2760    0.6551    0.1190

3.矩阵的其他运算
matlab中的矩阵运算除了以上的常用运算以外,还有不少的运算,这些运算大多是通过特定函数来实现的。
inv()——————求矩阵的逆矩阵
eig()—————-求矩阵的特征矩阵
det()——————求矩阵的行列式值
sqrt()—————–求矩阵的开方
diag()—————–求对角矩阵
‘———————求矩阵的转置
rot90()—————-将矩阵翻转90度
fliplr()—————–左右翻转
flipud()—————-上下翻转
tril()——————–抽取主下三角形
triu()——————–抽取主上三角形
reshape()—————实现矩阵的变维

>> a=magic(3)a =8     1     63     5     74     9     2>> inv(a)ans =0.1472   -0.1444    0.0639-0.0611    0.0222    0.1056-0.0194    0.1889   -0.1028>> det(a)ans =-360>> diag(a)ans =852>> sqrt(a)ans =2.8284    1.0000    2.44951.7321    2.2361    2.64582.0000    3.0000    1.4142>> eig(a)ans =15.00004.8990-4.8990>> a'ans =8     3     41     5     96     7     2>> aa =8     1     63     5     74     9     2>> rot90(a)ans =6     7     21     5     98     3     4>> fliplr(a)ans =6     1     87     5     32     9     4>> flipud(a)ans =4     9     23     5     78     1     6>> tril(a)ans =8     0     03     5     04     9     2>> triu(a)ans =8     1     60     5     70     0     2>> reshape(a,9,1)ans =834159672

3.多项式的运算

matlab中将多项式用其系数组成的向量来表示,从左到右依次表示多项式高阶系数到低阶系数。比如,4x^3+5x^2+6x+5可以表示为p=[4 5 6 5]。为了能够将这种向量化的多项式表示形象的表示成我们熟悉的多项式形式,如4x^3+5x^2+6x+5这种形式,可以用poly2str(p,’x’)将相应的向量表示成人们熟悉的数学表达形式。其中P代表多项式的向量,’x’表示我们要采用的未知数。当要对一个多项式表达式求根时,可以用roots(p)来对多项式求根,返回其求根结果。可以用poly(roots)从roots()函数求得的根中还原到原函数。matlab中还提供了polyder(p)函数求多项式的导数。

>> p=[4 5 6 5]p =4     5     6     5>> poly2str(p,'x')ans =4 x^3 + 5 x^2 + 6 x + 5>> roots(p)ans =-1.0000          -0.1250 + 1.1110i-0.1250 - 1.1110i>> poly(roots(p))ans =1.0000    1.2500    1.5000    1.2500
>> s=polyder(p)s =12    10     6>> poly2str(p,'x')ans =4 x^3 + 5 x^2 + 6 x + 5>> poly2str(s,'x')ans =12 x^2 + 10 x + 6

4.线性插值

在实际应用中,常常需要根据一些离散的数据点来估计出这些离散点之间的关联,以便用这种规律去预测后面的数据,这种运算称之为拟合,matlab中提供了polyfit(x,y,count)来进行,x,y表示要进行拟合的x与y坐标数据,count表示用最高次数为几次的多项式来拟合数据。polyval(p,x)提供了拟合后的函数进行计算的函数。拟合操作很方便,但是有时候在两个间隔的点之间,如果想要得到两点之间符合其他段多项式运算规律的数据的话,就要进行插值运算,在间断的两点之间模拟出相应的函数关系,据此推断出间断点之间的数据。matlab中包括interp1、interp2、spline三种插值操作,前两种分别表示一、二次插值,最后一种表示3次样条插值。
利用已知数据进行拟合:

>> x0=0:0.1:1;
>> y0=[-.447 1.978 3.11 5.25 5.02 4.66 4.01 4.58 3.45 5.35 9.22];
>> p=polyfit(x0,y0,3);
>> x=0:0.01:1;
>> y=polyval(p,x);
>> plot(x,y,'-b',x0,y0,'ro')

matlab入门---数值计算相关推荐

  1. pagerank算法实现matlab,Matlab 入门及PageRank算法求解.ppt

    Matlab 入门及PageRank算法求解 矩阵运算 + 矩阵加 - 矩阵减 * 矩阵乘 / 矩阵左除 \ 矩阵右除 ^ 矩阵幂 维数相同才能加减:方 阵才能求幂. 注意左乘,右乘. a\b?求a* ...

  2. 收藏 |7本 Matlab入门经典教程书籍,不可错过!

    收藏 |7本 Matlab入门经典教程书籍,不可错过! Matlab的教程琳琅满目,一不小心就选的眼花缭乱. 选择Matlab参考书最关键的一点,就是参考书和自己目前能力要相匹配.选的参考书过于简单或 ...

  3. matlab app设计步骤_1.1数学建模与MATLAB–MATLAB入门

    1.1数学建模与MATLAB–MATLAB入门 关注本专栏,继续分享数学建模与MATLAB知识 一.MATLAB是什么? MATLAB 是目前在国际上被广泛接受和使用的科学与工程计算软件.虽然 Cle ...

  4. 线性代数实践及MATLAB入门

    [书名]线性代数实践及MATLAB入门 [作者]陈怀琛,龚杰民 编著 [ISBN]978-7-121-07223-9 [出版社]电子工业出版社 [出版日期]2009年1月 [内容简介] 本书第1版是根 ...

  5. Matlab 入门教程

    入门教程 Getting started Matlab入门教程音频:00:0002:09 Matlab软件介绍 Matlab software introduction Matlab和Mathemat ...

  6. matlab入门之旅,MATLAB 入门之旅学习笔记

    MATLAB 入门之旅学习笔记 https://matlabacademy.mathworks.com/R2019a/cn/portal.html?course=gettingstarted 1.概述 ...

  7. matlab在大气科学,MATLAB入门在大气科学中的应用学术沙龙活动圆满成功

    2010年4月12日上午,在我所研究生部的大力支持下,大气科学常用数据分析软件系列学术沙龙讲座在研究生公寓一层会议室拉开帷幕.本活动宗旨是激发学生们的学习热情和学习动力,促进学生间的相互了解,加强课题 ...

  8. matlab 有一函数 _写一程序_输入自变量的值_输出函数值.,第2讲 MATLAB入门1_数学建模_ppt_大学课件预览_高等教育资讯网...

    数学建模与数学实验 MATLAB入门数学建模及其基于 MATLAB的实现辽宁工程技术大学理学院应用数学系 MATLAB作为线性系统的一种分析和仿真工具,是理工科大学生应该掌握的技术工具,它作为一种编程 ...

  9. matlab入门精讲 【官方资料精简而来,确保全面】

    matlab入门精讲 learn_matlab_zh_CN.pdf             Matlab快速入门[本文取于此书] matlab_3d_visualize_zh_CN.pdf      ...

  10. 8 精通matlab入门求微分方程组的通解特解数值解看这篇文章就够了

    %% 学习目标:使用MATLAB求解常微分方程 通解 特解 数值解 %% 求微分方程的通解 clear all; f1=dsolve('Dy-y=sin(x)') %默认情况下以t为自变量求解 求出的 ...

最新文章

  1. FPGA之道(84)功能仿真之Verilog Test Fixture
  2. Android学习笔记--动画特效
  3. linux小窍门──设置时钟和时间
  4. 【图像分割应用】医学图像分割(一)——脑区域分割
  5. [日常折腾之码上归一]多种编程语言打印当前系统时间
  6. ICCV 2017 《Chained Cascade Network for Object Detection》论文笔记
  7. ES6基础2(块级作用域、数组对象解构)-学习笔记
  8. 李航《统计学习方法》---感知机
  9. 面试题17. 打印从1到最大的n位数
  10. 平面/UI设计师社区交流网站集设|给你的作品多一个展示机会
  11. HPE服务器做raid5阵列
  12. 关于网页设计工具的50个新的资源和灵感
  13. 树莓派docker 搭建owncloud个人云盘
  14. 【pdf】Head First 设计模式(中文版)
  15. ArcGIS教程:MapGIS向ArcGIS数据格式转换方法
  16. PMP-总价合同、固定合同、工料合同对比
  17. cassandra java cql_使用Cassandra CQL Java Driver 访问Lindorm
  18. 高项 13 项目合同管理
  19. php立方体相册源码,纯CSS实现3D的代码(正方体、动态立体图片册、平面的星空)...
  20. 提示程序需要Windows 7 Service Pack 1或更高版本问题如何解决?

热门文章

  1. Midas GTS NX三维地质建模及边坡稳定性分析
  2. 三维建模的基础知识:SolidWorks /CATIA 简介
  3. 推荐几个优秀的微信小程序UI组件库
  4. java计算机毕业设计教务管理系统源码+mysql数据库+系统+lw文档+部署
  5. c#轻量级高并发物联网服务器接收程序源码
  6. 摄影小白入门相机选择(个人出发)
  7. journalctl如何使用?
  8. MySql数据库基本操作(一)
  9. PUMA 560机器人正运动学
  10. Android全局设置APP为黑白模式的两种方案