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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

matlab杂例.docx

1、matlab杂例公元2011一剑飞雪倾情奉献,悉心整理matlab中contour的用法 悬赏分:0 | 解决时间:2008-11-19 15:58 | 提问者:xiaoxin2305 matlab中contour的用法和参数的说明,中文的,越详细越好。我要画它等值线图。给你一个实例吧。x=1:1:14;y=1:1:14;xx,yy=meshgrid(y,x);z=1 2 3 4 5 6 7 8 9 10 11 12 13 14;1 2 3 4 5 6 7 8 9 10 11 12 13 14;1 2 3 4 5 6 7 8 9 10 11 12 13 14;1 2 3 4 5 6 7 8 9

2、 10 11 12 13 14;1 2 3 4 5 6 7 8 9 10 11 12 13 14;1 2 3 4 5 6 7 8 9 10 11 12 13 14;1 2 3 4 5 6 7 8 9 10 11 12 13 14;1 2 3 4 5 6 7 8 9 10 11 12 13 14;1 2 3 4 5 6 7 8 9 10 11 12 13 14;1 2 3 4 5 6 7 8 9 10 11 12 13 14;1 2 3 4 5 6 7 8 9 10 11 12 13 14;1 2 3 4 5 6 7 8 9 10 11 12 13 14;1 2 3 4 5 6 7 8 9 10

