来自:sxnsr > 馆藏分类
配色: 字号:
__02 (修改中...)数学软件2 MATLAB数学运算基础(97-03doc)
2021-05-04 | 阅:  转:  |  分享 
  
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函数库中的函数







献花(0)
+1
(本文系sxnsr首藏)