matlab在科学计算中的应用2+-+图形绘制,函数编写+语句流程+矩阵的运算提取

上传人:j7****6 文档编号:61649976 上传时间:2018-12-08 格式:PPT 页数:72 大小:970.50KB
返回 下载 相关 举报
matlab在科学计算中的应用2+-+图形绘制,函数编写+语句流程+矩阵的运算提取_第1页
第1页 / 共72页
matlab在科学计算中的应用2+-+图形绘制,函数编写+语句流程+矩阵的运算提取_第2页
第2页 / 共72页
matlab在科学计算中的应用2+-+图形绘制,函数编写+语句流程+矩阵的运算提取_第3页
第3页 / 共72页
matlab在科学计算中的应用2+-+图形绘制,函数编写+语句流程+矩阵的运算提取_第4页
第4页 / 共72页
matlab在科学计算中的应用2+-+图形绘制,函数编写+语句流程+矩阵的运算提取_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《matlab在科学计算中的应用2+-+图形绘制,函数编写+语句流程+矩阵的运算提取》由会员分享,可在线阅读,更多相关《matlab在科学计算中的应用2+-+图形绘制,函数编写+语句流程+矩阵的运算提取(72页珍藏版)》请在金锄头文库上搜索。

1、第二章 MATLAB 语言程序设计基础,MATLAB 语言的简洁高效性 MATLAB 语言的科学运算功能 MATLAB 语言的绘图功能 MATLAB 庞大的工具箱与模块集 MATLAB 强大的动态系统仿真功能,MATLAB 语言是当前国际上自动控制领域的首选计算机语言,也是很多理工科专业最适合的计算机数学语言。通过学习可更深入理解和掌握数学问题的求解思想,提高求解数学问题的能力,为今后其他专业课程的学习提供帮助。 MATLAB语言的优势:,本章主要内容,MATLAB 程序设计语言基础 基本数学运算 MATLAB语言流程控制 MATLAB 函数的编写 二维图形绘制 三维图形绘制,2.1 MATL

2、AB 程序设计语言基础,MATLAB 语言的变量命名规则是: (1)变量名必须是不含空格的单个词; (2)变量名区分大小写; (3)变量名最多不超过19个字符; (4)变量名必须以字母打头,之后可以是 任意字母、数字或下划线,变量名中 不允许使用标点符号,MATLAB 的保留常量,数学运算符号及标点符号,(1)MATLAB的每条命令后,若为逗号或无标点符号, 则显示命令的结果;若命令后为分号,则禁止显示结果. (2)“%” 后面所有文字为注释. (3) “.”表示续行.,双精度数值变量 IEEE标准,64位 (占8字节),11指数位,53数值位和一个符号位 double( ) 函数的转换 其他

3、数据类型 uint8( ),无符号8位整形数据类型,值域为0至255,常用于图像表示和处理。(节省存储空间,提高处理速度) int8( ), int16( ), int32( ),uint16( ), uint32( ),数值型数据结构,符号型,sym(A), 常用于公式推导、解析解解法 符号变量声明 syms var_list var_props 例:syms a b real syms c positive 符号型数值可采用变精度函数求值 vpa(A), 或 vpa(A,n) vpa(pi) ans = 3.1415926535897932384626433832795 vpa(pi,60

4、) ans = 3.14159265358979323846264338327950288419716939937510582097494,符号型变量数据类型,字符串型数据:用单引号括起来 。 多维数组:是矩阵的直接扩展,多个下标。 单元数组:将不同类型数据集成到一个变量名下面,用表示;例:用Ai,j可表示单元数组A的第i行,第j列的内容。 类与对象:允许用户自己编写包含各种复杂详细的变量,可以定义传递函数。,MATLAB支持的其它数据结构,直接赋值语句 赋值变量赋值表达式 例: a=pi2 a = 9.8696 例:表示矩阵 B=1+9i,2+8i,3+7j;4+6j 5+5i,6+4i;7

5、+3i,8+2i 1i B = 1.0000 + 9.0000i 2.0000 + 8.0000i 3.0000 + 7.0000i 4.0000 + 6.0000i 5.0000 + 5.0000i 6.0000 + 4.0000i 7.0000 + 3.0000i 8.0000 + 2.0000i 0 + 1.0000i,MATLAB 的基本语句结构,函数调用语句 返回变量列表函数名(输入变量列表) 例:a,b,c=my_fun(d,e,f,c) 冒号表达式 v=s1:s2:s3 该函数生成一个行向量v,其中s1是起始值, s2是步长(若省略步长为1), s3是最大值。 例:用不同的步距生

6、成 (0,p) 间向量。 v1=0:0.2:pi v1 = Columns 1 through 9 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 Columns 10 through 16 1.8000 2.0000 2.2000 2.4000 2.6000 2.8000 3.0000, v2=0:-0.1:pi %步距为负,不能生成向量,得出空矩阵 v2 = Empty matrix: 1-by-0 v3=0:pi v3 = 0 1 2 3 v4=pi:-1:0 逆序排列构成新向量 v4 = 3.1416 2.1416 1

7、.1416 0.1416 v5=0:0.4:pi,pi v5 = 0 0.4000 0.8000 1.2000 1.6000 2.0000 2.4000 2.8000 3.1416,基本语句格式 B=A(v1,v2) v1、 v2分别表示提取行(列)号构成的向量。 例: A=1,2,3,4;3,4,5,6;5,6,7,8;7,8,9,0 A = 1 2 3 4 3 4 5 6 5 6 7 8 7 8 9 0 B1=A(1:2:end,:) 提取全部奇数行、所有列。 B1 = 1 2 3 4 5 6 7 8,子矩阵提取, B2=A(3,2,1,2,3,4) 提取3,2,1行、2,3,4列构成子矩

