W02 MATLAB程序设计语言与初等数学运算1_2012.pdf

上传人:asd****56 文档编号:70322160 上传时间:2023-01-19 格式:PDF 页数:49 大小:1.20MB
返回 下载 相关 举报
W02 MATLAB程序设计语言与初等数学运算1_2012.pdf_第1页
第1页 / 共49页
W02 MATLAB程序设计语言与初等数学运算1_2012.pdf_第2页
第2页 / 共49页
点击查看更多>>
资源描述

《W02 MATLAB程序设计语言与初等数学运算1_2012.pdf》由会员分享,可在线阅读,更多相关《W02 MATLAB程序设计语言与初等数学运算1_2012.pdf(49页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第1章第第第第1 1 1 1章章章章 MATLABMATLABMATLABMATLAB程序设计语言与初等数学运算程序设计语言与初等数学运算程序设计语言与初等数学运算程序设计语言与初等数学运算 变量变量变量变量 数据类型数据类型数据类型数据类型 MATLABMATLABMATLABMATLAB基本数学运算基本数学运算基本数学运算基本数学运算 数据输入与输出数据输入与输出数据输入与输出数据输入与输出第1章上章小结 数值计算的误差不可避免数值计算的误差不可避免数值计算的误差不可避免数值计算的误差不可避免 MATLAB MATLAB MATLAB MATLAB的历史与特点的历史与特点的历史与特点的历史

2、与特点 浮点数与浮点运算浮点数与浮点运算浮点数与浮点运算浮点数与浮点运算 算法算法算法算法 误差误差误差误差掌握化工专业需要数值计算技能掌握化工专业需要数值计算技能掌握化工专业需要数值计算技能掌握化工专业需要数值计算技能误差的基本概念数据对误差的影响机器只能表示有限个非连续实数算法设计的原则数值计算即利用计算机进行科学计算第1章变量 变量是MATLAB程序的基本组成;MATLAB变量不需要预先声明,也不需要指定变量类型 变量在使用时必须首先赋值1.1 变量数据输入运算数据输出变量变量 MATLAB程序的组成第1章变量的使用为避免变量的误用,在新程序运行前采用clear命令清除!xy=1 定义变

3、量xy,并给其赋值为1,此在变量空间中,xy变量可见在命令窗口输入:whos Name Size Bytes Name Size Bytes Name Size Bytes Name Size Bytes Class Class Class Class xyxyxyxy 1x1 8 double array 1x1 8 double array 1x1 8 double array 1x1 8 double array在命令窗口输入:clear xy?Undefined function or?Undefined function or?Undefined function or?Undefi

4、ned function or variable variable variable variable xyxyxyxy.在命令窗口输入:第1章变量的命名方式 变量名由字母、数字和下划线组成;变量名中的英文字母大小写是有区别的;变量名只有前63位为MATLAB所认可,其余将被忽略 变量名应不和MATLAB关键字相同 为了提高程序的可读性,变量名应尽可能有意义1.1 变量第1章 a=101325;a=101325;a=101325;a=101325;b=0.01;b=0.01;b=0.01;b=0.01;c=0.1;c=0.1;c=0.1;c=0.1;d=8.314;d=8.314;d=8.31

5、4;d=8.314;f=a f=a f=a f=a*b/(cb/(cb/(cb/(c*d);d);d);d);变量的作用 使用变量使程序更加易懂使用变量使程序更加易懂使用变量使程序更加易懂使用变量使程序更加易懂 变量名具有较明显的意义,程序的可读性大大增加 P=101325;P=101325;P=101325;P=101325;V=0.01;V=0.01;V=0.01;V=0.01;n=0.1;n=0.1;n=0.1;n=0.1;R=8.314;R=8.314;R=8.314;R=8.314;T=P T=P T=P T=P*V/(nV/(nV/(nV/(n*R);R);R);R);1.1 变量

6、第1章特殊变量意 义 ansansansans如果未定义变量名,用于计算结果存储的默认如果未定义变量名,用于计算结果存储的默认如果未定义变量名,用于计算结果存储的默认如果未定义变量名,用于计算结果存储的默认变量名变量名变量名变量名 pi pi pi pi圆周率圆周率圆周率圆周率(=3.1415926.=3.1415926.=3.1415926.=3.1415926.)infinfinfinf或或InfInfInfInf无穷大无穷大无穷大无穷大值值值值 epsepsepseps浮点运算的相对精度浮点运算的相对精度浮点运算的相对精度浮点运算的相对精度NaNNaNNaNNaN或或nannannann

7、an不定量不定量不定量不定量 i i i i或或j j j j虚数单位虚数单位虚数单位虚数单位MATLABMATLABMATLABMATLAB系统的特殊变量和常系统的特殊变量和常系统的特殊变量和常系统的特殊变量和常数数数数1.1 变量第1章MATLAB数据类型 变量赋值的数据类型(变量可以赋值的种类)数值(标量,向量,数组)字符串 单元数组(cell array)结构体(structure)函数句柄1.2 数据类型第1章数值型数据-数字以下表达方式均合法:复数3+3i 6-8j 5j 6+3*i345 -99 0.01 .01 1.3e-3 4.5e3 61.2E5标量1.2 数据类型第1章数

8、值型数据-向量1)1)1)1)直接输入向量直接输入向量直接输入向量直接输入向量格式上要求向量元素需要用“”括起来元素之间可以用空格、逗号或分号分隔空格和逗号分隔生成行向量,用分号生成列向量。a=1 8 9定义变量a,这是一个行向量,含有三个元素在命令窗口输入:b=1;8;9定义变量b,这是一个列向量,含有三个元素1.2 数据类型第1章数值型数据-向量2)2)2)2)利用冒号生成向量利用冒号生成向量利用冒号生成向量利用冒号生成向量 冒号表达式的基本形式为:xx0:step:xn;当xn-x0为step的整数倍时,xn才为最后一个元素的值。若step1,则此项输入可以忽略。a=1:2:7a=1,3

