ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:27.33KB ,
资源ID:25245910      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25245910.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数学软件提取数组下标.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数学软件提取数组下标.docx

1、数学软件提取数组下标提取数组下标:已知p是一维数组x的元素,做索引 a,b=sort(x), a 是数组x的升序排列,b为对应下标,语句 d=b(p=a) 可获得数p在x中的下标d。(若是多维的话此方法显示的只有第几列)已知p是二维数组x的元素, 取出数组的阶 m,n=size(x), 化为一维数组g=x(:), a,b=sort(g), d=b(p=a), 取p在x中的下标 mm, nnif rem(d,m)=0 mm=m,else mm=rem(d,m);end;nn=ceil(d/m); mm,nn 以上方式要求数组中没有相同的元素,即没有相等的数!若有相等的,则取出排列顺序(列优先序)

2、靠前者。思考还有更简洁的方式获得下标吗?取整函数:round(x) 取最靠近x的整数fix(x) 向0方向取整floor(x) 向负无穷方向取整ceil(x) 向正无穷方向取整a= 20.0442 5.0801 32.6862 11.5121 1.0186 17.8314 19.8662 5.2095 30.4551 10.8267 0.9509 16.3498 20.6344 5.3483 30.0928 10.5595 0.9389 17.1787 20.4513 5.4662 31.3867 10.7064 1.0010 17.3970 21.3014 5.5764 31.1999 10

3、.8107 0.9753 16.9232 21.7255 5.7351 32.3984 11.1469 0.9998 17.6053 21.7779 5.9342 32.7861 11.3764 1.0628 17.6373 21.9623 6.0900 32.7021 11.6070 1.0628 17.1927 22.3038 6.1445 33.2664 11.7447 1.1495 17.4934 22.6467 6.2642 33.3753 11.9020 1.2037 17.3428 23.2654 6.3423 34.3972 12.2719 1.2513 17.8713 24.

4、1916 6.1100 36.2800 13.2744 1.3162 18.3418 23.6708 6.8130 35.8964 11.2928 1.3245 18.2154 23.5377 6.8250 35.0123 11.1205 1.3425 18.1564 22.9243 6.9481 34.1256 10.8515 1.3851 17.6598 23.5368 7.2351 34.0125 10.5609 1.4752 17.1229 23.7164 7.5239 33.8959 11.9299 1.5229 17.5946 24.0902 7.8086 35.2593 12.2

5、956 1.5409 17.9467 25.3089 8.0829 36.3357 12.8616 1.8051 18.0819 25.3748 8.3127 36.0356 12.6813 1.6726 17.8218 25.6301 8.4355 37.5441 13.0538 1.7181 19.1278 26.2808 8.5814 38.2627 13.1585 1.7880 20.5607 26.6766 8.6808 38.6056 13.0315 1.6908 20.2338 28.4100 7.6600 41.3959 14.7666 1.5702 20.7094matlab

6、常用到的永久变量。ans:计算结果的默认变量名。i j:基本虚数单位。eps:系统的浮点(F10a9Bg个oht):inf:无限大,例1/0nan NaN:非数值(N航a nmnb谢)pi:圆周率n(n31415926)。realmax:系统所能表示的最大数值。realmin:系统所能表示的最小数值,nargin:函数的输入参数个数:nargout:函数的输出多数个数matlab的所有运算都定义在复数城上。对于方根问题运算只返回处于第一象限的解。matlab分别用左斜和右来表示“左除和“右除”运算。对于标量运算而言,这两者的作用没有区别:但对于矩阵运算来说,二者将产生不同的结果。多项式的表示方

7、法和运算p(x)=x3-3x-5可以表示为p=1 03 5,求x5时的值用plotval(p,5)也可以求向量:a=3 4 5,plotval(p,a)函数roots求多项式的根roots(p)p=1 0 -3 5;r=roots(p)由根重组多项式poly(根)q=poly(r)real(q)有时会产生虚根,这时用real抽取实根即可conv(a,b)函数多项式乘法(执行两个数组的卷积)a=1 2 3 4;b=1 4 9 16;c=conv(a,b)多项式的加减法,低阶的多项式必须用首零填补,使其与高阶多项式有同样的阶次多项式除法q , r=deconv(c , b)表示b/c q为商多项式

8、,r为余数多项式的导数polyder(f)f= 2 4 5 6 2 1;s=polyder(f)多项式的曲线拟合x=1 2 3 4 5;y=5.6 40 150 250 498.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);grid on最小二乘法x=1 2 3 4 5;y=5.6 40 150 250 498.9;plot(x,y,*),lsline多项式插值(p158)YI