8、阵。 A = B2 = 1 2 3 4 6 7 8 3 4 5 6 4 5 6 5 6 7 8 2 3 4 7 8 9 0 B3=A(:,end:-1:1) 将A矩阵左右翻转,即最后一列排在最前面。 B3 = 4 3 2 1 6 5 4 3 8 7 6 5 0 9 8 7,矩阵表示 矩阵转置 数学表示 (若A有复数元素,先转置再取各元素共轭复数值,Hermit转置) MATLAB 求解 BA.(%实矩阵的转置) C=A (%复数矩阵的转置),2.2 基本数学运算,矩阵的代数运算,矩阵加减法 C=A+B D=A-B 注意维数是否相等 注意其一为标量的情形 矩阵乘法 数学表示 MATLAB 表示

9、C=A*B 注意两个矩阵相容性,矩阵除法 矩阵左除:AX = B,求 X MATLAB 求解:X=AB 若A为非奇异方阵,则 X=A-1B 最小二乘解(若A不是方阵) 矩阵右除:XA = B,求 X MATLAB求解:X=B/A 若A为非奇异方阵,则 X=BA-1 最小二乘解(若A不是方阵),矩阵翻转 左右翻转 B=fliplr(A) 上下翻转 C=flipud(A) 旋转 90o (逆时针) D=rot90(A) 如何旋转180o? D=rot180(A) ? Undefined function or variable rot180. D=rot90(rot90(A) 矩阵乘方 A 为方阵

10、,求 MATLAB 实现: F=Ax,点运算-矩阵对应元素的直接运算 数学表示 : MATLAB 实现: C=A.*B 例: A=1,2,3;4,5,6;7,8,0; B=A.A B = 1 4 27 256 3125 46656 823543 16777216 1 C=A.*A C = 1 4 9 16 25 36 49 64 0,逻辑变量: 当前版本有逻辑变量 对 double 变量来说,非 0 表示逻辑 1 逻辑运算(相应元素间的运算) 与运算 A&C 或运算 A|C 非运算 A 异或运算 xor(A,C),矩阵的逻辑运算,各种允许的比较关系 , =, A A = 1 2 3 4 5 6

11、 7 8 0 find(A=5), 大于或等于5元素的下标 ans = 3 5 6 8 (按列查找,从第一列开始,返回次序号),矩阵的比较运算, i,j=find(A=5);i,j 显示行标,列标 ans = A= 3 1 1 2 3 2 2 4 5 6 3 2 7 8 0 2 3 all(A=5) 某列元素全大于或等于5时,相应元素为1,否则为0。 ans = 0 0 0 any(A=5) 某列元素中含有大于或等于5时,相应元素为1,否则为0。 ans = 1 1 1,解析结果的化简与变换,MATLAB 实现: s1=simple(s) 从各种方法中自动选择最简格式 s1,how=simpl

12、e(s) 化简并返回实际采用的化简方法 其中,s为原始表达式,s1为化简后表达式,how为采用的化简方法。 其他常用化简函数(信息与格式可用 help命令得出) collect( ) 合并同类项 expand( ) 展开多项式 factor( ) 因式分解 numden( ) 提取多项式的分子和分母 sincos( ) 三角函数的化简,例: syms s; P=(s+3)2*(s2+3*s+2)*(s3+12*s2+48*s+64) P = (s+3)2*(s2+3*s+2)*(s3+12*s2+48*s+64) simple(P) % 一系列化简尝试,得出计算机认为的最简形式 ans = (

13、s+3)2*(s+2)*(s+1)*(s+4)3, a,m=simple(P) % 返回化简方法为因式分解方法,用 factor( ) 函数将得同样结果 a = (s+3)2*(s+2)*(s+1)*(s+4)3 m = factor expand(P) ans = s7+21*s6+185*s5+883*s4+2454*s3+3944*s2+3360*s+1152,变量替换 其中,f为原表达式,用x*替换x得出新的。 例:求其 Taylor 幂级数展开 syms a b c d t; % 假设这些变量均为符号变量 f=cos(a*t+b)+sin(c*t)*sin(d*t); % 定义给定函

14、数 f(t) f1=subs(f,a,b,c,d,t,0.5*pi,pi,0.25*pi,0.125*pi,4) f1 = -1.0000,基本数论运算 下取整、上取整、四舍五入、离0近方向取整、最简有理数、求模的余数、最大公约数、最小公倍数、质因数分解、判定是否为质数,下取整 上取整 四舍五入 离0近方向取整 最简有理数 求模的余数 最大公约数 最小公倍数 质因数分解 判定是否为质数,例:对下面的数据进行取整运算 -0.2765,0.5772,1.4597,2.1091,1.191,-1.6187 A=-0.2765,0.5772,1.4597,2.1091,1.191,-1.6187; floor(A) % 向 -inf 方向取整 ans = -1 0 1 2 1 -2 ceil(A) % 向 +inf 方向取整 ans = 0 1 2 3 2 -1 round(A) %取最近的整数 ans = 0 1 1 2 1 -2 fix(A) %向 0 的方向取整(相当于取个数位) ans = 0 0 1 2 1 -1,例:3x3 Hilbert 矩阵,试用 ra

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

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号