9、,5,7在命令窗口输入:b=1:3:12b=1 4 7 101.2 数据类型第1章数值型数据-向量3)3)3)3)linspacelinspacelinspacelinspace函数函数函数函数可以使用linspace函数生成线性等分向量ylinspace(x1,x2)生 成(1*100)维 行 向 量,y(1)=x1,y(100)=x2ylinspace(x1,x2,n)生成(1*n)维行向量,y(1)=x1,y(n)=x2。a=linspace(1,5,3)a=1,3,5在命令窗口输入:b=linspace(1,5,4)b=1.00 2.33 3.67 5.001.2 数据类型 c=lin

10、space(1,1,5)c=1 1 1 1 1第1章数值型数据-向量4)4)4)4)logspacelogspacelogspacelogspace函数函数函数函数logspace用于生成对数等分向量,格式如下:ylogspace(x1,x2)生 成(1*50)维 行 向 量,y(1)=10 x1,y(n)=10 x2ylogspace(x1,x2,n)生成(1*n)维对数等分向量,y(1)=10 x1,y(n)=10 x2 a=logspace(0 2 4)a=1.0000 4.6416 21.5443 100.0000在命令窗口输入:1.2 数据类型第1章 从键盘上直接输入矩阵的最方便、最

11、常用和最好的创建数值矩阵的方法,尤其适合较小的简单矩阵。在用此方法创建矩阵时,应当注意以下几点。1.输入矩阵时要以“”为其标识,即矩阵的元素应在“”内部,此时MATLAB才将其识别为矩阵。2.矩阵的同行元素之间可由空格或“,”分隔,行与行之间要用“;”或回车符分隔。3.矩阵大小可不预先定义。4.矩阵元素可为运算表达式。5.无任何元素的空矩阵亦合法。数值型数据-矩阵1.2 数据类型第1章数值型数据-矩阵 X=2.32 3.43;4.37 5.98生成了一个名为X的变量,它是一个2行2列的矩阵 在命令窗口输入:Y=3*5,2,3;2+i 0.3 4生成变量Y,它是一个2行3列的矩阵2.433.43

12、4.375.9815232i0.34+1.2 数据类型第1章字符串类型 字符串:包含在一对单引号中的字符集合 b=2在命令窗口输入:b*2生成了一个名为b的变量,它是一个字符100a=This is an example.whos aName Size Bytes Class a 1x19 38 char 1.2 数据类型第1章MATLAB字符函数x=num2str(number)将数字number转换成字符格式x=str2num(string)将字符string转换为数字格式,如果该字符不能转换则返回一个空阵。x=strcat(string1,string2,)将字符string1,stri