9、=interp1(x,y,XI,method)一维插值(XI为插值点的自变量坐标向量,可以为数组或单个数。method为选择插值算法的方法,包括:linear(线性插值)cubic(立方插值)spline(三次样条插值)nearst(最近临插值)例如:人口预测year=1900:10:1900;number=78 91 105.每十年的人口数;x=1900:1:2000;y=interp1(year,number,x,spline);plot(year,numeber,*,x,y);grid on一维博里叶变换插值使用函数interpft实现,计算含有周期函数值的矢量的傅里叶变换然后使用更多的

10、点进行傅里叶变换的逆变换,函数的使用格式如下:y=interpft(x,n)其中x是含有周期函数值的矢量,并为等距的点,n为返同等间距点的个数。求解一元函数的最小值y=fminbnd(humps,0.3,1) humps为一内置函数求解多元函数的最小值函数fminserch用于求多元函数的最小值。它可以指定一个开始的矢量,并非指定一个区间。此函数返回一个矢量为此多元函数局部最小函数值对应的自变量纹理成图功能由warp函数的纹理成图功能实现平面图像在空间三维曲面上的显示。将文件名为flowers.tif的图像分别投影到圆柱形和球星表面上i=imread(flowers.tif);x,y,z=cy

11、linder;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*x3+);也可以用solvec=sym(c,real);x=sym(x,real);s=solve(x3-x+c)函数定积分q=quadl(humps,0,1)求humps函数在0 1区间上的定积分,也可以用quad语句二重

