第三章数值数组及向量化运算(matlab基础教程)
- 格式:docx
- 大小:19.80 KB
- 文档页数:15
MATLAB科学计算软件入门教程第一章:MATLAB基础知识MATLAB是一种专业的科学计算软件,具有强大的数学计算和数据分析能力。
在使用MATLAB进行科学计算前,我们需要先了解一些基本知识。
1.1 MATLAB界面打开MATLAB后,我们会看到一个主界面。
主界面中有命令窗口、当前文件夹窗口、工作空间窗口和编辑器窗口等基本功能区域。
1.2 MATLAB变量和数据类型MATLAB中的变量可以用来存储各种类型的数据,如数字、字符串、矩阵等。
常见的数据类型包括:double(双精度浮点数)、char(字符)、logical(逻辑值)等。
1.3 MATLAB基本操作在MATLAB中,可以使用基本的数学运算符进行加、减、乘、除等计算操作。
另外,还可以通过内置函数实现更复杂的数学运算。
例如,sin函数可以计算正弦值,sum函数可以计算矩阵元素的和等。
第二章:MATLAB矩阵和向量操作2.1 创建矩阵和向量在MATLAB中,可以使用方括号来创建矩阵和向量。
例如,使用[1,2;3,4]可以创建一个2x2的矩阵。
2.2 矩阵和向量的加减乘除运算MATLAB提供了丰富的矩阵和向量运算函数,可以进行加法、减法、乘法、除法等运算操作。
例如,可以使用矩阵相乘函数*来计算矩阵的乘法。
2.3 矩阵和向量的索引和切片在MATLAB中,可以使用索引和切片操作来获取矩阵和向量中的特定元素或子集。
例如,使用矩阵名加上行和列的索引可以获取矩阵中指定位置的元素。
第三章:MATLAB数据可视化3.1 绘制二维图形MATLAB提供了丰富的绘图函数,可以绘制二维曲线、散点图、柱状图、等高线图等。
例如,可以使用plot函数来绘制二维曲线。
3.2 绘制三维图形MATLAB还可以绘制三维图形,如三维曲线、三维散点图、三维曲面等。
例如,可以使用plot3函数来绘制三维曲线。
3.3 图像处理与显示MATLAB提供了图像处理和显示的函数,可以加载、编辑和保存图像。
MATLAB数值计算教程第一章:MATLAB入门1.1 MATLAB简介MATLAB(Matrix Laboratory)是一款强大的数值计算软件,广泛用于工程、科学和金融领域。
它的特点是简单易用、高效快速,并且拥有丰富的工具箱和函数库。
1.2 MATLAB环境搭建要使用MATLAB进行数值计算,首先需要安装MATLAB软件,并进行必要的配置。
通过官方网站下载安装程序,根据提示进行安装即可。
安装完成后,打开MATLAB环境,即可开始使用。
1.3 MATLAB基本操作在MATLAB环境中,可以通过命令行窗口输入和执行命令,也可以使用脚本文件进行批量处理。
常用的基本操作包括变量赋值、算术运算、函数调用等。
例如,使用"="符号赋值变量,使用"+"、"-"、"*"、"/"等符号进行算术运算。
第二章:向量和矩阵操作2.1 向量操作在MATLAB中,向量是一种特殊的矩阵,可以通过一组有序的元素构成。
向量可以进行基本的算术运算,如加法、减法、乘法、除法,还可以进行向量的点积、叉积等操作。
可以使用内置函数和运算符来实现。
2.2 矩阵操作矩阵是MATLAB中最常用的数据结构之一,使用矩阵可以进行多个向量的组合和运算。
可以进行矩阵的加法、减法、乘法、除法等操作,也可以进行矩阵的转置、求逆、求特征值等操作。
MATLAB提供了大量的函数和工具箱来支持矩阵的操作。
第三章:数值计算方法3.1 数值积分数值积分是一种用数值方法计算定积分的方法。
在MATLAB 中,可以使用内置函数来进行数值积分,如trapz函数和quad函数。
也可以使用Simpson法则、复合辛普森法等方法实现数值积分。
3.2 数值微分数值微分是一种用数值方法计算导数的方法。
在MATLAB中,可以使用内置函数进行数值微分,如diff函数和gradient函数。
第3章 MATLAB 数值运算教学提示:每当难以对一个函数进行积分或者微分以确定一些特殊的值时,可以借助计算机在数值上近似所需的结果,从而生成其他方法无法求解的问题的近似解。
这在计算机科学和数学领域,称为数值分析。
本章涉及的数值分析的主要内容有插值与多项式拟合、数值微积分、线性方程组的数值求解、微分方程的求解等,掌握这些主要内容及相应的基本算法有助于分析、理解、改进甚至构造新的数值算法。
教学要求:本章主要是让学生掌握数值分析中多项式插值和拟合、牛顿-科茨系列数值求积公式、3种迭代方法求解线性方程组、解常微分方程的欧拉法和龙格-库塔法等具体的数值算法,并要求这些数值算法能在MATLAB 中实现。
3.1 多 项 式在工程及科学分析上,多项式常被用来模拟一个物理现象的解析函数。
之所以采用多项式,是因为它很容易计算,多项式运算是数学中最基本的运算之一。
在高等数学中,多项式一般可表示为以下形式:120121()n n n n n f x a x a x a x a x a −−−=+++++…。
当x 是矩阵形式时,代表矩阵多项式,矩阵多项式是矩阵分析的一个重要组成部分,也是控制论和系统工程的一个重要工具。
3.1.1 多项式的表达和创建在MATLAB 中,多项式表示成向量的形式,它的系数是按降序排列的。
只需将按降幂次序的多项式的每个系数填入向量中,就可以在MATLAB 中建立一个多项式。
例如,多项式43231529s s s s +−−+在MATLAB 中,按下面方式组成一个向量x = [1 3 -15 -2 9]MATLAB 会将长度为n +1的向量解释成一个n 阶多项式。
因此,若多项式某些项系数为零,则必须在向量中相应位置补零。
例如多项式41s +在MATLAB 环境下表示为y = [1 0 0 0 1]3.1.2 多项式的四则运算多项式的四则运算包括多项式的加、减、乘、除运算。
下面以对两个同阶次多项式MATLAB 基础及其应用教程·66··66·32()234a x x x x =+++,32()4916b x x x x =+++做加减乘除运算为例,说明多项式的四则运算过程。
第 3 章 数值数组及向量化运算MATLAB 的核心内容:数值数组和数组运算 ● 二维数值数组的创建和寻访 ● 数组运算和向量化编程 ● 实现数组运算的基本函数● 常用标准数组生成函数和数组构作技法 ● 非数NaN 、“空”数组概念和应用 ● 关系和逻辑操作3.1 数值计算的特点和地位符号计算的局限性:有很多问题1)无法解,2)求解时间过长数值计算:适用范围广,能处理各种复杂的函数关系,计算速度快,容量大。
【例3.1-1】已知t t t f cos )(2=,求dt t f x s x⎰= 0)()(。
(1)符号计算解法syms t x ft=t^2*cos(t) sx=int(ft,t,0,x) ezplot(sx,0,5) hold ondt=0.05; t=0:dt:5; Ft=t.^2.*cos(t); Sx=dt*cumtrapz (Ft); % 小梯形面积的累加求Ft 曲线下的面积,由一个个宽度为dt 的小梯形面积累加得到的t(end-4:end) % end 指示最后一个元素的位置 %Sx(end-4:end)%plot(t,Sx,'.k','MarkerSize',12)(2)数值计算解法dt=0.05; t=0:dt:5; Ft=t.^2.*cos(t); Sx=dt*cumtrapz (Ft); % 小梯形面积的累加求Ft 曲线下的面积,由一个个宽度为dt 的小梯形面积累加得到的t(end-4:end) % end 指示最后一个元素的位置 Sx(end-4:end)plot(t,Sx,'.k','MarkerSize',12) xlabel('x'),ylabel('Sx'),grid onans =4.8000 4.8500 4.9000 4.95005.0000ans =-20.1144 -19.9833 -19.7907 -19.5345 -19.2131图 3.1-1 在区间[0, 5]采样点上算得的定积分值【例3.1-2】已知)sin()(t et f -=,求⎰=4 0)()(dt t f x s 。
学习使用MATLAB进行科学计算的基本操作第一章:引言MATLAB是一种专业的科学计算软件,广泛应用于工程、物理、数学等学科领域。
本文将介绍如何学习并掌握使用MATLAB 进行科学计算的基本操作。
第二章:MATLAB环境与基本语法2.1 MATLAB环境介绍MATLAB提供了一个交互式环境,用户可以在命令窗口中直接输入指令,并实时获得结果。
此外,MATLAB还提供了一个编辑器,方便用户编写和保存脚本文件。
2.2 基本语法规则MATLAB的基本语法规则与其他编程语言类似,包括变量定义、赋值、运算符、函数调用等。
了解这些基本概念对学习MATLAB非常重要。
第三章:矩阵与向量运算3.1 矩阵定义与初始化在MATLAB中,矩阵是一种基本的数据结构。
我们可以使用不同的方式定义和初始化矩阵,例如直接赋值、随机数生成等。
3.2 矩阵运算MATLAB提供了丰富的矩阵运算函数,如加法、减法、乘法、除法等。
学习如何使用这些函数可以大大简化矩阵运算的过程。
第四章:数据可视化4.1 绘制二维图形MATLAB提供了丰富的绘图函数,可以绘制各种类型的二维图形,例如折线图、散点图、柱状图等。
了解如何正确使用这些函数可以使数据可视化更加生动直观。
4.2 绘制三维图形除了二维图形,MATLAB还支持绘制三维图形。
用户可以使用相关函数绘制曲面图、立体图等,对于空间数据的可视化非常有帮助。
第五章:数据处理与分析5.1 数据导入与导出在科学计算中,常常需要从外部文件导入数据进行分析。
MATLAB提供了丰富的函数用于读取和写入数据,例如读取文本文件、Excel文件等。
5.2 数据处理与统计MATLAB提供了各种用于数据处理和统计分析的函数,例如排序、过滤、插值、回归等。
合理运用这些函数可以快速得到所需的分析结果。
第六章:数值计算与求解6.1 数值计算基础MATLAB是一种强大的数值计算工具,可以进行线性代数、微积分等各类计算。
学习相关函数的使用可以解决很多数学问题。
用MATLAB进行科学计算入门教程使用MATLAB进行科学计算入门教程第一章:MATLAB简介及安装MATLAB(Matrix Laboratory)是一种广泛应用于工程和科学计算领域的高级数学计算软件。
它提供了强大的数据处理、可视化和数值计算功能,被广泛应用于信号处理、控制系统设计、图像处理等领域。
在开始学习MATLAB之前,首先需要进行安装。
用户可以从MathWorks官方网站上下载适用于自己操作系统的MATLAB版本。
安装完成后,用户可以按照向导进行配置和激活。
第二章:MATLAB基础知识2.1 MATLAB工作环境启动MATLAB后,主界面将出现在用户面前。
MATLAB主界面由命令窗口、编辑器窗口、工作区、当前文件夹、历史命令、命令历史和菜单等组成。
用户可以通过命令窗口输入MATLAB命令进行运算和操作,也可以通过编辑器编写脚本文件。
2.2 MATLAB变量和数据类型在MATLAB中,变量可以用于存储各种类型的数据,包括数值、字符串、矩阵等。
MATLAB支持常见的数据类型,如整数、浮点数、字符和逻辑等。
用户可以使用命令进行变量的赋值和操作。
2.3 MATLAB运算符和算术运算MATLAB提供了丰富的运算符用于实现各种数学运算和逻辑运算。
包括算术运算符(+、-、*、/、\)、关系运算符(>、<、==、~=等)、逻辑运算符(&&、||、~)等。
用户可以根据需要使用这些运算符进行计算。
2.4 MATLAB控制流程MATLAB支持一系列的控制流程语句,用于实现条件执行、循环和函数调用。
其中,条件语句如if语句和switch语句可以根据条件执行不同的代码块;循环语句如for循环和while循环可以反复执行一段代码;函数调用可以实现对已有的函数进行调用。
第三章:MATLAB向量和矩阵操作3.1 向量和矩阵的创建与访问MATLAB中的向量和矩阵可以通过手动输入、使用内置函数或读取外部文件来创建。
3 数值数组及其运算3.1 引导【*例3.1-1】绘制函数x xe y -=在10≤≤x 时的曲线。
x=0:0.1:1 %定义自变量的采样点取值数组y=x.*exp(-x) %利用数组运算计算各自变量采样点上的函数值plot(x,y),xlabel('x'),ylabel('y'),title('y=x*exp(-x)') %绘图 x =Columns 1 through 70 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 Columns 8 through 110.7000 0.8000 0.9000 1.0000y =Columns 1 through 70 0.0905 0.1637 0.2222 0.2681 0.3033 0.3293 Columns 8 through 113.2 一维数组的创建和寻访3.2.1 一维数组的创建3.2.2 一维数组的子数组寻访和赋值【*例3.2.2-1】子数组的寻访(Address )。
rand('state',0)%把均匀分布伪随机发生器置为0状态 x=rand(1,5) %产生)51(⨯的均布随机数组x =0.9501 0.2311 0.6068 0.4860 0.8913x(3) %寻访数组x的第三个元素。
ans =0.6068x([1 2 5]) %寻访数组x的第一、二、五个元素组成的子数组。
ans =0.9501 0.2311 0.8913x(1:3) %寻访前三个元素组成的子数组ans =0.9501 0.2311 0.6068x(3:end) %寻访除前2个元素外的全部其他元素。
end是最后一个元素的下标。
ans =0.6068 0.4860 0.8913x(3:-1:1) %由前三个元素倒排构成的子数组ans =0.6068 0.2311 0.9501x(find(x>0.5)) %由大于0.5的元素构成的子数组ans =0.9501 0.6068 0.8913x([1 2 3 4 4 3 2 1]) %对元素可以重复寻访,使所得数组长度允许大于原数组。
MATLAB数值计算入门教程第一章:MATLAB基础知识1.1 MATLAB简介MATLAB是一种用于解决科学与工程问题的高级技术计算环境。
它结合了数值分析、可视化和编程,提供了强大而灵活的工具来处理各种计算任务。
本章将介绍MATLAB的基本操作和界面。
1.2 MATLAB的安装和配置首先,我们需要下载和安装MATLAB软件。
在安装过程中,可以选择安装附带的工具箱,如统计工具箱和优化工具箱,以扩展MATLAB的功能。
安装完成后,还需进行基本配置,如设置工作目录和界面外观。
1.3 MATLAB的基本语法MATLAB使用面向向量和矩阵的语言,具有简洁而强大的语法。
本节将介绍MATLAB的基本数据类型、运算符、控制结构等。
例如,MATLAB中的向量和矩阵可以通过简单的行列运算实现。
第二章:MATLAB数值计算2.1 常用数值计算函数MATLAB提供了许多常用的数值计算函数,如求解线性方程组、插值、数值积分和微分等。
本章将介绍这些函数的使用方法,并给出实例演示。
2.2 数值计算方法数值计算方法是解决数值计算问题的核心。
本节将介绍常用的数值计算方法,如迭代法、数值求解微分方程和数值优化等。
同时,我们还会介绍MATLAB中对应的函数和工具箱。
第三章:MATLAB数据可视化3.1 绘图函数数据可视化是MATLAB的一个重要功能。
MATLAB提供了丰富的绘图函数,可以绘制二维曲线、三维曲面、散点图等。
本节将介绍这些绘图函数的使用方法,并给出实例演示。
3.2 图形操作与修改除了绘制基本图形外,MATLAB还提供了对图形进行操作与修改的函数。
例如,我们可以修改坐标轴范围、添加图例和标签,以便更好地展示和解读数据。
本节将详细介绍这些图形操作的方法。
第四章:MATLAB编程与应用4.1 MATLAB脚本和函数编写MATLAB不仅是一个交互式环境,还可以编写脚本和函数来实现更复杂的计算任务。
本节将介绍MATLAB脚本和函数的编写方法,并给出实例演示。
第三章数值数组及向量化运算(matlab基础教程)第3章数值数组及向量化运算数值数组(Numeric Array)和数组运算(Array Operations)始终是MATLAB的核心内容。
本书从第3章起,全部注意力将集中于数值数组及其运算。
本章系统阐述:数组浮点算法的特点;一、二维数值数组的创建和寻访;数组运算和向量化编程;实现数组运算的基本函数;常用标准数组生成函数和数组构作技法;非数NaN、“空”数组概念和应用;关系和逻辑操作。
3.1 数值计算的特点和地位【例3.1-1】已知f(t) t2cost,求s(x) (1)符号计算解法syms t x ft=t^2*cos(t) sx=int(ft,t,0,x) ft =t^2*cos(t) sx =x^2*sin(x)-2*sin(x)+2*x*cos(x)xf(t) dt。
(2)数值计算解法dt=0.05; t=0:dt:5; Ft=t.^2.*cos(t); Sx=dt*cumtrapz(Ft); t(end-4:end) Sx(end-4:end)plot(t,Sx,'.k','MarkerSize',12) xlabel('x'),ylabel('Sx'),grid onans =4.8000 4.8500 4.9000 4.95005.0000ans =-20.1144 -19.9833 -19.7907 -19.5345 -19.2131图3.1-1 在区间[0, 5]采样点上算得的定积分值【例3.1-2】已知f(t) e sin(t),求s(x) 0f(t) dt。
4(1)符号计算解法syms t xft=exp(-sin(t)) sx=int(ft,t,0,4) ft =exp(-sin(t))Warning: Explicit integral could not be found. In sym.int at 58 sx = int(exp(-sin(t)),t = 0 .. 4)(2)数值计算解法dt=0.05; t=0:dt:4; Ft=exp(-sin(t)); Sx=dt*cumtrapz(Ft); Sx(end)plot(t,Ft,'*r','MarkerSize',4) hold onplot(t,Sx,'.k','MarkerSize',15) hold off xlabel('x')legend('Ft','Sx') ans =3.0632图3.1-2 在区间[0, 4]中间的被积函数及其原函数的离散计算结果3.23.2.1 一二数值数组的创建和寻访一维数组的创建递增/减型一维数组的创建通用型一维数组的创建【例3.2-1】一维数组的常用创建方法举例。
a1=1:6 a2=0:pi/4:pi a3=1:-0.1:0 a1 =1 2 3 4 5 6 a2 =0 0.7854 1.5708 2.3562 3.1416a3 =Columns 1 through 61.0000 0.9000 0.8000 0.7000 0.6000 0.5000 Columns 7 through 11 0.4000 0.3000 0.20XX年0.1000 0b1=linspace(0,pi,4) b2=logspace(0,3,4) b1 =0 1.0472 2.0944 3.1416 b2 =1 10 100 1000c1=[2 pi/2 sqrt(3) 3+5i] c1 =Columns 1 through 32.0000 1.5708 1.7321 Column 43.0000 + 5.0000irand('state',0) c2=rand(1,5) c2 =0.9501 0.2311 0.6068 0.4860 0.89133.2.2 一二维数组的创建小规模数组的直接输入法【例3.2-2】在MATLAB环境下,用下面三条指令创建二维数组C。
a=2.7358; b=33/79;C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i] C =1.0000 5.4716 + 0.4177i 0.6909 0.7071 4.8244 3.5000 + 1.0000i二中规模数组的数组编辑器创建法【例3.2-3】根据现有数据创建一个(3 8)的数组。
图3.2-1 利用数组编辑器创建中规模数组三中规模数组的M文件创建法【例3.2-4】创建和保存数组AM的MyMatrix.m 文件。
(1)打开文件编辑调试器,并在空白填写框中输入所需数组(见图3.2-2)。
(2)最好,在文件的首行,编写文件名和简短说明,以便查阅(见图3.2-2)。
(3)保存此文件,并且文件起名为MyMatrix.m 。
(4)以后只要在MATLAB指令窗中,运行MyMatrix.m文件,数组AM 就会自动生成于MATLAB内存中。
图3.2-2 利用M文件创建数组四利用MATLAB函数创建数组【例3.2-5】标准数组产生的演示。
ones(2,4) ans =1 1 1 1 1 1 1 1randn('state',0) randn(2,3) ans =-0.4326 0.1253 -1.1465 -1.6656 0.2877 1.1909D=eye(3) D =1 0 0 0 1 0 0 0 1diag(D) ans = 1 1 1diag(diag(D)) ans =1 0 0 0 1 0 0 0 1randsrc(3,20,[-3,-1,1,3],1) ans =Columns 1 through 133 1 3 -1 -3 3 -3 -3 -1 3 -1 -1 -3 1 3 1 3 -1 1 1 1 1 1 1 1 3 3 -1 -3 -1 1 -1 3 -1 -1 1 1 -1 -3 Columns 14 through 201 1 -3 3 -1 1 3 -1 -1 -3 -1 -1 1 -3 3 -1 -1 3 -1 3 33.2.3 二维数组元素的标识和寻访【例3.2-6】本例演示:数组元素及子数组的各种标识和寻访格式;冒号的使用;end的作用。
A=zeros(2,6) A(:)=1:12 A =0 0 0 0 0 0 0 0 0 0 0 0 A =1 3 5 7 9 112 4 6 8 10 12A(2,4) A(8) ans = 8 ans = 8A(:,[1,3]) A([1,2,5,6]') ans =1 52 6 ans = 1 2 5 6A(:,4:end) ans =7 9 11 8 10 12A(2,1:2:5)=[-1,-3,-5] A =1 3 5 7 9 11 -1 4 -3 8 -5 12B=A([1,2,2,2],[1,3,5] ) B =1 5 9 -1 -3 -5 -1 -3 -5 -1 -3 -5L=A3 A(L)=NaN L =1 0 0 0 0 0 1 0 1 0 1 0 A =NaN 3 5 7 9 11 NaN 4 NaN 8 NaN 123.2.4a=1:8数组构作技法综合【例3.2-7】数组操作函数reshape, diag, repmat的用法;空阵[ ] 删除子数组的用法。
A=reshape(a,4,2) A=reshape(A,2,4) a =1 2 3 4 5 6 7 8 A =1 52 63 74 8 A =1 3 5 72 4 6 8b=diag(A) B=diag(b) b = 1 4 B =1 0 0 4D1=repmat(B,2,4) D1 =1 0 1 0 1 0 1 0 0 4 0 4 0 4 0 4 1 0 1 0 1 0 1 0 0 4 0 4 0 4 0 4D1([1,3],: )=[ ] D1 =0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4【例3.2-8】函数flipud, fliplr, rot90对数组的操作体现着“矩阵变换”。
A=reshape(1:9,3,3) A =1 4 72 5 83 6 9B=flipud(A) B =3 6 9 2 5 8 14 7C=fliplr(A) C =7 4 1 8 5 2 9 6 3D=rot90(A,2) D =9 6 3 8 5 2 7 4 13.3 数组运算3.3.1 一二三四3.3.2数组运算的由来和规则函数关系数值计算模型的分类提高程序执行性能的三大措施数组运算规则数组运算符及数组运算函数数组运算和向量化编程u,其中r, u, i分别是电阻(欧姆)、电压(伏特)、电流(安i【例3.3-1】欧姆定律:r培)。
验证实验:据电阻两端施加的电压,测量电阻中流过的电流,然后据测得的电压、电流计算平均电阻值。
(测得的电压电流具体数据见下列程序)。
(1)非向量化程序clearvr=[0.89, 1.20, 3.09, 4.27, 3.62, 7.71, 8.99, 7.92, 9.70, 10.41];ir=[0.028, 0.040, 0.100, 0.145, 0.118, 0.258, 0.299, 0.257, 0.308,0.345]; % -------------------- L=length(vr); for k=1:L r(k)=vr(k)/ir(k); end% --------------------------- sr=0;for k=1:L sr=sr+r(k); endrm=sr/L rm =30.5247(2)向量化程序clearvr=[0.89, 1.20, 3.09, 4.27, 3.62, 7.71, 8.99, 7.92, 9.70, 10.41];ir=[0.028, 0.040, 0.100, 0.145, 0.118, 0.258, 0.299, 0.257, 0.308, 0.345]; r=vr./ir rm=mean(r) r =Columns 1 through 731.7857 30.0000 30.9000 29.4483 30.6780 29.8837 30.0669 Columns 8 through 1030.8171 31.4935 30.1739 rm =30.5247【例3.3-2】用间距为0.1的水平线和垂直线均匀分割x [ 5,5],y[ 2.5,2.5]的矩形域,在所有水平线和垂直线交点上计算函数z sin|xy|的值,并图示。