13、ng2等连接成一个新的字符串。a=num2str(2)a为字符2 b=str2num(2)b为数字2 c=strcat(MAT,LAB)c=MATLAB1.2 数据类型第1章单元数组单元数组是MATLAB数组的一种特殊数据类型,它用于保存不同类型和/或不同大小的数据。单元数组的每一个元素称为一个单元(cell)。单元数组有两种创建方式,一种是对单元数组的各个单元直接赋值,另一种是先用cell函数为单元数组分配空间,然后再进行赋值。在变量赋值出现 时,表明该变量为单元数组1.2 数据类型第1章单元数组的直接赋值a=1 2;3 4,0 1,Hello,2+3i 1.单元下标用括号“()”括起来,而

14、单元的内容用“”括起来a(1,1)=1 2;3 4;a(1,2)=0 1;a(2,1)=Hello;a(2,2)=2+3i 2.单元下标用“”括起来,而赋值语句等式右边的单元内容用“”括起来:a1,1=1 2;3 4;a1,2=0 1;a2,1=Hello;a2,2=2+3i 3.直接使用1.2 数据类型第1章对单元数组元素的操作:将单元数组a的1,2元素赋给变量c单元数组的赋值与操作先使用函数cell()创建空的单元数组,然后再赋值b=cell(2,3)赋值方法同直接赋值方式。显示单元数组a的信息显示单元数组a的完整内容a c=a1,2 注意是“”,而不是“()”。c=a(1,2)得到的c是

15、单元数组celldisp(a)1.2 数据类型第1章结构体MATLAB结构体用于存取相关的数据它由一组称为域(fields)的成员变量构成每一个域可以为不同的MATLAB数据类型。结构数组的定义有两种方法,一种是直接赋值,另一种是使用struct()函数。1.2 数据类型第1章结构体的赋值student.name=Zhang Jun;student.major=Chemical Engineering;student.subject=英语,政治,数学,化工原理,物理化学;student.entrance_exam=62 68 72 82 90;student(2).name=Li Xia;st

16、udent(2).major=Chemical Engineering;student(2).subject=英语,政治,数学,化工原理,物理化学;student(2).entrance_exam=60 72 68 85 88;struct_array_name=structure(field1,values1,field2,values2,)例如:Student=struct(name,Zhang Jun,major,Chemical Engineering)直接赋值struct函数1.2 数据类型第1章基本算术运算符 运算符运算运算符运算+加法-减法*矩阵乘法.*数组乘法矩阵乘方.数组乘方

17、/()矩阵的右除(左除)./(.)数组的右除(左除)1.3 MATLAB基本数学运算MATLAB的运算符、标点符号必须是英文字符!第1章基本算术运算符 1)MATLAB算术运算符都可用于数字与矩阵之间的运算,数字与矩阵的运算等于数字与矩阵每一个元素运算。2)两个矩阵加减等于矩阵对应元素的加减。3)矩阵相乘和乘方与一般数字的乘方规则不同,因此MATLAB的乘和乘方运算符有两类,一类运算符前有小数点,一类没有。前者(数组乘)用于两个矩阵对应元素之间的运算,后者(矩阵乘法)用于矩阵之间的运算。4)线性代数中,没有规定矩阵的除法运算,MATLAB的矩阵除法运算符特别用于线性方程的求解。5)在同一语句中

18、出现不同运算符,其运算优先级为先计算括号内的运算,再乘方,再乘除,最后加减;相同优先级的运算顺序按从左到右顺序计算。1.3 MATLAB基本数学运算第1章MATLAB的标点符号标点定义标点定义:向量和矩阵的多种功能.小数点及结构体域的访问;区分行及取消行显示.续行符,区分列及函数参数分隔符注释符,百分号()指定运算过程的次序等!调用dos操作命令矩阵定义赋值标记构成单元数组字符串标示符1.3 MATLAB基本数学运算第1章MATLAB的标点符号1)MATLAB的标点符号必须在英文状态下输入!2)计算结果的显示会影响计算速度,可以在语句最后加分号,则该语句的运行结果不显示;3)当一行语句很长时,

19、可在语句中间加省略号,MATLAB将自动将上下两行语句视为同一语句;4)百分号%以后的语句被MATLAB视为注释性语句,不会被执行。1.3 MATLAB基本数学运算第1章基本数学运算符的使用在MATLAB的命令窗口中输入:3+4回车后,则显示:ans=7以上命令完成了一次基本的加法运算,结果为7,MATLAB自动把它赋值给变量ans在MATLAB的命令窗口中输入:3+4;回车后,无显示以上命令同样完成了加法运算,只是由于;的存在不显示运算结果,但ans变量在变量空间中可见1.3 MATLAB基本数学运算第1章基本数学运算符的使用a)10,9;8 7-6b)1 2;3 4-0 1;1 0c)1