3、 11 12 13 14;1 2 3 4 5 6 7 8 9 10 11 12 13 14; contour(xx,yy,z,15);hold oncontour(yy,xx,z,15)结果如图。用matlab求圆周率如何用Matlab画矢量图xx,yy=meshgrid(-2:0.2:2);zx=xx-2*yy;zy=6*xx+yy;quiver(xx,yy,zx,zy) 结果如下gradient的用法 matlab的一个函数 怎么样用gradient绘制z=1/(x2-2*x+4)+1/(y32*y+4)的梯度场呢?x,y=meshgrid(-5:0.5:5)z=1./(x.2-2*x+4

4、)+1./(y.3-2*y+4)g=gradient(z)subplot(1,2,1),surf(x,y,z)subplot(1,2,2),surf(x,y,z,g)MATLAB中subs(subs()两个连起来怎么使用? syms a by=a2+sin(b);subs(subs(y,a,2),b,pi)%就是将a=2,b=pi代入y的表达式,分两次代。matlab中加点什么用? 悬赏分:0 | 解决时间:2008-12-24 13:05 | 提问者:139bbc 比如y=1./(1+x.4)为什么1后面也要加点 X后面要加点?在什么时候就不用加点了 点乘 表示和矩阵相乘的时候用的。6.4

5、矩阵的数组运算: 矩阵乘:A*B。A的列数与B的行数要相等。 矩阵的数组乘:A.*B。表示为A、B矩阵的对应元素一一相乘,即Aij * Bij。A与B的维度要相同。 矩阵的数组除:A./B或者A.B 举例:x=-10 : 2 :10 y=sin(x) % correct y=sin(x2) % incorrect - Matrix x must be square y=sin(x.2) % correctclearx=0:250; | y=x; X=ones(size(y)*x; |Y=y*ones(size(x);Z=40*X-X.2+30*Y-Y.2;surf(X,Y,Z)你忘记在X,Y后

6、面加.了x=1,2,3;4,5,6;7,8,9 surf(x)inline是用来定义内联函数的比如说: y=inline(sin(x),x) %第一个参数是表达式,第二个参数是函数变量 y(0) %计算sin(0)的值 y(pi) %计算sin(pi)的值 q=quad(y,0,1); %计算sin(x) 在0到1上的积分试求双重积分说明 该函数形式比较简单,可首先定义函数f,接着直接调用dblquad( )求得该积分的数值解。 format long fun=inline(exp(-x.2).*cos(x+y.2),x,y); Y_num=dblquad(fun,1,2,0,10)Y_num

7、 = .0519*matlab控制运算精度用的是digits和vpa这两个函数digits用于规定运算精度,比如: digits(20); 这个语句就规定了运算精度是20位有效数字。但并不是规定了就可以使用,因为实际编程中,我们可能有些运算需要控制精度,而有些不需要控制。vpa就用于解决这个问题,凡是用需要控制精度的,我们都对运算表达式使用vpa函数。例如: digits(5); a=vpa(sqrt(2); 这样a的值就是1.4142,而不是准确的1.4142135623730950488016887242097又如: digits(5); a=vpa(sqrt(2); b=sqrt(2);

8、 这样a的值是1.4142,b没有用vpa函数,所以b是1.4142135623730950488016887242097. vpa函数对其中每一个运算都控制精度,并非只控制结果。 digits(11); a=vpa(2/3+4/7+5/9); b=2/3+4/7+5/9; a的结果为1.7936507936,b的结果为1.793650793650794.也就是说,计算a的值的时候,先对2/3,4 /7,5/9这三个运算都控制了精度,又对三个数相加的运算控制了精度。而b的值是真实值,对它取11位有效数字的话,结果为1.7936507937,与a不同,就是说vpa并不是先把表达式的值用matla

9、b本身的精度求出来,再取有效数字,而是每运算一次,都控制精度。我举的例子不太好,因为加法不太会增加数字位数。希望你能理解我的意思.方阵可逆时,用inv就可以了,不可逆时,用pinv得到的是广义逆A = 4 2 -1 3 -1 2 11 3 0则A(:,1) 即A的第一列 ans = 4 3 11rref求增广矩阵的行最简形式,可得到最简同解方程组,A=6,-2,2,1;1,-1,0,1;2,0,1,3A = 6 -2 2 1 1 -1 0 1 2 0 1 3 B=3,1,2B = 3 1 2 C=A BC = 6 -2 2 1 3 1 -1 0 1 1 2 0 1 3 2rref(C)ans

10、= 1.0000 0 0.5000 0 0.3571 0 1.0000 0.5000 0 -0.2143 0 0 0 1.0000 0.4286求解方程组x1+2x2+3x3+4x4=1的解2x1+2x2+x3+x4=32x1+4x2+6x3+8x4=24x1+4x2+2x3+2x4=6 A=1,2,3,4;2,2,1,1;2,4,6,8;4,4,2,2A = 1 2 3 4 2 2 1 1 2 4 6 8 4 4 2 2 B=1;2;3;4B = 1 2 3 4 C=A BC = 1 2 3 4 1 2 2 1 1 2 2 4 6 8 3 4 4 2 2 4 rank(A),rank(C)a

11、ns =2 3因为rank(A)不等于rank(C),故无解,只能利用函数pinv()求取Moore-Penrose广义逆,从而得到原方程的最小二乘解。 x=pinv(A)*Bx = 0.5466 0.4550 0.0443 -0.0473 norm(A*x-B)验证所得的解的精确性ans =0.4472一个稀疏矩阵中有许多元素等于零,这便于矩阵的计算和保存.如果M AT L A B把一个矩 阵当作稀疏矩阵,那么只需在m3的矩阵中存储m个非零项.第1列是行下标,第2列是列下 标,第3列是非零元素值,不必保存零元素.如果存储一个浮点数要8个字 高斯节,存储每个下标 要4个字节,那么整个矩阵在内存

12、中存储需要1 6m个字节. A = e y e ( 1 0 0 0 ) ; 得到一个1 0 0 01 0 0 0的单位矩阵,存储它需要8 Mb空间.如果使用命令: B = s p e y e ( 1 0 0 0 ) ; 用一个1 0 0 03的矩阵来代表,每行包含有一个行下标,列下标和元素本身.现在只需 1 6 K b的空间就可以存储1 0 0 01 0 0 0的单位矩阵,它只需要满单位矩阵的0 . 2 %存储空间.对于 许多的广义矩阵也可这样来作.在M AT L A B中,用命令s p a r s e来创建一个稀疏矩阵. 命令集8 7创建稀疏矩阵 s p a r s e ( A )由非零元素

13、和下标建立稀疏矩阵A.如果A已是一个稀疏 矩阵,则返回A本身. s p a r s e ( m , n )生成一个mn的所有元素都是0的稀疏矩阵. s p a r s e ( u , v , a )生成一个由长度相同的向量u,v和a定义的稀疏矩阵.其 中u和v是整数向量,a是一个实数或者复数向量.(ui, vi) 对应值ai,如果a中有零元素,则将这个元素排除在外. 稀疏矩阵的大小为m a x (u)m a x (v). s p a r s e ( u , v , a , m , n )生成一个mn的稀疏矩阵,(ui, vi)对应值ai.向量u,v和a 必须长度相同. s p a r s e

14、( u , v , a , m , n ,生成一个mn的含有n z m a x个非零元素的稀疏矩阵.(ui, n z m a x )vi)对应值ai.n z m a x的值必须大于或者等于向量u和v的长度. f i n d ( x )返回向量x中非零元素的下标.如果x=X是一 稀疏矩阵个矩阵,那 么X的向量就作为一个长向量来考虑. u , v = f i n d ( A )返回矩阵A中非零元素的下标. u , v , s = f i n d ( A )返回矩阵A中非零元素的下标.用向量s中元素的值及u和v中 相应的下标,实际上就是向量u,v和s作为命令s p a r s e的参数. s p c

15、 o n v e r t ( D )将一个有三列的矩阵转换成一个稀疏矩阵.D中的第1列作 为行的下标,第2列作为列的下标,最后一列作为元素值. 而且可以使用命令f u l l将稀疏矩阵转换成一个满矩阵. 命令集8 8转换成满矩阵 f u l l ( S )将稀疏矩阵S转换成一个满矩阵. a) 创建一个55的单位矩阵: A = e y e ( 5 ) 将矩阵A转换成稀疏矩阵B: 非线性方程的数值解法有:二分法,迭代法,非线性方程的数符号法有:solve()求ax2+bx+c=0和e-x=sin的解x=solve(a*x2+b*x+c) x = 1/2/a*(-b+(b2-4*a*c)(1/2)

16、1/2/a*(-b-(b2-4*a*c)(1/2) x_start=solve(exp(-x)=sin(pi*x/2),x) x_start = 1.3935273560689078034994453392807/pifzero()函数可以求出一维变量的零点求非线性方程x3-x2-1=0的根。调用格式x=fzero(fun,x0)fzero(fun,x0,option)x,fval=fzero()x是方程的零点,fval是计算终止时的函数值,fun是方程的函数,x0为初始点;option是选择项,它包括Display和TolxDisplay为显示迭代情况,它有如下参数:off表示不显示;ite

17、r表示显示;final表示只显示最终的结果。Tolx表示x的终止精度options=optimset(Display,iter); x=fzero(x3-x2-1,1.5,options) Func-count x f(x) Procedure 1 1.5 0.125 initial 2 1.45757 -0.0278754 search Looking for a zero in the interval 1.4576, 1.5 3 1.46531 -0.000918587 interpolation 4 1.46557 3.90703e-007 interpolation 5 1.4655

18、7 -9.8848e-011 interpolation 6 1.46557 -4.44089e-016 interpolation 7 1.46557 2.22045e-015 interpolationZero found in the interval: 1.4576, 1.5.x = 1.4656fsolve()主要是求非线性方程组的解。调用格式x=fsolve(fun,x0)fsolve(fun,x0,option)x,fval=fsolve()x是方程的零点,fval是计算终止时的函数值,fun是方程的函数,x0为初始点;option是选择项,它包括Display和Tolx、jac

19、obian、maxfunevals、maxiter;Display为显示迭代情况,它有如下参数:off表示不显示;iter表示显示;final表示只显示最终的结果。Tolx表示x的终止精度 maxfunevals是调用函数的最大次数,maxiter是指最大迭代次数例子 x+x-5=0 (x+1)x-(3x+1)=0取初始点x=(1,1)编写m文件function dx=ch52ff1(x)dx=x(1)2+x(2)2-5;(x(1)+1)*x(2)-(3*x(1)+1); x0=1;1; options=optimset(jacobian,off,display,iter); x=fsolve

20、(ch52ff1,x0,options) Norm of First-order Iteration Func-count f(x) step optimality CG-iterations 1 4 13 1 10 0 2 7 2.73828 1.27475 8.02 1 3 10 0.0156042 0.334489 0.565 1 4 13 5.87406e-007 0.027684 0.00306 1 5 16 2.51492e-015 0.000216021 2.23e-007 1Optimization terminated successfully: Relative funct

21、ion value changing by less than OPTIONS.TolFunx = 1.0000 2.0000求矩阵x使其满足方程x*x*x=,并设初始解向量为x=1,1;1,1.编写m文件function F=ch52ff3(x)F=x*x*x-1,2;3,4;x0=ones(2,2)x0 = 1 1 1 1 opitions=optimset(display,off); x,fval=fsolve(ch52ff3,x0,options) Norm of First-order Iteration Func-count f(x) step optimality CG-iter

22、ations 1 6 14 1 24 0 2 11 0.88916 0.612372 4.16 2 3 16 0.139668 0.203487 0.413 2 4 21 0.132892 0.0191047 0.0122 2 5 26 0.1327 0.011626 0.0454 2 6 31 0.132492 0.00573025 0.0198 2 7 36 0.132267 0.0105643 0.0521 2 8 41 0.132004 0.00712631 0.0269 2 9 46 0.131692 0.0110206 0.0581 2 10 51 0.1313 0.0098064

23、1 0.0357 2 11 56 0.130815 0.012704 0.0641 2 12 61 0.130161 0.014153 0.0484 2 13 66 0.129328 0.0158304 0.0735 2 14 71 0.128088 0.0214533 0.0683 2 15 76 0.126476 0.0213218 0.0888 2 16 81 0.123689 0.0351427 0.103 2 17 86 0.119993 0.0316921 0.115 2 18 91 0.111893 0.0651588 0.17 2 19 96 0.10114 0.0538454

24、 0.163 2 20 101 0.0707837 0.136565 0.283 2 21 106 0.0397325 0.0917298 0.197 2 22 111 0.00696599 0.139973 0.152 2 23 116 0.000232634 0.0376433 0.0209 2 24 121 1.04115e-005 0.00783543 0.0158 2 25 126 3.78107e-007 0.00132061 0.000745 2 26 131 3.7973e-008 0.000285857 0.000271 2Optimization terminated su

25、ccessfully: Relative function value changing by less than OPTIONS.TolFunx = -0.1291 0.8602 1.2903 1.1612fval = 1.0e-003 * 0.1541 -0.1163 0.0109 -0.0243Ezplot符号绘图函数,在图形窗口绘出函数的图形。对于符号函数,MATLAB提供了一个非常简单的作图指令:ezplot()函数。通过这个命令,可以在图型窗口绘制出符号函数图形。Ezplot()函数有以下调用格式。ezplot(f) 对于符号函数f=f(x),按照x默认的范围:2*pix2*pi,

26、在图形窗口中绘制出f=f(x)的图形。如:f=cox(x) ezplot(f);ezplot(f,a,b) 在图形窗口中绘制符号函数f=f(x)的图形,x的范围由a,b确定,即axb。ezplot(f)对于符号函数f=f(x,y),ezplot(f)在图形窗口中绘制符号方程f(x,y)=0的图形。x和y的取值范围为-2*pix2*pi,-2*piy2*pi。ezplot(f,xmin,xmax,ymin,ymax)对于符号函数f=f(x,y),在没有指定y的范围时,y的范围和x的一致。用axis equal;可以维持两坐标的一致。ezplot(x,y)对于符号函数x=x(t),y=y(t),e

27、zplot(x,y)在图形窗口中绘制符号方程x=x(t)y=y(t)的图形。t的取值范围为:0t2*piezplot(x,y,tmin,tmax)设定t的取值范围:tmint plot(x,y) axis(0.5 9 0.5 11)可设拟合曲线为二次多项式y=+function y=fitline_1(a,x)y=a(1)+a(2)*x+a(3)*x.2a=lsqcurvefit(fitline_1,1;1;1,x,y); aans = 13.2916 -3.5160 0.2575 y1=fitline_1(a,x);y = 10.0331 5.0613 3.3480 2.1498 1.4666 1.2984 1.6454 plot(x,y,x,y1,o) hold on plot(x,y1) 拟合结果求解下面的微分方程的通解2y(t)+4y(t)+y+6t= y=dsolve(2*D2y+y+4*Dy+6*t=exp(-6*t)*cos(4*t); simple(y) simplify: 17/13378*exp(-6+4*i)*t)+17/13378*exp(-6-4*i)*t)+24-6*t+40/6689*i*exp(-6+4*i)*t)-40/6

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

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