matlab数值计算444
- 格式:ppt
- 大小:222.50 KB
- 文档页数:4
Matlab提供了从磁盘文件或剪贴簿转载数据至工作区(数据导入)和将工作区变量存入磁盘文件(数据导出)的多种途径。
最简单的办法是使用界面导入向导,打开文件菜单中的导入数据而后按提示操作。
一、导入文本文件load函数、dlmread函数文本文件需要具备统一的行列模式,使用分隔符作为数据项间隔,这些分隔符包括空格、逗号、tab、分号或其它。
数据文件可能附带标题行和行列头标签。
数值数据对于数值数据可以直接使用load函数装载,例如my_data.txt中数据如下:1 2 3 4 56 7 8 9 10命令A = load('my_data.txt')装载该文本文件数据。
如果数值数据使用其它分隔符,可以使用dlmread读入,假设my_data.txt中数据如下:7.2;8.5;6.2;6.65.4;9.2;8.1;7.2命令A = dlmread('my_data.txt', ';')读入该数据。
包含行列标签的数值数据例如:Grade1 Grade2 Grade378.8 55.9 45.999.5 66.8 78.089.5 77.0 56.7fid = fopen('grades.dat', 'r');grades = textscan(fid, '%f %f %f', 3, 'headerlines', 1);fclose(fid);包含字符和数值的混合数据使用textread函数读入。
如果是规则的用空格隔开的数据,则采用data=textread(filename)格式调用,读出的数据记录在data矩阵中。
二、导出文本文件save函数A = [ 1 2 3 4 ; 5 6 7 8 ];save my_data.out A –ASCIIdlmwrite函数dlmwrite('my_data.out',A, ';')三、MS-Excel电子表格文件xlsinfo获得文件信息使用命令[type, sheets] = xlsfinfo(filename)返回文件类型type和工作表信息。
第一讲Matlab 基本数值计算一、矩阵在Matlab中,一个矩阵可以使数学意义上的矩阵,也可以是标量或者向量。
对于一个标量(一个数)可以将之作为11⨯的矩阵,而向量(一行或一列)则可以认为是1n⨯⨯或者1n⨯的矩阵。
另外,一个00矩阵在Matlab中被认为是空矩阵,用“[]”表示。
1、矩阵的创建矩阵的创建可以有以下几种形式⑴直接输入>> A=[1 2 3;4 3 7;2 4 1]注意:每行间的元素用逗号或空格分开,行与行之间用分号或回车分开,矩阵标示是一对中括号[ ]。
也可以采用数组编辑器(Array Editor)像在Excel电子表格中据那样输入数据。
⑵通过语句和函数产生常用的特殊矩阵:zeros:全零矩阵,ones:全1矩阵,eye:单位矩阵,rand:随机矩阵,diag:对角阵等。
例:>> A=ones(3,4)>> E=eye(3)>> D=diag([3 5 2])⑶对矩阵进行裁剪或拼接⑷从外部文件装入数据外部数据文件可以是以保存的Matlab工作空间,也可以是文本(.txt)文件,或者是电子表格创建的文件(.xls).例:已知一个文本格式的数据文件E:\Mathmodel\data1.txt>> load e:\Mathmodel\data1.txt得到一个变量名与文件名相同的矩阵(data1)。
注意:文件的扩展名不能省略。
例:已知一个Excel文件的路径为E:\Mathmodel\data2.xlsa. 缺省操作:>> NUMBER=xlsread('E:\Mathmodel\data2.xls')>>[NUMBER,TXT]=xlsread('E:\Mathmodel\data2.xls')默认操作是从第一个工作表(sheet1)中提取数据。
b. 从指定的工作表(而不是第一个)中提取数据:>> NUMBER=xlsread('E:\Mathmodel\data2.xls','S2')或者>> NUMBER=xlsread('E:\Mathmodel\data2.xls',2)c.从指定的工作表中读取指定区域的数据:>> NUMBER=xlsread('E:\Mathmodel\data2.xls',2,'g3:i8')2、Matlab的矩阵运算⑴基本运算矩阵的加(+)、减(-)、乘(*)、乘方(^)运算法则与代数中的定义完全一致。
上机一、MATLAB 语言数值计算一、MATLAB 入门启动MATLAB 后,就进入MA TLAB 命令窗口(Command Window)或称工作空间(Workspace)。
若你的MATLAB 装在英文Windows 中会出现提示符 », 在提示符后键入任意合法命令,回车后MATLAB 立即运算并显示结果。
若MA TLAB 装在在中文Windows 中, 这一提示符是看不见的,但它仍占据一定的位置。
本书约定(1)所有在命令窗口输入的命令我们都用Courier New 字体,并以 » 开头,请读者注意 » 为系统提示符,不要以为是输入字符。
(2)显示结果用Times New Roman 字体。
(3)%号后面的文字用于注释,并不参与运算,实验时也不必输入。
1. 简单的运算看一个简单的例子,计算V =43π r 3, 其中 r = 2 用MA TLAB 计算如下,» r=2; %分号“;”使此运算结果不显示 » v=4/3*pi*r^3 %没有分号,显示结果 v =33.5103%系统直接显示结果,就象计算器那样注:(1)MATLAB 命令书写格式灵活,可多命令写一行,也可一个命令写多行。
同一行命令用逗号或分号分开,若命令很长,一行不够,可用三点“...”续行。
(2) MA TLAB 允许使用↑ ↓ ← →键来编辑前面的命令。
试一试你就明白了。
2、变量和数据(1)变量类型MA TLAB 使用变量最常用的有数值数组(double array)和字符串(char array)两类。
所有数值变量以双精度(double)方式存储,不区分整数、实数、复数等,变量类型和数组大小也无需预先定义,例如 » a=1+2*ia =1.0000 +2.0000i %复数» a1='This is a string'a1 =This is a string %字符串» A=[1 2;-1 3]A =1 2-1 3 %二维数组,即矩阵(2)常量和特殊变量ans是系统本身一个特殊变量名,若运算结果没有赋于任何变量,系统就自动将其赋予ans。
1.矩阵的函数运算1.1求解矩阵A的特征值和特征向量的函数为eig(A),常用的调用格式为:1)E=eig(a):用于求解矩阵A的全部特征值,构成向量E2)[V,D]=eig(A),用于求解矩阵A的全部特征值,构成对角矩阵D,并求A的特征向量构成V的列向量1.2求解矩阵的奇异值:svd(A)1.3求矩阵的秩:rank(A)1.4 n阶魔方矩阵:magic(n)2.矩阵的分解:2.1矩阵的三角分解:[l,u]=lu(A) %分解成为上、下三角矩阵[l,u,p]=lu(A) %分解成上、下三角矩阵以及交换矩阵2.2矩阵的正交分解:[q,r]=qr(A) %产生一个与矩阵维数相同的上三角矩阵R和一个正交矩阵Q2.3矩阵的特征值分解:[V,D]=eig(A)得到矩阵A的特征值与对角矩阵D[V,D]=eig(A,B) %对广义矩阵进行特征值分解3.特殊矩阵的生成:3.1空矩阵:空矩阵不包含任何元素,它的阶数为03.3零矩阵:矩阵中所有的值都是0.A=zeros(M,N)生成M行N列的零矩阵如果已经有一个矩阵B,需要创建一个和B一样维数的零矩阵:A=zeros(size(B))如果要生成一个方阵:A=zeros(N)3.4全1矩阵的生成和全领矩阵类似:3.5对角矩阵的生成:A=diag(V,K) V 为某个向量,就是对角线上的值,K为向量V偏离主对角线的列数,K=0表示V在主对角上。
3.6随机矩阵的生成:Rand(N)生成矩阵的元素值是在(0.0---1.0)之间Rand(M,N)Randn(N)生成矩阵的元素值服从正太分布N(0,1)Randn(M,N)3.7范德蒙矩阵:A=vander(V)其中A(I,j)=v(i)n-j3.8魔术矩阵:魔术矩阵是一个方阵,并且方阵中的每一行、每一列以及每条对角线的元素之和都相同。
Magic(N)其他还有很多函数请查询pdf文件4.特殊矩阵的操作:A(:,j)表示取A矩阵的j列的全部元素,A(I,j)表示取A矩阵的第i行和第j列的值,A(I,:)代表取A矩阵的第i行的所有值。
matlab的数值运算当使用MATLAB 进行数值运算时,可以使用各种内置函数和运算符进行计算。
下面是一些常见的数值运算操作的详细说明:基本数学运算:加法:使用"+" 运算符进行两个数的相加。
例如,计算2 和3 的和:2 + 3。
减法:使用"-" 运算符进行两个数的相减。
例如,计算5 减去2 的结果:5 - 2。
乘法:使用"*" 运算符进行两个数的相乘。
例如,计算4 乘以3 的结果:4 * 3。
除法:使用"/" 运算符进行两个数的相除。
例如,计算10 除以2 的结果:10 / 2。
取余数:使用"mod" 函数或"%" 运算符计算两个数的余数。
例如,计算11 除以3 的余数:mod(11, 3) 或11 % 3。
幂运算:使用"^" 运算符进行幂运算。
例如,计算2 的3 次幂:2^3。
数学函数:MATLAB 提供了许多内置的数学函数,可以进行各种数值计算和分析操作。
这些函数包括但不限于:abs(x):返回x 的绝对值。
sin(x):返回x 的正弦值。
cos(x):返回x 的余弦值。
exp(x):返回e 的x 次幂,其中e 是自然对数的底数。
log(x):返回x 的自然对数。
sqrt(x):返回x 的平方根。
round(x):返回x 的四舍五入值。
floor(x):返回不大于x 的最大整数。
ceil(x):返回不小于x 的最小整数。
max(x, y):返回x 和y 中的较大值。
min(x, y):返回x 和y 中的较小值。
数组运算:MATLAB 中的数值计算通常涉及数组操作。
可以对向量、矩阵和多维数组执行各种运算,例如:矩阵相加:使用"+" 运算符对两个相同大小的矩阵进行元素级别的相加。
矩阵相乘:使用"" 运算符对两个矩阵进行乘法运算。
第五讲MATLAB数值计算数据处理与多项式计算数值微积分离散傅立叶变换线性方程组求解非线性方程与最优化问题求解常微分方程的数值求解一、数据处理与多项式计算(一)数据统计与分析1. 求矩阵最大元素和最小元素MATLAB提供的求数据序列的最大值和最小值的函数分别为max和min,两个函数的调用格式和操作过程类似。
(1)求向量的最大值和最小值y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值。
[y,I]=max(X):返回向量X的最大值存入y,最大值的序号存入I,如果X中包含复数元素,则按模取最大值。
求向量X的最小值的函数是min(X),用法和max(X)完全相同。
例1 求向量x的最大值。
命令如下:x=[-43,72,9,16,23,47];y=max(x) %求向量x中的最大值[y,l]=max(x) %求向量x中的最大值及其该元素的位置(2)求矩阵的最大值和最小值求矩阵A的最大值的函数有3种调用格式,分别是:max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。
[Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。
max(A,[],dim):dim取1或2。
dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。
求最小值的函数是min,其用法和max 完全相同。
例2 分别求矩阵A中各列和各行元素中的最大值,并求整个矩阵的最大值和最小值。
A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;... 11,18,25,2,19];(3)两个向量或矩阵对应元素的比较函数max和min还能对两个同型的向量或矩阵进行比较,调用格式为:U=max(A,B):A,B是两个同型的向量或矩阵,结果U是与A,B同型的向量或矩阵,U的每个元素等于A,B对应元素的较大者。