20、2 3*3 2 1d)3*(1:3)e)4/5f)541.3 MATLAB基本数学运算a)4 3;2 1b)1 1;2 4c)“?Error using=mtimes,Inner matrix dimensions must agree.”d)3 6 9e)0.8f)0.8第1章基本数学运算符的使用1.3 MATLAB基本数学运算g)1:3;2:4*1 3;2 4;1 1h)1 1;1 12i)3+2*52j)(3+2)*52k)(-8)1/3l)(-8)(1/3)m)NAN*epsg)8 14;12 22;h)2 2;2 2;i)53;j)125;k)-2.6667;l)1.0000+1.7

21、321i;m)?Undefined function or variable NAN.第1章初等数学函数(elfun)sin正弦(弧度)sind正弦(角度)asin反正弦(弧度)cos余弦(弧度)cosd余弦(角度)acos反余弦(弧度)tan正切(弧度)tand正切(角度)atan反正切(弧度)cot余切(弧度)cotd余切(角度)acot反余切(弧度)sec正割(弧度)secd正割(角度)asec反正割(弧度)csc余割(弧度)cscd余割(角度)acsc反余割(弧度)asind反正弦(弧度)acosd反余弦(角度)atand反正切(角度)acotd反余切(角度)asecd反正割(角度)a

22、cscd反余割(角度)三角函数三角函数三角函数三角函数1)asin(0.5)2)asind(0.5)1)0.52362)301.3 MATLAB基本数学运算第1章初等数学函数(elfun)指数函数指数函数指数函数指数函数计算以下表达式的值:1)exp(1 2 3)2)log10(1 10;100 1000)3)nthroot(4,2)1)2.71 7.38 20.082)0 1;2 33)2exp指数运算log自然对数log1010为底的对数nthrootn阶实根 sqrt平方根 1.3 MATLAB基本数学运算当以矩阵作为输入变量进行初等数学函数运算时结果为矩阵每一个元素计算结果组成的矩阵第

23、1章初等数学函数(elfun)复数函数复数函数复数函数复数函数计算以下表达式的值:1)abs(3+4i)2)abs(-5)3)imag(3+4j)4)angle(1+i)1)52)53)44)0.7854abs绝对值或复数的模imag 取复数的虚部real取复数的实部angle复数的相平面角isreal 是否是实数conj复数共轭1.3 MATLAB基本数学运算第1章初等数学函数(elfun)数论函数数论函数数论函数数论函数计算以下表达式的值:1)fix(0.7)2)floor(0.7)3)ceil(0.7)4)round(0.7)1)02)03)14)11.3 MATLAB基本数学运算fix

24、向零圆整floor向负无穷圆整ceil向正无穷圆整round 向最近整数圆整mod求余rem无符号求余sign实数的正负 1)mod(-3,2)2)rem(-3,2)3)sign(-3)1)-12)13)-1第1章例题3计算在1/2英寸不锈钢管中,以2000lb/hr流量输送水,当水的温度为10、20、30、40、50时,压降分别为多少?牛顿流体在不锈钢管中的流动压降可由下式估算:8.42.08.120000DMP=流体密度可由下式描述:流体粘度由下式描述:对于水,A0.34710;B0.2740;Tc647.13K;n0.28571对于水,A=-10.2158;B=1.7925E3;C1.7