12、积分首先计算内积分,然后借助内积分的中间结果再求出二重积分的值,类似于积分中的分步积分法。Result=dblquad(integrnd,xin,xmax.,ymin,ymax) integrnd为被积函数的名称字符串符号积分运算int(f)最精确的是符号积分法计算s=1201xydxdysyms x y中间为空格,不能为逗号s=int(int(xy,x,0,1),y,1,2)引号可省略vpa(s)显示s的值内积分限为函数的二重积分I=14y2(x2+y2)dxdy符号法I=vpa(int(int(x2+y2,x,sqrt(y),2),y,1,4)微分运算(diff)微分是描述一个函数在一点处

13、的斜率,是函数的微观性质、因此积分对函数的形状在小范围内的改变不敏感,而微分很敏感。个函数的小的变化,容易产生相邻点的斜率的大的改变。由干微分这个固有的困难所以尽可能避免数值微分特别是对实验获得的数据进行微分。在这种情况,最好用最小二乘曲线拟合这种数据,然后对所得到的多项式进行微分;或用另一种方法对点数据进行三次样条拟合,然后寻找样条微分,但是,有时微分运算是不能避免的,在MATLAB中用函数diff汁算一个矢量或者矩阵的微分(也可以理解为差分)。a=1 2 3 3 3 7 8 9;b=diff(a)一次微分bb=diff(a,2)二次微分实际上diff(a)=a(2)-a(1),a(3)-a

14、(2),a(n)-a(n-1)对于求矩阵的微分,即为求各列矢量的微分,从矢量的微分值可以判断矢量的单调性、是否等间距以及是否有重复的元素。符号微分运算(diff)syms x t af =cos(a*x)df =diff(f)由findsym的规则,隐式的指定对x进行微分dfa=diff(f,a)指定对变量a进行微分dfa=diff(f,a,3)三次微分diff函数不仅作用在标量上,还可以在矩阵上,运算规则就是按矩阵的元素分别进行微分syms a xA=cos(a*x),sin(a*x),-sin(a*x),cos(a*x);dA=diff(A)微分方程dsolve在matlab中,符号表达式

15、中包含字母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.x s.y s.z 3个方程,架构数组dsolve(Dx=-a*x)结果:C1*exp(-a*t)没给定初值,所以结果中含参变量x=dsolve(Dx=-a*x,x(0)=1,s)结果exp(-a*s)给定了初值,独立变量设为s计算多元函数的梯度fx=gradient(f) f

16、是一个矢量返回f的一维数值梯度,fx对应于x方向的微分。x,y=meshgrid(-2:.2:2,-2:.2:2);z=x.*exp(-x.2-y.2);px,py=gradient(z,.2,.2);contour(z),hold on画等值线quiver(px,py)matlab字符串运算利用sym命令创建表达式f=sym(cos(x)+sin(x)或syms x , f=cos(x)+sin(x)diff(f)求其导数(也可直接用命令f=diff(cos(x)+cos(y)当字符表达式中含有多于一个的变量时,只有个变量是独立变量。如果不告诉matlab哪一个变量是独立变量,则可以通过fi

17、ndsym命令询问利用findsym命令查询独立变量f=sym(sin(a*x)+b)findsym(f,1)给出独立变量(一个变量,如果为2则给出2个变量)findsym(f)给出所有变量符号表达式的化简和替换collect函数collect(f,v)表示将f表示为关于符号变量v的多项式形式,即关于v合并同类项,v缺省,则用findsym确定的缺省变量syms x yf=x2*y+y*x-x2-2*x+1collect(f)得到(-1+y)*x2+(y-2)*x+1collect(f,y)得到(x+x2)*y+1-x2-2*xexpand函数expand(f)将f展开,写成和的形式syms

18、xexpand(x-1)3)得到x3-3*x2+3*x-1horner函数horner(f)将f写成镶嵌套形式syms xhorner(x3-6*x2)得到(-6+x)*x2factor函数factor(f)将f转换成低阶有理多项式的乘积syms xf=x3-6*x2+11*x-6factor(f)得到(x-1)*(x-2)*(x-3)simplify(f)函数综合化简simple(f)函数的最简形式syms xf=2*sin(x2)+cos(3*x)simple(f)如果不想看到中间过程,可z=simple(f)有时使用两次simple命令可以得到最简式如果想知道哪个简化命令得到最后结果,可

19、以加一个参数howz,how=simple(f)符号表达式的替换subs(f,new,old)f=a*x2+b*x+csubs(f,t,x)得到a*(t)2+b*(t)+c subs是一个符号函数,返回一个符号变量subexpr函数有时matlab返回的符号表达式难以理解,用subexpr函数,可以将表达式中重复出现的子式用一个符号表示,从而简化表达形式c=sym(c,real);x=sym(x,real);s=solve(x3-x+c)a=subexpr(s)得到sigma = -108*c+12*(-12+81*c2)(1/2)a = 1/6*sigma(1/3)+2/sigma(1/3)

20、 -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=1 2 3ab矩阵的特征值和特征向量用eig(v,d)函数,v,d=eig(A);其中d将返回特征值,v返回相应的特征向量,缺省第二个参数将只返回特征值syms a b

21、c realA=a b c; b c a; c a b;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

22、+bnote求特征值也可用以下命令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决定或显式指出syms a b c xsolve(a*x2+b*x+c)以x为默认变量solve(a*x2+b*x+c,a)指定对a为变量求含有等号的方程的解(一定要加单引号)f=solve(

23、cos(x)=sin(x)x=solve(exp(x)=tan(x)如果不能求得符号解,就计算可变精度解。求解方程组与单方程类似解一个三元一次方程v=solve(a*u2+v2,u-v=1,a2-5*a+6)结果为v =a: 4x1 sym u: 4x1 sym v: 4x1 sym一些常用的符号运算极限运算limitlimit(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)以默认的find

24、sym决定的变量求和symsum(s,v)以s中指定的变量v求和symsum(s,a,b) symsum(s,v,a,b)从a到b的有限项求和syms k nsymsum(k)从0到k求和symsum(k,0,n-1)从0到n1求和symsum(1/k2,1,inf)无限项求和泰勒级数taylor(f)taylor(f)表示求f的5阶talor展开,可以增加参数指定展开的阶数(默认式5),也可以对于多元函数指定展开的变量,还可以指定在哪个点展开syms x ttaylor(exp(-x)taylor(log(x),6,1)在1点的6阶taylor展开taylor(xt,3,t)对t的3阶tay

25、lor展开积分变换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的函数syms t v w xfourier(1/t)fourier(exp(-t)*sym(Heaviside(t)

26、,v)fourier(diff(sym(F(x),x,w)Fourier逆变换f=ifourier(F)缺省独立变量w,返回关于x的函数对w进行积分f=ifourier(F,v)返回函数f是关于符号对象v的函数,而不是缺省的xf=ifourier(F,u,v)是关于u的函数f进行变换,而不是缺省的x,返回函数f是关于v的函数Laplace变换和逆变换laplace(f)应用于连续系统(微分方程)中,可以用来求解微分方程的初值问题laplace(F)缺省独立变量t,缺省返回关于s的函数Llaplace(F,t)返回关于t的函数L,而不是缺省的slaplace(F,w,z)对函数F的自变量w积分,

27、返回关于z的函数L逆变换F=ilaplace(L)缺省独立变量s,返回关于t的函数FF=ilaplace(L,y)返回关于y的函数F,而不是缺省的tF=ilaplace(L,y,x)对函数L的自变量y积分,返回关于x的函数FZ-变换和逆变换ztrans(f)标量符号f的Z变换F=ztrans(f)缺省独立变量n,返回关于z的函数F=ztrans(f,w)返回关于符号变量w的函数F,而不是缺省的zF=ztrans(f,k,w)关于k的符号变量作Z变换返回关于符号变量w的函数逆变换iztrans(F)f=iztrans(F)或(F,k)或(F,w,k)符号绘图函数符号函数简易绘图函数ezplot(

28、f)f可以包含单个符号变量x的字符串或表达式,默认画图区间(2pi,2pi),如果f包含x和y,画出的图像是f(x,y)=0的图像,缺省区间是2pix2pi,-2piy2pi。Ezplot(f,xmin,xmax)或ezplot(f,xmin,xmax)绘制在xminxxmax区间上图像syms x tezplot(t*cos(t),t*sin(t),0,4*pi)绘制符号图像函数fplot(fun,lims,tol,linespec,n)其中lims=xmin,xmax或xmin,xmax,ymin,ymax tol为指定相对误差,默认0.001linespec指定绘图的线型n指定最少以n1个点绘图x,y=fplot(fun,lims,)只返回用来绘图的点,并不绘图,可以自己调用plot(x,y)来绘制图形。syms xsubplot(2,2,1),fplot(humps,0,1)f=abs(exp(x*(0:9)*ones(10,1)subplot(2,2,2),fplot(f,0,2*pi)subplot(2,2,3),fplot(sin

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

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