Matlab数学运算基础
序言
Matlab以矩阵作为基本运算对象,有丰富的函数库和工具箱,适用于科学和工程系统的设计与计算。与Matlab同一类型的数学软件有Maple,Mathmatics,Mathcad等,与Matlab相比,这三种数学软件最明显的特点是,可以使用教科书通用数学符号,如等,称作草稿纸特征。
数学软件的内容通常应包括,1基本规则(书写规则,运算符,数据类型等),2内置函数,3图形(二维,三维等),4符号数学,5程序设计,6通用数值算法(线性方程组,高次方程、插值和拟合、数值积分、数值微分,还有...),7专业系统数值算法(统计,通信,控制,模糊数学,其它...),等内容,我们可以据此评价,学习,应用一个特定的数学软件。
Matlab手机版的特点是:小外壳+云计算;功能包括Matlab内核(2020版全部命令和函数)+SymbolicMathToolbox;可以在云上创建、编辑、运行、调用m文件。手机上进行复杂运算时,给力而方便,手机版用法见本文末尾。
目录
1 数据表示方法
2 矩阵的赋值
3 向量的赋值
4 用矩阵元素组成新矩阵
附:矩阵赋值中的标点符号
5矩阵运算
6多维矩阵
7元胞数组
8自定义函数
9数值计算
10符号数学
11绘图
12文件
13标识符和控制语句
14字符串
16常数
17帮助
18主要函数库
补遗
1数据表示方法
1.Matlab中的数据单位是矩阵,矩阵的元素可以是实数,也可以是复数。
复数表示2.73+42.6i,2.73+42.6j,a+bi,a+bj,但变量a和b应先赋值。i而不用j。
2.向量是矩阵的特殊形式,即向量是只有一行或者只有一列的矩阵。
3.单个数的属性为1×1矩阵,例如,a=4,size(a),返回[11],但与矩阵相加,相乘时,按数学规则视为单个数。
4.矩阵的左上角元素的为(1,1),而不是(0,0),向量的是(1)而不是(0)。
5.矩阵元素也可以号=(元素列号-1)x矩阵总行数+元素行号
>>a=[1234;5678;9101112]
得a=234
5678
9101112。
>>a(9)%a((3-1)3+3)=a(9)
得a=11。
2矩阵的赋值
1.对整个矩阵赋值
>>a=[236,347;365,56]
>>b=[236347;36556]%逗号可以省略,用空格代替
>>c=[236,347;%在窗口屏幕,本例和下例,都是用shift+enter进行换行
365,56]%若在文本编辑器中,用回车换行写成矩阵样式也是可以的
>>d=[236347
36556]
2.逐个元素赋值
逐个元素赋值时,允许跳空赋值,跳过的元素的值默认为0。
>>a(1,1)=34;a(1,2)=57;a(3,4)=17
得a=345700
0000
0007
3.整行赋值
整行赋值时,所赋数据的列数,必须与原矩阵的列数相同。
为第4行赋值
>>a=[123;456];a(4,:)=[987];
>>a
得a=123
456
000
987。
4.整列赋值
整列赋值时,所赋数据的行数,必须与原矩阵的行数相同
为第5列赋值
>>a=[123;456];a(:,5)=[1011]''
>>a
a=123010
456011。
3向量的赋值
1.逐个元素赋值
向量的逐个元素赋值与矩阵相同。
2.等距赋值a=start:step:end或a=[start:step:end]
>>a=1:2:10
a=13579。
3.等差赋值a=linspace(a1,a2,n)
从a1到a2取n个等分点,返回这n个等分点的值。
4.等比赋值a=logspace(a1,a2,n)
从a1到a2取n个等分点,返回以10为底,n个等分点的值为指数的幂。
4用矩阵元素组成新矩阵
1.取大矩阵元素组成新的矩阵
取a矩阵中第2行和第3行这两行的第,,列组成新的矩阵b
>>a=[11121314;15161718;19202122;23242526];
>>b=a([2,3],[2,3,4])
得b=161718
202122。
2.用小矩阵组成大的矩阵
将2个矩阵左右拼接
>>a=[12;34];b=[56;78]
>>c=[a,b]
得c=1256
3478。
将2个矩阵上下拼接
>>d=[a;b]
得d=12
34
56
78。
附:矩阵赋值中的标点符号:
1.逗号或者空格,隔开同一行中的元素
2.分号或者回车符;隔开矩阵中的行回车直观的方式在屏幕上矩阵
3.冒号:⑴a=3:0.5:10或a=[3:0.5:10] 建立行向量
⑵a(:,4)全部行的第4列
a(3,:)全部列的第3行
⑶a(1:4,3)第3列的第1行到第4行
a(2,2:3)第2行的第2列到第3列
5矩阵运算
对矩阵元素运算有3种类型:一是数学函数分别作用于矩阵中的每一个数据,结果仍为矩阵,一是两个行和列分别相同的矩阵按元素进行加减乘除,称作点运算,一是用求和函数sum按行,按列以及对全部元素求和。
①例如对矩阵A中各元素求正弦值sin(A)
②点乘m1.m2
点m.^figure
点除m1./m2m1.\m2左点除和右点除是一样的
点加减m1±m2矩阵加减,按数学定义就是点运算
③sum(A),sum(A,1) 按列求和(sum的函数库?)
sum(A,2) 按行求和
sum(A(:)) 矩阵求和
2.对矩阵整体进行运算
①对矩阵整体进行乘,除,乘方,转置:
乘m1m2
左除m1\m2
右除m1/m2
乘方m^figure
转置mat’
逆inv(mat)
若 A方阵B方阵=c方阵则 A方阵=B方阵\C方阵B方阵=c方阵/A方阵
若 A方阵B向量=c向量则 B向量=A方阵\C向量
②以矩阵整体为参数求函数值,有以下3个函数:
矩阵平方根sqrtm
矩阵对数logm
矩阵expm
例:expm(m)=e^m
注:51.和5.仅介绍了部分运算符库是opsmatfun。
6多维矩阵
矩阵是一个数学实体,又是一种数据结构,而多维矩阵则仅仅是一种数据结构,也可称为多维数组函数cat,可以将维数相同的矩阵组成多维数组。
设三维矩阵的元素表达式m(i,j,k)中,i为行号,j为列号,k为页号以下对4个元素赋值:
>>m(3,3,3)=333;m(3,3,2)=332;m(3,3,1)=331;m(2,1,2)=212;
>>m
m(:,:,1)=000%第一页
000
00331,
得m(:,:,2)=000%第二页
21200,
00332
得m(:,:,3)=000%第三页
000
00333。
7元胞数组
元胞数组是的数据结构,元素可以是数值,字符串,矩阵,元胞数组
>>a=cell(2,2);%预分配
>>a{1,1}=''cellclass'';
>>a{1,2}=[2.75.9;4.78.9];
>>a{2,1}=[''a'',''b'',''c''];
>>a{2,2}=[97.358.264.3;32.179.552.1;45.032.158];
>>a%显示元胞第一层各元素
得a=''cellclass''[2x2double]
''abc''[3x3double]
>>a{1,2}%显示处于第一层的指定的元胞元素
得a{1,2}=2.70005.9000
4.70008.9000。
>>a{2,2}(2,3)%显示处于第二层的矩阵的指定元素
得a{2,2}(2,3)=52.1000。
相关函数:cell2mat 元胞元素转换为数值
str2mat 元胞元素转换为字符串
celldisp 显示元胞数组的全部元素
8自定义函数
自定义函数可以像内部函数一样在M窗口中被调用,并且,有的函数也要求用自定义函数作为参数自定义函数应包含在一个m文件中,文件名必须与函数名相同’function’标识的函数定义行,定义了函数的’原型’,定义行之后为语句序列。
编写m文件一般用matlab自带的编辑器,也可以使用其它纯文本编辑器,在命令窗口,使用’edit文件名’命令,可以自动转到编辑器中,指定文件不存在,则创建;存在,则编辑。
在matlab自带的编辑器中点击运行命令,运行结果即出现在命令窗口中。在命令窗口,脚本文件名作为命令,函数文件名作为函数。此时,包含该m文件的目录应为当前目录。
自定义函数的框架格式是:
有多个返回值的框架格式:
调用:[v1,v2]=fun_name(x1,x2,...)
注:为使计算过程将不显示在屏幕上,每个表达式后面都要使用分号’;’。
9数值计算
1.求向量积
向量点乘dot(A,B)
向量叉乘cross(A,B)
2.多项式计算
设A是多项式的系数向量(从高到低)
求多项式的根roots(A)
求多项式的值polyval(A,x)l是字符L的小写
多项式乘法conv(A,B)Convolution卷积
多项式除法,或称反卷积[QR]=deconv(B,A)B=conv(A,Q)+R
,求
手工计算不难得出。
使用deconv函数的过程是
>>b=[4321];a=[123];
>>[qr]=deconv(b,a)
得q=4-5,
r=00016。
3.插值和曲线拟合
插值interp1(X,Y,Xi,"spline") %X测量点,Xi插值点,Yi插值。interp1之1是数字
%"method"有3种,"liner"(默认),"cube","spline"
Yi=spline(X,Y,Xi) %X测量点,Xi插值点,
多项式拟合polyfit(X,Y,n) %X,Y,n是拟合多项式阶数
4.解线性方程组
设有线性方程组
>>a=[12;34];b=[56]'';
>>x=a\b
得x=-4.00004.5000,
即
线性方程组有以下4种直接解法:
①行列式法Xn=Dn/D
分别求出各未知数的特征行列式的值和系数行列式的值,再依据克莱姆法则做除法求出全部解。
②矩阵左除法X=A\B
。
③LU分解法[L,U]=lu(A)X=U\(L\B)
对方程组AX=B的系数矩阵A进行LU分解,使之A=LU。将方程组变为LUX=B,再用除法求解。
④QR分解法[Q,R]=qr(A) X=R\(Q\B)
对方程组AX=B的系数矩阵A进行QR分解,使之A=QR,将方程组变为QRX=B,再用除法求解。
⑤逆矩阵法X=inv(A)B
系数矩阵A
⑥Cholesky分解法[R,p]=chol(A)X=R\(R''\B)
对具有对称正定系数矩阵的方程组AX=B的系数矩阵A进行Cholesky分解,若p=0,则可得A=R''R。将方程组变为R''RX=B,再用除法求解不过,即使p=0,也可能得到与其它算法不一样的结果,所以,使用Cholesky分解的方法求解线性方程组应该慎重。
前5种方法解同一个线性方程组,可以比较计算结果
a=[3.66.8-3.563.904.5-3.212.12-5.789.455.23;
7.56-4.34.332.154.5-2.72.441.547.33-1.2;
-14.33-2.331.587.6812.447.554.664.88-12.335.88;
5.785.668.44-3.5613.461.234.8811.227.991.55;
16.337.334.552.339.110.45-2.78-5.5-5.67.99;
14.336.772.333.228.115.43-5.66-2.114.3311.22;
4.56-1.112.335.678.257.3-6.1-5.17.89-13.12;
5.89-3.27-0.85.72-3.24-5.611.2314.355.66-8.2;
6.575.2-5.234.3611.0-2.05.6-7.35.0-3.0;
-3.5-2.7-1.15.8-3.07.633.2811.568.08.14];
b=[13.714.5-11.03.28.45.0-3.08.03.2314.3](;
a0=det(a);%求系数行列式
forn=1:10
d=a;%将系数矩阵赋于中间变量
d(:,n)=b;%替换对应列,得到第n个未知数的特征行列式
x1(n)=det(d)/a0;%求得第n个未知数
end
[l,u]=lu(a);%对系数矩阵a进行lu分解
[q,r]=qr(a);%对系数矩阵a进行qr分解
na=inv(a);%求系数矩阵a的逆矩阵x4=nab
x1=x1''%显示行列法的结果
x2=a\b %矩阵左除法求解
x3=u\(l\b)%lu法求解
x4=r\(q\b)%qr法求解
x5=nab%逆矩阵法求解
cond=cond(a)%求系数矩阵的条件数,以估计解的精度
运行上述程序后,获得的5组根和系数矩阵的条件数,条件数较大。5组根中,仅末两位有不同:
x1=0.280854547458574
0.347123573010933
3.127711931533276
0.830585905100446
-1.943128468044648
1.326701284112313
3.227591846394650
-2.104743024355876
0.951364103552106
0.617273773143770
x2=0.280854547458574
0.347123573010932
3.127711931533273
0.830585905100446
-1.943128468044647
1.326701284112311
3.227591846394649
-2.104743024355875
0.951364103552106
0.617273773143770
x3=0.280854547458574
0.347123573010932
3.127711931533273
0.830585905100446
-1.943128468044647
1.326701284112311
3.227591846394649
-2.104743024355875
0.951364103552106
0.617273773143770
x4=0.280854547458575
0.347123573010932
3.127711931533274
0.830585905100443
-1.943128468044649
1.326701284112316
3.227591846394653
-2.104743024355877
0.951364103552106
0.617273773143770
x5=0.280854547458574
0.347123573010933
3.127711931533275
0.830585905100446
-1.943128468044648
1.326701284112313
3.227591846394650
-2.104743024355878
0.951364103552106
0.617273773143770
cond=27.4060290637541515.解任意方程fzero(fun,x0)
fun是方程的符号表达式,x0是迭代起始值
求解方程的根
>>y=(x^2-3cos(x)-7(
>>x=fzero(y,3)
得x=2.25775155709708,或者
>>y=fzero((x^2-3cos(x)-7(,3)
得x=2.25775155709708。
6.解非线性方程组(数值法,而不是符号法)
首先建立fun.m文件,m文件的文件名必须与文件中的函数名相同:
functiony=fun(x)
y(1)=x(1)-0.7sin(x(1))-0.2cos(x(2))-0.75;
y(2)=x(2)-0.7cos(x(1))+0.2sin(x(1))+1.3;
%使用方法:fsolve要求一个自定义函数)
>>fsolve(''fun'',[00],optimset(''fsolve''))
得x=1.47447478468452-1.43175210046021,
y=1.0e-006
0.19292374231483-0.03529814840419。
其中[00]是迭代起始点,可以是实数点,也可以是复数点用fzero和fsolve解方程组速度快,缺点是迭代起始点不好选择,有复数根更是如此使用符号法函数solve可以克服这个缺点,但用solve函数解题速度比较慢。
6.求随机数randperm
以上是函数名,具体用法请借助help,也可借助浏览器,搜索他人的使用经验。
7.显示精度
formatshort %定点格式5位数字,包含1位整数
formatlong %定点格式,双精度数15位数字,单精度数7位数字,都包含1位整数
formatshorteng %工程格式(科学格式),至少5位数字,和3位数字的指数
formatlongeng %工程格式(科学格式),双精度数15位数字,和3位数字的指数
输入的非整数,系统默认为双精度数,可用single(x)和double(x)进行单精度数和双精度数互相转换。
10符号数学
1.建立符号表达式
>>symsx
y=2x^2+sin(x)
2.定义数值符号
>>s=sym(''0.6789421798645731098759378567897654'')%数值要带引号
s=0.6789421798645731098759378567897654
3.复合函数
>>symsxt
>>y=2x^2+sin(x)
>>x=t^2
>>w=compose(y,x)
w=2t^4+sin(t^2)
4.求符号表达式的值
>>symsxy;m=''2x^2+sin(y)'';
>>x=sym(''3.45'');y=sym(''3.67'');
>>eval(m)
ans=23.300841452146388427791975941086。
5.解非线性方程组用solve(''eqn1'',''eqn2'',...,''eqnN'')函数
例1:设有非线性方程组
>>[x1,x2]=solve(''x1-0.7sin(x1)-0.2cos(x2)-0.75=0'',''x2-0.7cos(x1)+0.2sin(x1)=-1.3'')
x1=1.474474611643002028761298028880,
x2=-1.4317519412660980161387167052389。
例2:设有非线性方程组
>>[x1,x2]=solve(''x1^2-x2-0.75=0'',''x2^2-0.7x1+1.3=0'')
x1=[-1.0308377032790522581043905579820-.69454388822563214024094924875560i]
[-1.0308377032790522581043905579820+.69454388822563214024094924875560i]
[1.0308377032790522581043905579820-.37797027440221192779145393835429i]
[1.0308377032790522581043905579820+.37797027440221192779145393835429i]
x2=[-0.16976484216994800533187380202924+1.4319240531300268430618401527465i]
[-0.16976484216994800533187380202924-1.4319240531300268430618401527465i]
[0.16976484216994800533187380202924-0.77925201914505860066403521466727i]
[0.16976484216994800533187380202924+0.77925201914505860066403521466727i]
例3:设有非线性方程
>>x=solve(''x^2-0.56x+7=0'')
得x= .28000000000000000000000000000000+ 2.6308933843848556836562188304088i
.28000000000000000000000000000000- 2.6308933843848556836562188304088i。
6.解复系数线性方程组
%本题来自用回路电流法解电路,未知数是回路电流
d=[2+4i,-1,-4i;%a为系数矩阵,也是系数行列式
-1,2-0.25i,-1;
-4i,-1,3+4i];
c=[8.6603+5i;%b为常数项向量
0;
0];
%以下用矩阵左除法计算电流
i=d\c
%以下用行列式除法,即克莱姆法,计算电流
d1=d;%以下d1,d2,d3用常数项替换后的特征行列式
d1(:,1)=c(:,1);
i1=det(d1)/det(d)%求i1(det为求行列式值的函数,下同)
d2=d;
d2(:,2)=c(:,1);
i2=det(d2)/det(d)%求i2
d3=d;
d3(:,3)=c(:,1);
i3=det(d3)/det(d)%求i3
%以下用符号法解,用x1,x2,x3代替i1,i2,i3,注意,在符号表达式中虚数i与系数之间要加乘号
[x1,x2,x3]=solve(''(2+4i)x1+(-1)x2+(-4i)x3=8.6603+5i'',''(-1)x1+(2-0.25i)x2+(-1)x3=0'',''(-4i)x1+(-1)x2+(3+4i)x3'')
%x1=3.5005813725490196078431372549020+1.1686745098039215686274509803922i
%x2=2.6576313725490196078431372549020+2.0404745098039215686274509803922i
%x3=2.3248000000000000000000000000000+2.2478666666666666666666666666667i
%以下分别用矩阵乘法c1=di和c2=d[i1;i2;i3]验算
c1=di
c2=d[i1;i2;i3]
%以下用指数式表达电流
i1=sprintf(''%5.2f∠%5.2f°'',abs(i1),180angle(i1)/3.1416)
i2=sprintf(''%5.2f∠%5.2f°'',abs(i2),180angle(i2)/3.1416)
i3=sprintf(''%5.2f∠%5.2f°'',abs(i3),180angle(i3)/3.1416)
7.变量代换
>>symsx1x2;s=3x1-x2-2;
得s=3x1-x2-2。
>>x1=2;x2=3;
>>subs(s,''x1,x2'',[x1,x2])
得ans=1。
8.设置计算精度
digits函数用于设置符号法计算结果的精度。
>>digits()默认精度是32位有效数字
Digits=32。
>>digits(10)%设置10位有效数字
9.VPA函数的应用
VPA函数用于计算符号表达式。
>>vpa(''20/3'')按此前用digits设置的有效数字位数计算
ans=6.666666667
>>symsz
>>t=(z-exp(-2+3i))/(z-exp(-5.37-6.25i))%按此前用digits设置的有效数字位数计算
t=z+2413585594205785/18014398509481984-(5504772525886581i)/288230376151711744。
>>t1=vpa(t,5)%按有效数字位数计算digits原设精度不变
t1=(z+0.13398-0.019099i)。
>>t2=subs(t,''z'',0)%用0代换z
t2=0.133980000000000-0.019099000000000i。
11绘图
1.
plot(X,Y) %X=[x1,x2,...,xn],Y=[y1,y2,...,yn]或Y=fun_name(X)
%X为横坐标值,为自变量,Y为纵坐标值,为X的因变量
plot(X,Y,LineSpec) %LineSpec为线型,颜色和标记,例如’-r+’
plot(X1,Y1,...,Xn,Yn),plot(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn)%同时画多个图形
fplot(@(x)fun(x),[x1x2]),fplot(‘fun(x)’,[x1x2])%区间绘图的另一种格式
%实例1fplot(@(x)sin(x),[02pi]);hold
%实例2fplot(@(x)sin(x)0.5,[02pi],''r+-'')
loglog,semilogx,semilogy %双对数,x轴对数,y轴对数(用法同plot
polar(θ,ρ) %极坐标绘图,θ为矢径的极角,为自变量,ρ为矢径的长度,为θ的函数
hold,holdon,holdoff %交替开关,重叠,覆盖
%重叠状态下,先画的图形的范围应大于后面画的图形的范围
figure %创建图形窗口
figure(i) %创建或打开已存在的图形窗口
close,closeall %
clf,clfreset %
set(gca,''xlim'',[010],''ylim'',[-33]) %设置当前图形窗口的范围图形语句:plot(0:0.01:2pi,sin(0:0.01:2pi))
axisequal
gridon
以上各绘图函数以及的step,impulse,bode,nyquist等用于控制系统绘图加上LineSpec。
LineSpec为以下3种类型(或3选2,或3选1)的参数组合成的字符串:
线型参数:-(默认)实线,,
标记参数:o圆,,,,,(仅部分
颜色参数y黄色,m(洋红)c青色,r红色,g绿色,k黑色,w白色
2.图形编辑
plot,polar等绘图函数,将图形生成在图形窗口,如右图,窗口中编辑,插入和工具3个菜单,各有若干个命令可对图形进行编辑,例如编辑属性,插入标签、文字,3维旋转,以及复制图形等等。
3.根据较少的测量值画spline图形
x=0:10; %取11个测量点
y=sin(x); %以sin(x)的值作为测量值
xx=0:.25:10; %取41个插值点
yy=spline(x,y,xx); %根据测量点x和测量值y,求41个插值点xx上的样条值yy。
plot(x,y,’o’,xx,yy) %画出样条值的图形,并以o标出测量点进行比较
12文件
.格式文件读写
a打开id=fopen(''file_name'',fashion)
b写fprintf(id,format,variable)
c读fscanf(id,format,size)
d关闭fclose(id)
2.数据文件读写
a存入savefile_namevariable-ascii-ascii表示以ascii方式保存
读load(''data_file'')读入的数据自动存入与数据文件同名的变量中
.从屏幕输入variable=input(''prompt'')
4.用对话框输入answer_c=inputdlg(''prompt'')
注意:返回的值answer_c是cell类型,得到数值,请用char和strnum两个函数进行转换,即
answer_s=char(answer_c),answer_n=str2num(answer_s(1))
.显示到屏幕上disp(variable)只显示变量值
display(variable)显示变量值和变量符号
13标识符和流程控制语句
注释符%
换行... %适用于手机版的命令窗口,而且表达式后面,换行符前,要加逗号’,’或分号’;’
%例如:a=5,...+换行键
%若电脑上还可用shift+回车键换行
流程控制语句不论在m文件中,还是在屏幕上,流程控制语句既可以写成分行的形式,也可以写成单行的形式,对于单行形式,一组控制语句中的各个语句之间应该用逗号或分号隔开continuie,break,仅在for语句和while语句中使用。
控制语句中的条件运算符==,<=,>=,~=。
流程控制语句格式
1switchswitch表达式
casecase表达式
语句
[casecase表达式
语句
]
otherwise
语句
end
2while条件
语句
end
3if条件
语句
elseif条件
语句
else
语句
end
4for变量=ini:step:end %计算
语句
end
条件的另一种形式:变量=[...] %枚举
5break
continuie
return
14字符串
S=''AnyCharacters'' 创建数组或字符串,字符串内部用双引号
S=[S1S2...] 联结字符串
C={S1S2...} 创建字符串元胞数组,可用作标签
X=double(S) 字符串转换为asc码
Y=str2double(S) 数字字符串转换为双精度数值
Z=num2str(n) 数值转换为数字字符串
--------------------------------
H=dec2hex(d) 10进制正整数转换为16进制无符号数。
对于负数,视情况,+256,+65536,+...,然后进行转换,结果为1字节,2字 节,...有符号数。1字节(-128~+127),2字节(-32768~+32767)
dec2hex(28)(1C
希望转换后为2字节dec2hex(-28+65536)(FFE4
D=hex2dec(''h'') 16进制数值字符串转换为十进制数,默认16进制数为无符号数。
对于以8..F开头的1字节,2字节,...字节的16进制数,转换后,分别
-256,-65536,-...,可以得到负的10进制数。
15清除窗口
1.清除命令窗口命令窗口命令clc
命令窗口右键“清空命令行窗口”
2.清除工作空间窗口命令窗口命令clear
工作空间窗口右键“清空工作区”
3.清除命令历史窗口命令窗口命令(无)
菜单“清除命令/命令历史记录”
16常数
圆周率pi
自然数设e=exp(1)17帮助
1.help显示所有函数库
2.helplib_name显示库名为lib_name的函数库中的所有函数名及关于每一个函数的简要说明
3.helpfun_name显示函数名为fun_name的函数的功能及用法
1主要函数库
.../control
.../symbolic
安装时,matlab函数库总是全部安装,对于工具箱,在安装界面按取默认安装或自定义安装
1.操作符和特殊字符ops
2.通用命令general
3.矩阵和矩阵处理elmat
4.函数elfun
5.矩阵函数和数值线性代数matfun
6.特殊矩阵函数specfun
7.插值和多项式polyfun
8.程序设计语言结构函数库lang
9.字符串函数库strfun
10.二维图形graph2d
以下是2个工具箱:
11.控制工具箱ontrolSystemToolbox
12.符号数学工具箱ymbolicMathToolbox19日志文件
1.打开默认的日志文件diaryon
2.用编辑器打开日志文件diary,可以阅读,编辑和打印其中的内容
3.用命令diary(‘file_dia.dat’),可以自定义日志文件为file_dia.dat
微积分微积分计算归于符号运算
极限limit(expr,x,a)
limit(expr,a)
limit(expr)
limit(expr,x,a,’left’)
limit(expr,x,a,''right'')
微分Y=diff(X)
Y=diff(X,n)
Y=diff(X,n,dim)
积分int(expr,var)
int(expr,var,a,b)
int(___,Name,Value)
---------------------------------------------------------------------------------------------------------
Mathworks官网:(已验证有效)
主页https://ww2.mathworks.cn/help/index.html?s_tid=CRUX_lftnav
函数https://ww2.mathworks.cn/help/matlab/referencelist.html?type=function
matlab手机版使用方法
|
开机后显示命令窗口,在任意处点击命令,弹出菜单,点击文件, 文件窗口,点击已有的文件名, 编辑器窗口
点击,弹出软键盘,键入函数或命 弹出文件窗口(右图) 该文件在编辑器中打开,即可进 弹出和隐藏键盤,方法与命令
令,回车执行,点击手机返回键, 行编辑,点击’+’号,创建新文件, 窗口相同
隐藏键盘,点击三个点,弹出菜 点击文件名后面的三个点,可重命
单,设置和帮助 名或删除。文件窗口不弹出键盘
点击斜三角出现菜单,除命令和文件,还有历史记录,图窗,传感器,示例等4个选项,分别对应4个窗口,1历史记录窗口,点击历史记录,即再次执行,2图窗窗口显示plot命令的结果,3传感器选项未曾使用,4示例窗口,点击实例,显示源文件和执行结果。
帮助的使用:左上角三点-帮助-文档-点击帮助中心字样-点击MATLAB字样(进入中文页面
MATLAB数学函数简明列表
1matlab帮助中心链接:https://ww2.mathworks.cn/help/matlab/index.html,适用于电脑和手机
此链接与系统菜单的帮助,进入同一个帮助中心,不过,由此链接可以直接进入中文页面,阅读比较方便
2帮助中心,仅限于matlab函数;在命令窗口,helpsymbolic,可获得全部符号函数名,但无法拷贝下来
3本表内容:基本初等函数+辅助性数学函数+排序和随机+系统常数
rem(x,y) 余数(x,y) 模数
gcd(x,y) 最大公数lcm(x,y) 最小公倍数
round(x) 4舍5入圆整,保留n位小数,默认n=0
fix 向0方向取整 floor 向负方向取整
ceil 向正方向取整
rat 实数化为分数
rats化为分数
sign
abs 绝对值
angle 复数z的相角
real复数的实部
imag复数的虚部
conj共轭复数
min最小值
max最大值
mean平均值
median中位数
std标准差
diff相邻元素的差
length元素个数
norm欧氏Euclidean)长度
sum和
prod乘积
cumsum累计元素总和
cumprod累计元素总乘积
dot(x,y)内积
cross(xy) 外积
exppow2 2为底的冪
log 自然对数log2 2为底的对数
log10 10为底的对数
m^0.5,sqrt 开平方
sin正弦asin 反正弦
cos 余弦acos 反弦
tan 正切atan 反正切
atan2 四象限反正切
切切
sinpi(x),cospi(x),tanpi(x)
2020版增加这3个以π为单位的函数,使用时将发现,意义并不大
sinh 双曲正弦asinh 双曲反正弦
cosh 双曲余弦
tanh 双曲正切atanh 双曲反正切
正割,余割,双曲正割,双曲余割,及其反函数,共8种,存在但未列出
who 工作区全部变量名
whos 全部变量的属性
whosv1v2... 所列变量
whos,v1,v2,... 所列变量的
[mn]=sort(x) 排序
m为排序结果,n元素排序前的位置
左边仅返回排序结果
randi 均匀分布伪随机整数
randn 正态分布随机数
randperm 整数的随机排列
i或j虚数单位
eps浮点精度
inf无限大例如1/0
nan或NaN非数值例如0/0
pi圆周率
realmax 系统能表示的最大数值
realmin系统能表示的最小数值
nargin函数的输入数个数
nargin函数的数
namelength 变量名最大长度,默认36,可赋值改变
2012版中使用solve有两种格式
A)symsx1x2--也可不定义
a=''x1-0.7sin(x1)-0.2cos(x2)-0.75==0''
b=''x2-0.7cos(x1)+0.2sin(x1)==-1.3''
[x1x2]=solve(a,b)
B)symsx1x2
[x1,x2]=solve(x1-0.7sin(x1)-0.2cos(x2)-0.75==0,x2-0.7cos(x1)+0.2sin(x1)==-1.3)
2020版中只允许一种格式(以下两种形式式,实为一种格式)
symsx1x2
[x1x2]=solve(x1-0.7sin(x1)-0.2cos(x2)-0.75==0,x2-0.7cos(x1)+0.2sin(x1)==-1.3)或
a=x1-0.7sin(x1)-0.2cos(x2)-0.75
b=x2-0.7cos(x1)+0.2sin(x1)
[x1x2]=solve(a==0,b==-1.3)
-----------------------------------------------------------------------------------
①符号变量生成
a.用sym/syms定义
b.变量名=符号变量/符号表达式
②符号表达式生成
a.无引号而含有符号变量的表达式
b.将普通表达式加上单引号(在2012版验证,而2020版不适用)
③2020版中,str2sym取代sym的转换功能,其它符号函数用法也有较大变化,用时需仔细斟酌。
4/16Matlab数学运算基础2021-05-04
Matlab数学运算基础21/21
cat函数的用法:A=cat(dim,A1,A2,...)
实际验证,有意义的dim是1,2,3,当dim>3时产生一个维度号为1的空维度。
functiony=fun_name(x1,x2,...)
command/expression/variable=expression;
...
function[y1,y2...]=fun_name(x1,x2,...)
command/expression/variable=expression;
...
①符号计算
②符号变量
③符号表达式
b.先定义符号变量,不带引号写出表达式。
④符号表达式中不允许出现符号变量。
matlab中符号数学函数大约160个,内容很多,限于篇幅不及细载。如欲了解更多,可’helpsymbolic’,查阅全部内容。
在matlab2020中,solve函数只有唯一的用法:
solve(en1,en2,...,enN)
en1,en2...均为符号表达式,要先定义符号变量,要用双等号
>>symsx1,x2
>>[x1,x2]=solve(x1-0.7sin(x1)-
0.2cos(x2)-0.75==0,x2-
0.7cos(x1)+0.2sin(x1)==-1.3)
该图形的’.’
fashion打开方式
format读写格式
此2参数,详情甚繁,不及细载。使用时可参阅帮助或其它资料,本文中其它地方也遵循此原则。
文件夹中的内容,用户并不需要了解,此处列出路径,仅仅为了解除或可产生的疑惑。
整数
实数
复数
矢量和矩阵
系统常数
关于matlab2020版某些函数的用法的变化
1此处说明符号函数solve在2020版中用法的变化
其它符号函数是否和有何变化尚不能确知
2其它工具箱中的函数此二者是否和有何变化,也未知。
3函数库中的函数
|
|