1、Matlab语言程序设计10/10/10/10/第1页作业1编写Game of life程序。该作业20分。5月10日20时之前交。发邮件到 注明班级、学号、姓名考虑边界生灭规则:2不生不灭 3生 其它灭10/10/第2页答疑和上机答疑:周六晚6:309:00 理学院305室上机:10/10/第3页第三讲 Matlab基本函数 与代数运算3.1 Matlab变量和基本函数3.2 矩阵代数运算10/10/第4页3.1.1 Matlab中惯用常量和变量ans,eps(无穷小),realmax(最大实数),realmin(最小实数),pi(),inf(无穷大),NaN(不确定数),i,j(虚数单位)
2、,nargin,nargout(调用函数时变量数)。10/10/第5页3.1.2 Matlab基本函数round(x)求最靠近x整数。假如x是一个向量,则适合用于全部元素。fix(x)求0方向最靠近x整数floor(x)求小于或等于x最靠近整数。ceil(x)求大于或等于x最靠近整数。rem(x,y)求整除x/y余数。10/10/第6页3.1.2 Matlab基本函数gcd(x,y)求整数x和y最大公因子。lcm(x,y)求正整数x和y最小公倍数,也能用于决定最小公因子。t,n=rat(x)由有理数t/n求x近似值,这里t和n是整数,相对误差小于1e6。t,n=rat(x,tol)与上相同,但
3、相对误差小于tol。rat(x)求x连续分数表示式。10/10/第7页3.1.2 Matlab基本函数abs(x)求x绝对值,即|x|。sign(x)求x符号,假如是正得1;负得 1;零得0。sqrt(x)求x平方根。exp(x)求x指数函数。log(x)求x自然对数,即l nx。log10(x)求x以1 0为底对数。log2(x)求x以2为底对数。10/10/第8页3.1.2 Matlab基本函数sin(x)求正弦x,x为弧度。cos(x)求余弦x,x为弧度。tan(x)求正切x,x为弧度。cot(x)求余切x,即1/(tanx),x为弧度。asin(x)求反正弦。acos(x)求反余弦。a
4、tan(x)求反正切。10/10/第9页3.1.2 Matlab基本函数acot(x)求反余切。sec(x)求正割x,即1/(cosx)。csc(x)求余割x,即1/(sinx)。asec(x)求asecx=arccos(1/x)。acsc(x)求acscx=arcsin(1/x)。10/10/第10页3.1.2 Matlab基本函数sinh(x)求双曲正弦x。cosh(x)求双曲余弦x。tanh(x)求双曲正切xcoth(x)求双曲余切x,即1/(tanhx)。asinh(x)求acosh(x)求10/10/第11页3.1.2 Matlab基本函数atanh(x)求 acoth(x)求 se
5、ch(x)求双曲正割x,即1/(coshx)。csch(x)求双曲余割x,即1/(sinhx)。asech(x)求acsch(x)求10/10/第12页3.1.2 Matlab基本函数相关于复变函数一些函数real(z)求z实部。imag(z)求z虚部。abs(z)求z绝对值,即|z|。conj(z)求z复数共扼。angle(z)求z相角。10/10/第13页3.1.2 Matlab基本函数逻辑运算A&B 返回一个与A A和B B相同维数矩阵。在这个矩阵中,A A和B B对应元素都为非零时,则对应项为1;有一个为零项则为0。A|B 返回一个与A A和B B相同维数矩阵。在这个矩阵中,A A和B
6、 B对应元素只要有一个为非零,则对应项为1;两个矩阵均为零时,则为0。10/10/第14页3.1.2 Matlab基本函数A 返回一个与A A相同维数矩阵。在这个矩阵中,A A是零时,则对应项为1;A A是非零时,则对应项为0。xor(A,B)返回一个与A A和B B相同维数矩阵。在这个矩阵中,假如A A和B B均为零或均为非零时,则对应项为0;假如A A或B B是非零但不是二者同时为非零时,则对应项为1。10/10/第15页3.1.2 Matlab基本函数关系运算符M AT L A B有用于比较矩阵六个关系运算符,也能够对矩阵与一个标量进行比较,即矩阵中每个元素与标量进行比较。关系运算符以下
7、:小于、大于、=大于等于、=等于、=不等于。10/10/第16页3.1.2 Matlab基本函数函数a n y(x)假如x中有一个元素为非零值,那么返回1;不然,返回0。a n y(A)对A进行列运算,依据对应列是否包含非零元素,返回一个带1和0行向量。a l l(x)假如全部元素都是非零值,返回1;不然,返回0。a l l(A)对A进行列操作,依据对应列是否全部元素都为非零值,返回带1和0一个行向量。10/10/第17页3.1.2 Matlab基本函数isnan(A)返回一个维数与A相同矩阵,在这个矩阵中,对应A中有N a N处为1,其它地方为0。isinf(A)返回一个维数与A相同矩阵,在
8、这个矩阵中,对应A中有i n f处为1,其它地方为0。isempty(A)假如A是一个空矩阵,返回1;不然返回0。10/10/第18页3.1.2 Matlab基本函数isequal(A,B)假如A和B是相同,即有相同维数和相同内容,则返回1。isreal(A)假如A是一个不带虚部实矩阵,则返回1;不然,返回零。isstr(x)假如x是一个字符串,返回1;不然为0。isstruct(x)假如x是一个结构,返回1;不然为0。10/10/第19页3.2矩阵代数运算矩阵基本运算 矩阵运算包含“+,-,*,/,;.*,./,.,.,等。+,-运算能够矩阵与常数运算。*为矩阵乘积。/,为右除与左除。./,
9、.,.*,.等均为按位运算。10/10/第20页3.2矩阵代数运算1.加法和减法 假如矩阵A A和B B含有相同维数,那么就能够定义两个矩阵和A A+B B和两个矩阵差A AB B。矩阵A AB B,即对应元素运算。在M AT L A B中,一个mn矩阵A A和一个标量,即一个11矩阵s之间也能进行加和减运算。矩阵A A+s与A A有有相同维数,且元素为A每个元素加s。10/10/第21页3.2矩阵代数运算2 乘法 假如矩阵A A列数等于矩阵B B行数,那么矩阵相乘,即C=A BC=A B,就被定义为二维矩阵。假如不是这种情况,M AT L A B就返回一个错误信息。只有一个例外就是这两个矩阵
10、之一是11,即一个标量,那么M AT L A B是能够接收。在M AT L A B中,乘法运算符是*,所以,命令是C C=A=A*B B。元素ci j是A A第i行和B B第j列点积。矩阵C C有与A A相同行数和与B B相同列数10/10/第22页3.2矩阵代数运算M AT L A B也包含其它乘积。命令d o t(x,y)得到含有相同元素数量两个向量x x和y y点积,也称为标量积或内积。假如点积为零,则两个向量是正交。dot(x,y)得到向量x x和y y点积dot(A,B)得到一个长度为n行向量,这里元素是A A和B B对应列点积。矩阵A A和B B必须是含有相同维数mn。10/10/
11、第23页3.2矩阵代数运算对于各具三个元素两个向量x x和y y,命令cross(x,y)给出向量积或叉积。cross(x,y)得到向量x x和y y叉积。cross(A,B)得到一个3n矩阵,其中列是A A和B B对应列叉积。矩阵A A和B B必须含有相同维数3n。10/10/第24页3.2矩阵代数运算3.除法在M AT L A B中,有两个矩阵除法符号,左除和右除/。假如A A是一个非奇异方阵,那么A B和B/A对应A A逆与B B左乘和右乘,即分别等价于命令i n v(A)*B和B*i n v(A)。10/10/第25页3.2矩阵代数运算假如A A是一个方阵,那么X=A B是矩阵方程A
12、A X X=B B解inv(A A)B B,这里X X含有与B B相同维数。在B B=b b是一个列向量这么一个特殊情况下,x=A b是线性系统A XA X=b b解。假如A A是一个mnmn矩阵,X=A B得到矩阵方程A XA X=B B最小二乘解。矩阵方程X AX A=B B解是X X=B/AB/A,它等同于(A(A B)B),即右除能够由左除定义。这里,撇号表示转置。10/10/第26页3.2矩阵代数运算4.转置和共轭一个主要运算是转置和共轭转置,它在MATLAB中用撇表示。假如A A是一个实数,那么它被转置时,第1行变成第1列,第2行变成第2列,依这类推,一个mn矩阵变为一个nm矩阵。10/10/第27页3.2矩阵代数运算假如仅希望转置,在撇号之前输入一点.,A A.表示转置。5.按位操作运算.按位运算也能够元素与元素逐次进行。矩阵维数要相同,能够是多维。假如运算是由一点进行,那么这个运算实施是元素方式。对于加法和减法,数组运算和矩阵运算没有差异。运算符是:+.*./.10/10/第28页3.2矩阵代数运算6.矩阵乘方对于二维方阵,A Ap次乘方能够用A p实现。假如p是一个正整数,那么这个幂能够由许多矩阵乘法运算定义。对于p=0,得到与A A维数相同单位矩阵;当p 0时,假如AA-1存在,可定义A p,它是与i n v(A)(-p)相同。10/10/第29页