数学软件提取数组下标Word文档格式.docx

上传人:b****5 文档编号:16812261 上传时间:2022-11-26 格式:DOCX 页数:14 大小:27.39KB
下载 相关 举报
数学软件提取数组下标Word文档格式.docx_第1页
第1页 / 共14页
数学软件提取数组下标Word文档格式.docx_第2页
第2页 / 共14页
数学软件提取数组下标Word文档格式.docx_第3页
第3页 / 共14页
数学软件提取数组下标Word文档格式.docx_第4页
第4页 / 共14页
数学软件提取数组下标Word文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数学软件提取数组下标Word文档格式.docx

《数学软件提取数组下标Word文档格式.docx》由会员分享,可在线阅读,更多相关《数学软件提取数组下标Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

数学软件提取数组下标Word文档格式.docx

计算结果的默认变量名。

ij:

基本虚数单位。

eps:

系统的浮点(F10a9Bg个oht):

inf:

无限大,例1/0 

nanNaN:

非数值(N航anmnb谢) 

pi:

圆周率n(n=3.1415926..)。

realmax:

系统所能表示的最大数值。

realmin:

系统所能表示的最小数值, 

nargin:

函数的输入参数个数:

nargout:

函数的输出多数个数 

①matlab的所有运算都定义在复数城上。

对于方根问题运算只返回处于第一象限的解。

⑦matlab分别用左斜/和右\来表示“左除和“右除”运算。

对于标量运算而言,这两者的作用没有区别:

但对于矩阵运算来说,二者将产生不同的结果。

多项式的表示方法和运算 

p(x)=x^3-3x-5 

可以表示为p=[10 

–35],求x=5时的值用plotval(p,5) 

也可以求向量:

a=[345],plotval(p,a) 

函数roots求多项式的根 

roots(p) 

p=[10-35];

r=roots(p) 

由根重组多项式poly(根) 

q=poly(r) 

real(q) 

有时会产生虚根,这时用real抽取实根即可 

conv(a,b)函数 

多项式乘法(执行两个数组的卷积) 

a=[1234];

b=[14916];

c=conv(a,b) 

多项式的加减法,低阶的多项式必须用首零填补,使其与高阶多项式有同样的阶次 

多项式除法 

[q,r]=deconv(c,b) 

表示b/cq为商多项式,r为余数 

多项式的导数 

polyder(f) 

f=[245621];

s=polyder(f) 

多项式的曲线拟合 

x=[12345];

y=[5.640150250498.9];

p=polyfit(x,y,n) 

数据的n次多项式拟合 

poly:

矩阵的特征多项式、根集对应的多项式 

x2=1:

0.1:

5;

n取1时,即为最小二乘法 

y2=polyval(p,x2);

计算多项式的值 

(polyvalm计算矩阵多项式) 

plot(x,y,'

*'

x2,y2);

gridon 

最小二乘法 

plot(x,y,’*’),lsline 

多项式插值 

(p158) 

YI=interp1(x,y,XI,’method’) 

一维插值 