25、730E-2;D=-1.2631E-05nCTTBA)1(=210/logDTCTTBA+=1.3 MATLAB基本数学运算第1章例题3 M=2000;D=0.5;T=283:10:323;miu=10.(-10.2158+1.7925e3./T+1.7730e-2*T-1.2634e-05*T.2);rhou=21.6688*0.2740.(-(1-T/647.13).0.28571);deltP=M1.8*miu.0.2./(20000*D4.8*rhou)回车后得到结果如下:19.8446 19.0149 18.3219 17.7420 17.25661.3 MATLAB基本数学运算第1

26、章formatformatformatformat命令命令命令命令formatformatformatformat命令值可以改变命令窗口中运算结果的命令值可以改变命令窗口中运算结果的命令值可以改变命令窗口中运算结果的命令值可以改变命令窗口中运算结果的显示格式,但它不改变运算本身的精度显示格式,但它不改变运算本身的精度显示格式,但它不改变运算本身的精度显示格式,但它不改变运算本身的精度MATLAB命令含义范例format short短格式3.1416format short e短格式科学格式3.1416e+000format long长格式3.14159265358979format long

27、e长格式科学格式3.141592653589793e+000format rat有理格式355/113format hex十六进制格式400921fb54442d18format short gMATLAB默认格式,自动选择以5位固定或浮点小数表示数值第1章程序的组成数据输入运算数据输出变量变量数学运算关系运算逻辑运算流程控制图形输出文件输出屏幕输出文件输入键盘输入1.4 数据输入和输出第1章数据输入 在定义变量时人工输入(在数据较少时采用)用load命令从MAT文件或文本文件读取数据 用fscanf函数 用提示输入函数input dlmread,importdata,xlsread函数或利用

28、菜单栏从文件中读取数据1.4 数据输入和输出第1章数据输出 用save命令,将结果保存至文件 用fprintf函数将结果以固定格式输出至屏幕 用函数disp()将结果输出至屏幕 dlmwirte,xlswrite函数将结果写入txt或Excel文件 图形输出1.4 数据输入和输出第1章数据输出函数disp函数 disp(x)将在命令窗口显示x的内容 x可以为矩阵、字符等例:执行以下语句例:执行以下语句例:执行以下语句例:执行以下语句disp(Corn Oats Hay)disp(rand(5,3)Corn Oats Hay 0.4898 0.7094 0.6797 0.4456 0.7547

29、0.6551 0.6463 0.2760 0.1626disp是一种无格式显示函数,显示的内容与单引号中的内容一致1.4 数据输入和输出第1章数据输出函数fprintffprintf函数的作用按格式输出数据例:执行以下语句x=35;y=68.3579;string=Results:;fprintf(t%stx=%5d,ty=%8.2fn,string,x,y)Results:x=35,y=68.36fprintf(t%stx=%5d,ty=%8.2fn,string,x,y)控制字符变量表后为控制输出格式字符格式转换字符1.4 数据输入和输出第1章fprintf的反斜线控制字符字符字符字符字符

30、功能功能功能功能字符字符字符字符功能功能功能功能b按回格一次f按空格一次r回车n新生成一行反斜线t下一制表符%输出%或输出或x=35;y=68.3579;string=Results:;fprintf(t%stx=%5d,ty=%8.2fn,string,x,y)1.4 数据输入和输出第1章fprintf的转换字符字符字符字符字符功能功能功能功能字符字符字符字符功能功能功能功能%c单个字符%d十进制%e指数,如3.1415e+000%E指数,如3.1415E+00%f固定位数小数%g%e,%f紧凑格式,无意义零不显示%o八进制%s字符或字符串1.4 数据输入和输出第1章以%e输出数字时,以默认

31、格式输出,此时底数的小数默认为6位,指数总是3位。%.n1e将指定底数的小数位数为n1位,如%.3e表示底数有三位小数。1.4 数据输入和输出fprintf的转换字符以%f输出数字时,以默认格式输出,数字小数默认为6位,整数位数根据需要不固定。%n1.n2f将指定数字总位数为n1位,其中的小数为n2位,如%6.2f表示输出6位数字,其中小数2位;n1缺省时表示不指定输出数字位数。第1章例题4已知MATLAB变量空间中已经存在变量a=31.54,运行以下语句屏幕显示是什么?1)fprintf(%3.1fn,a)2)fprintf(%8.2fn,a)3)fprintf(%.0fn,a)4)fpri

32、ntf(%.2en,a)5)fprintf(%st%.2f%n,The percentage is:,a)31.5The percentage is:31.54%3.15e+0013231.541.4 数据输入和输出第1章例题已知变量a=MATRIX,运行以下语句屏幕显示是什么?fprintf(%cn,a)MATRIXIts a MATRIX1.4 数据输入和输出MATRIXfprintf(%10cn,a)fprintf(Itsfaf%sn,a)第1章本讲小结1)MATLAB各种数据类型的赋值2)MATLAB的基本数学运算符和运算函数的使用 注意区别矩阵和数组的乘、除、乘方运算3)MATLAB初等数学函数的使用4)MATLAB程序的输出函数disp和fprintf第1章作业见公共邮箱文档:work02.pdf第1章课堂练习1.以下赋值语句语法正确的是:c)b.2=2a)b=2d)b2=2b)b=22.以下命令的运算结果为:sind(30)-0.5*22+1/223.已知变量a的值为0.0158,以下命令运行后,屏幕显示为:fprintf(t%s%.2f%n,a=,a*100)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com