(XI为插值点的自变量坐标向量,可以为数组或单个数。

method为选择插值算法的方法,包括:

linear(线性插值) 

cubic(立方插值) 

spline(三次样条插值) 

nearst(最近临插值) 

例如:

人口预测 

year=1900:

10:

1900;

number=[7891105 

….每十年的人口数];

x=1900:

1:

2000;

y=interp1(year,number,x,’spline’);

plot(year,numeber,’*’,x,y);

一维博里叶变换插值使用函数interpft实现,计算含有周期函数值的矢量的傅里叶变换 

然后使用更多的点进行傅里叶变换的逆变换,函数的使用格式如下:

y=interpft(x,n) 

其中x是含有周期函数值的矢量,并为等距的点,n为返同等间距点的个数。

求解一元函数的最小值 

y=fminbnd('

humps'

0.3,1)humps为一内置函数 

求解多元函数的最小值 

函数fminserch用于求多元函数的最小值。

它可以指定一个开始的矢量,并非指定一个区间。

此函数返回一个矢量为此多元函数局部最小函数值对应的自变量 

纹理成图功能 

由warp函数的纹理成图功能实现平面图像在空间三维曲面上的显示。

将文件名为flowers.tif的图像分别投影到圆柱形和球星表面上 

i=imread('

flowers.tif'

);

[x,y,z]=cylinder;

subplot(1,2,1),warp(x,y,z,i);

[x,y,z]=sphere(50);

subplot(1,2,2),warp(x,y,z,i);

warp(x,y,z,i);

求函数的零点 

求函数humps在[1,2]区间上的零点 

fzero(‘humps’,[1,2]);

也可以给一个初始值 

fzero(‘humps’,0.9);

对于多项式可直接由roots求其根 

roots(‘4*x^3+……’);

也可以用solve 

c=sym('

c'

'

real'

x=sym('

x'

s=solve(x^3-x+c) 

函数定积分 

q=quadl(‘humps’,0,1) 

求humps函数在01区间上的定积分,也可以用quad语句 

二重积分 

首先计算内积分,然后借助内积分的中间结果再求出二重积分的值,类似于积分中的分步积分法。

Result=dblquad(‘integrnd’,xin,xmax.,ymin,ymax)integrnd为被积函数的名称字符串 

符号积分运算int(f) 

最精确的是符号积分法 

计算s=∫12[∫01xydx]dy 

symsxy 

中间为空格,不能为逗号 

s=int(int(‘x^y’,’x’,0,1),’y’,1,2) 

引号可省略 

vpa(s) 

显示s的值 

内积分限为函数的二重积分 

I=∫14[∫√y2(x2+y2)dx]dy 

符号法I=vpa(int(int(‘x^2+y^2’,’x’,sqrt(y),2),’y’,1,4) 

微分运算(diff) 

微分是描述一个函数在一点处的斜率,是函数的微观性质、因此积分对函数的形状在小范围内的改变不敏感,而微分很敏感。

—个函数的小的变化,容易产生相邻点的斜率的大的改变。

由干微分这个固有的困难.所以尽可能避免数值微分.特别是对实验获得的数据进行微分。

在这种情况,最好用最小二乘曲线拟合这种数据,然后对所得到的多项式进行微分;

或用另一种方法对点数据进行三次样条拟合,然后寻找样条微分,但是,有时微分运算是不能避免的,在MATLAB中.用函数diff汁算一个矢量或者矩阵的微分(也可以理解为差分)。

a=[12333789];

b=diff(a) 

一次微分 

bb=diff(a,2) 

二次微分 

实际上diff(a)=[a

(2)-a

(1),a(3)-a

(2),……,a(n)-a(n-1)] 

对于求矩阵的微分,即为求各列矢量的微分,从矢量的微分值可以判断矢量的单调性、是否等间距以及是否有重复的元素。

符号微分运算(diff) 

symsxta 

f=cos(a*x) 

df=diff(f) 

由findsym的规则,隐式的指定对x进行微分 

dfa=diff(f,'

a'

) 

指定对变量a进行微分 

3) 

三次微分 

diff函数不仅作用在标量上,还可以在矩阵上,运算规则就是按矩阵的元素分别进行微分 

symsax 

A=[cos(a*x),sin(a*x),-sin(a*x),cos(a*x)];

dA=diff(A) 

微分方程dsolve 

在matlab中,符号表达式中包含字母D用来表示微分运算,D2,D3分别对应第二,第三阶导数,D2y表示d2y/dt2 

把t缺省了 

y=dsolve(‘Dy=f(y)’) 

单个方程,单个输出 

[u,v]=dsolve(‘Du=f(u,v)’,’Dv=g(u,v)’)2个方程,2个输出 

s=dsolve(‘Dx=f(x,y,z)’,’Dy=g(x,y,z)’,’Dz=k(x,y,z)’) 

s.xs.ys.z3个方程,架构数组 

dsolve('

Dx=-a*x'

结果:

C1*exp(-a*t) 

没给定初值,所以结果中含参变量 

x=dsolve('

x(0)=1'

s'

结果exp(-a*s) 

给定了初值,独立变量设为s 

计算多元函数的梯度 

fx=gradient(f)f是一个矢量返回f的一维数值梯度,fx对应于x方向的微分。

[x,y]=meshgrid(-2:

.2:

2,-2:

2);

z=x.*exp(-x.^2-y.^2);

[px,py]=gradient(z,.2,.2);

contour(z),holdon 

画等值线 

quiver(px,py) 

matlab字符串运算 

利用sym命令创建表达式 

f=sym(‘cos(x)+sin(x)’)或 

symsx,f=cos(x)+sin(x) 

diff(f) 

求其导数 

(也可直接用命令f=diff(‘cos(x)+cos(y)’) 

当字符表达式中含有多于一个的变量时,只有—个变量是独立变量。

如果不告诉matlab哪一个变量是独立变量,则可以通过findsym命令询问 

利用findsym命令查询独立变量 

f=sym('

sin(a*x)+b'

findsym(f,1) 

给出独立变量(一个变量,如果为2则给出2个变量) 

findsym(f) 

给出所有变量 

符号表达式的化简和替换 

collect函数 

collect(f,v)表示将f表示为关于符号变量v的多项式形式,即关于v合并同类项,v缺省,则用findsym确定的缺省变量 

f=x^2*y+y*x-x^2-2*x+1 

collect(f) 

得到(-1+y)*x^2+(y-2)*x+1 

collect(f,y) 

得到(x+x^2)*y+1-x^2-2*x 

expand函数 

expand(f)将f展开,写成和的形式 

symsx 

expand((x-1)^3) 

得到x^3-3*x^2+3*x-1 

horner函数 

horner(f)将f写成镶嵌套形式 

horner(x^3-6*x^2) 

得到(-6+x)*x^2 

factor函数 

factor(f)将f转换成低阶有理多项式的乘积 

f=x^3-6*x^2+11*x-6 

factor(f) 

得到 

(x-1)*(x-2)*(x-3) 

simplify(f)函数 

综合化简 

simple(f) 

函数的最简形式 

f=2*sin(x^2)+cos(3*x) 

如果不想看到中间过程,可z=simple(f) 

有时使用两次simple命令可以得到最简式 

如果想知道哪个简化命令得到最后结果,可以加一个参数how 

[z,how]=simple(f) 

符号表达式的替换 

subs(f,new,old) 

f='

a*x^2+b*x+c'

subs(f,'

t'

得到a*(t)^2+b*(t)+csubs是一个符号函数,返回一个符号变量 

subexpr函数 

有时matlab返回的符号表达式难以理解,用subexpr函数,可以将表达式中重复出现的子式用一个符号表示,从而简化表达形式 

a=subexpr(s) 

得到sigma=-108*c+12*(-12+81*c^2)^(1/2) 

a= 

[1/6*sigma^(1/3)+2/sigma^(1/3)] 

[-1/12*sigma^(1/3)-1/sigma^(1/3)+1/2*i*3^(1/2)*(1/6*sigma^(1/3)-2/sigma^(1/3))] 

[-1/12*sigma^(1/3)-1/sigma^(1/3)-1/2*i*3^(1/2)*(1/6*sigma^(1/3)-2/sigma^(1/3))] 

pretty函数有时也能起到同样的作用。

Pretty(f) 

显示函数的习惯书写形式 

线性方程组的求解 

求解线性方程组,用反斜杠\ 

a=hilb(3) 

b=[123]'

a\b 

矩阵的特征值和特征向量 

用eig(v,d)函数,[v,d]=eig(A);

其中d将返回特征值,v返回相应的特征向量,缺省第二个参数将只返回特征值 

symsabcreal 

A=[abc;

bca;

cab];

[v,d]=eig(A);

为了观察更清楚,使用以前学过的替换函数,这里不用默认的sigma,而改用M,显式的代替繁琐的表达子式 

vv=subexpr(v);

vs=subs(vv,'

m'

sigma'

运行结果为 

vs= 

[1,1,1] 

[-(c+(m)-a)/(c-b),-(c-(m)-a)/(c-b),1] 

[-(a-(m)-b)/(c-b),-(a+(m)-b)/(c-b),1] 

再用m替换d中的表达子式 

dd=subexpr(d);

ds=subs(dd,’m’,’sigma’) 

运行结果为ds= 

[(m),0,0] 

[0,-(m),0] 

[0,0,c+a+b] 

note 

求特征值也可用以下命令 

f=poly(A)poly函数 

用来求A的特征多项式 

d=solve(f)solve(f)函数用来求多项式的解 

svd()函数 

求矩阵的奇异值分解,将矩阵分解为两个正交矩阵和对角矩阵的乘积 

a=sym(hilb

(2)) 

[u,s,v]=svd(a) 

代数方程和方程组 

代数方程的求解可用solve(f)命令,如果f不含=,matlab将给表达式置零。

方程的未知量在默认的情况下由findsym决定或显式指出 

symsabcx 

solve(a*x^2+b*x+c) 

以x为默认变量 

solve(a*x^2+b*x+c,a) 

指定对a为变量 

求含有等号的方程的解(一定要加单引号) 

f=solve(‘cos(x)=sin(x)’) 

x=solve('

exp(x)=tan(x)'

如果不能求得符号解,就计算可变精度解。

求解方程组与单方程类似 

解一个三元一次方程 

v=solve('

a*u^2+v^2'

u-v=1'

a^2-5*a+6'

结果为v= 

a:

[4x1sym]u:

[4x1sym]v:

[4x1sym] 

一些常用的符号运算 

极限运算limit 

limit(f) 

求x到0的极限 

limit(f,x,a)或limit(f,a) 

求x到a的极限 

limit(f,a,’left’)limit(f,a,’right’) 

求x到a的左极限和右极限 

limit(f,inf) 

求x趋于无穷的极限 

符号求和symsum(s) 

symsum(s) 

以默认的findsym决定的变量求和 

symsum(s,v) 

以s中指定的变量v求和 

symsum(s,a,b)symsum(s,v,a,b) 

从a到b的有限项求和 

symskn 

symsum(k) 

从0到k求和 

symsum(k,0,n-1) 

从0到n-1求和 

symsum(1/k^2,1,inf) 

无限项求和 

泰勒级数taylor(f) 

taylor(f)表示求f的5阶talor展开,可以增加参数指定展开的阶数(默认式5),也可以对于多元函数指定展开的变量,还可以指定在哪个点展开 

symsxt 

taylor(exp(-x)) 

taylor(log(x),6,1) 

在1点的6阶taylor展开 

taylor(x^t,3,t) 

对t的3阶taylor展开 

积分变换 

fourier变换和逆变换fourier(f) 

fourier分析可以将信号转换为不同频率的正弦曲线。

可对离散数据进行分析,也可对连续时间系统进行分析,特别在信号和图形处理领域。

离散变换(DFT)作用于有限数据的采集,最有效的是快速fourier变换(FFT) 

F=fourier(f) 

独立变量x,返回关于参数w的函数 

F=fourier(f,v) 

返回函数F关于符号对象v的函数 

F=fourier(f,u,v) 

对关于u的函数f进行变换,而不是缺省的w,返回函数F是关于v的函数 

symstvwx 

fourier(1/t) 

fourier(exp(-t)*sym('

Heaviside(t)'

),v) 

fourier(diff(sym('

F(x)'

)),x,w) 

Fourier逆变换 

f=ifourier(F) 

缺省独立变量w,返回关于x的函数对w进行积分 

f=ifourier(F,v) 

返回函数f是关于符号对象v的函数,而不是缺省的x 

f=ifourier(F,u,v) 

是关于u的函数f进行变换,而不是缺省的x,返回函数f是关于v的函数 

Laplace变换和逆变换laplace(f) 

应用于连续系统(微分方程)中,可以用来求解微分方程的初值问题 

laplace(F) 

缺省独立变量t,缺省返回关于s的函数L 

laplace(F,t) 

返回关于t的函数L,而不是缺省的s 

laplace(F,w,z) 

对函数F的自变量w积分,返回关于z的函数L 

逆变换 

F=ilaplace(L) 

缺省独立变量s,返回关于t的函数F 

F=ilaplace(L,y) 

返回关于y的函数F,而不是缺省的t 

F=ilaplace(L,y,x) 

对函数L的自变量y积分,返回关于x的函数F 

Z-变换和逆变换ztrans(f) 

标量符号f的Z-变换 

F=ztrans(f) 

缺省独立变量n,返回关于z的函数 

F=ztrans(f,w) 

返回关于符号变量w的函数F,而不是缺省的z 

F=ztrans(f,k,w) 

关于k的符号变量作Z-变换返回关于符号变量w的函数 

逆变换iztrans(F) 

f=iztrans(F) 

或(F,k)或 

(F,w,k) 

符号绘图函数 

符号函数简易绘图函数ezplot(f) 

f可以包含单个符号变量x的字符串或表达式,默认画图区间(-2pi,2pi),如果f包含x和y,画出的图像是f(x,y)=0的图像,缺省区间是-2pi<

x<

2pi,-2pi<

y<

2pi。

Ezplot(f,xmin,xmax)或ezplot(f,[xmin,xmax])绘制在xmin<

xmax区间上图像 

ezplot('

t*cos(t)'

t*sin(t)'

[0,4*pi]) 

绘制符号图像函数fplot(fun,lims,tol,’linespec’,n) 

其中lims=[xmin,xmax]或[xmin,xmax,ymin,ymax]tol为指定相对误差,默认0.001 

‘linespec’指定绘图的线型 

n指定最少以n+1个点绘图 

[x,y]=fplot(fun,lims,…) 

只返回用来绘图的点,并不绘图,可以自己调用plot(x,y)来绘制图形。

subplot(2,2,1),fplot('

[0,1]) 

abs(exp(x*(0:

9))*ones(10,1))'

subplot(2,2,2),fplot(f,[0,2*pi]) 

subplot(2,2,3),fplot('

sin

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1