MATLAB实验指导书加程序+上机实例.doc_第1页
MATLAB实验指导书加程序+上机实例.doc_第2页
MATLAB实验指导书加程序+上机实例.doc_第3页
MATLAB实验指导书加程序+上机实例.doc_第4页
MATLAB实验指导书加程序+上机实例.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MATLAB 语言实验指导书华东交通大学电气学院张永贤2006年2月实验一MATLAB工作环境熟悉及简单命令的执行一、实验目的: 熟悉 MATLAB的工作环境,学会使用MATLAB进行一些简单的运算。二、实验内容: MATLAB的启动和退出, 熟悉 MATLAB的桌面( Desktop ),包括菜单 ( Menu)、工具条 ( Toolbar )、命令窗口 (CommandWindow)、历史命令窗口、 工作空间 (Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。三、实验步骤:1、启动 MATLAB,熟悉 MATLAB的桌面。2、在命令窗口执行命令完成以下运算,观察wor

2、kspace 的变化,记录运算结果。( 1)( 365-52 2-70 ) 3( 2) area=pi*2( 3)已知 x=3, y=4,在 MATLAB中求 z:x2 y3zxy 2(4)将下面的矩阵赋值给变量m1,在 workspace 中察看 m1在内存中占用的字节数。162313511108m1=97612414151执行以下命令m1( 2 , 3 )m1( 11 )m1( : , 3 )m1( 2 : 3 , 1 : 3 )m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1)( 5)执行命令 help abs查看函数 abs 的用法及用途,

3、计算abs( 3 + 4i )( 6)执行命令x=0:6*pi;y=5*sin(x);plot(x,y)( 6)运行 MATLAB的演示程序, demo,以便对 MATLAB有一个总体了解。四、思考题1、以下变量名是否合法为什么( 1) x2( 2) 3col( 3) _row( 4) for2、求以下变量的值,并在MATLAB中验证。( 1) a = 1 : 2 : 5 ;( 2) b = a a a ;( 3) c = a + b ( 2 , : )实验二MATLAB语言矩阵运算一、实验目的: 掌握基本的矩阵运算及常用的函数。二、实验内容:12324110a56b3c41521、下列运算是

4、否合法,为什么如合法,结果是多少(1) result1 = a(2) result2 = a * b(3) result3 = a + b(4) result4 = b * d(5) result5 = b ; c * d(6) result6 = a . * b(7) result7 = a . / b(8) result8 = a . * c(9) result9 = a . b(10) result10 = a . 2(11) result11 = a 2(12) result11 = 2 . a2、用 MATLAB求下面的的方程组。7212x1491532x27(1)2115x3121

5、3213x40xyz1x2yzw8(2)y3w32x3x3y5z6w572123、已知 A91532221151 3213(1) 求矩阵 A 的秩 (rank)(2) 求矩阵 A 的行列式 (determinant)(3) 求矩阵 A 的逆 (inverse)(4) 求矩阵 A 的特征值及特征向量(eigenvalue and eigenvector)4、关系运算与逻辑运算已知 a=20,b=-2,c=0,d=1(1) r1 = a b(2) r2 = a b & c d147d 8 5 23 6 0(3) r3 = a = b* (-10)(4) r4 = b | c三、思考题10y2n2

6、102 929210, 求 y=(用 format long查看 y 的值)n10实验三程序的编辑及调试一、实验目的: 掌握 MATLAB程序编辑、运行及调试方法。二、实验内容:1 、 启 动MATLAB 后 , 点 击File|New|M-File, 启 动MATLAB 的 程 序 编 辑 及 调 试 器( Editor/Debugger ),编辑以下程序, 点击 File|Save 保存程序, 注意文件名最好用英文字符。点击 Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正。注:数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与 3相乘再加上

7、 1。重复此过程,最终得到的结果为1。如:21310516842163105168421运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。%classic 3n+1 problem from number theory.while1n=input(Enter n,negative quits:ifn1ifrem(n,2)=0n=n/2;elsen=3*n+1;enda=a,n;endaendm2、编程求满足i 1 2i10000 的最小 m值。三、思考题用对分法求解方程2e xsin x 在0 , 1 内的解,并验证,在程序中统计出对分次数。提示:先将原方程转化成f (

8、x) 2e xsin x0 的形式。对分法的基本思想是:一个一元方程f(x)=0 ,若 f(x1)*f(x2)0,则在 x1,x2 区间内有实数解。 取该区间的中点xm=(x1+x2)/2 ,判定 f(x1)和 f(x2) 二者中哪一个与 f(xm) 异号,若 f(x1)*f(xm)v=myvander(2 3 4 5)得 v=1111234549162582764125生成一些数据测试你写的函数。三、思考题编写程序,用如下迭代公式求a , a的值分别为: 3, 17, 113。迭代的终止条件为x n 1x n10 5,迭代初值x 0 1.0, 迭代次数不超过 100 次。分别对迭代结果和准确

9、值进行比较,并统计迭代次数。x2a2x2x2ax n 1x n 1a22x n 1实验五 MATLAB的绘图1、在同一坐标系下绘制下面三个函数在t0 ,4 的图象。y 1ty 2ty 34 e0 . 1 tsin(t )2、编写程序,选择合适的步距,绘制下面函数在区间-6, 6 中的图象。3、用compass 函数画下面相量图ua=1;ub=cos(-2*pi/3)+sin(-2*pi/3)*i;uc=cos(2*pi/3)+sin(2*pi/3)*i;compass(ua,ub,uc,ua-ub,ub-uc,uc-ua)4、三维空间曲线绘制z=0:4*pi;x=cos(z);y=sin(z)

10、;plot3(x,y,z)5、用 mesh 或 surf函数,绘制下面方程所表示的三维空间曲面,x 和 y的取值范围设为-3,3 。x2y2z1010三、思考题在同一坐标系下,用不同颜色和线型绘制以下两个函数在t -2 ,2 范围内的图象。y120.5 ty 2 2e 0.2 t实验六 MATLAB数值运算一、实验目的: 掌握 MATLAB常用的数值运算函数。二、实验内容:1、求代数方程3x54x47x32x29x 120 的 5 个根,并将其用星号(* )标记在复平面图上。(用 roots 和 plot函数)。2、求代数方程x5 10 的 5个根,并将其用星号(* )标记在复平面图上。 (用

11、 roots和plot 函数)。3、求下面函数在 ,4区间内的过零点。 (用 fzero函)f (x) x32x2 sin(x)5x cos(x)1x4、已知 R=50欧姆, U=4V,二极管D 正向电流与电压的关系为:U d q1I d I seKT其中:Ud 为二极管正向电压I s 为反向饱合电流,取10-12 AK 为玻尔茨曼常数,*10-23T 为绝对温度,取300 开尔文( 27摄氏度)q 为电子电荷 *10 -19 C求此电路中的电流I d 和二极管正向电压Ud(要求用 fsolve 函数求解)5、实验数据处理:已知某压力传感器的测试数据如下表pu10111314171822242

12、93439p 为压力值, u 为电压值, 试用多项式 u ( p )ap 3bp 2cpd 来拟合其特性函数,求出a,b,c,d,并把拟合曲线和各个测试数据点画在同一幅图上。实验七 MATLAB应用1、以原点为奇对称中心的方波y(wt) ,可以用相应频率的基波及其奇次谐波合成。y(wt)4 sin wt1 sin 3wt 1 sin 5wt1sin(2n1)wt35(2n1)n1,2,3,取的阶数越多, 越接近方波,但总消除不了边缘上的尖峰,这称为吉布斯效应。设方波频率为50Hz, 时间 t 取 0秒(f=50Hz,w=2*pi*f,h=1e-5,tf=40e-3,t= 0:h:tf),编写程

13、序,画出如下用 1次谐波、 1,3 次谐波、 1,3,5,7,9 次谐波, 1,3,5, ,19 次谐波合成的近似方波。 ( 产生方波的函数为 :square)2、用 Simulink 求解下图所示电路 0100微秒内的响应。已知 R=6*10-4 欧,C=1700微法, L=6*10-9 享, uc(0)=15kV 。模块参数设置 :Integrator1 的 Initial condition:15kV在命令窗口为 R,L,C 赋值。仿真参数设置如下:Start time:0Stop time:100e-6Solver Type:Variable-stepSolver:ode45Max s

14、tep size:1e-7Min step size:autoInitial step size:autoRelative tolerance:1e-3Absolute tolerance:1e-6MATLAB实验程序实验 1第1题.(1)x=2*sin(85*pi/180)/(1+exp(2)x =(2).x=2 1+2i; 5;y=*log(x+sqrt(1+x(2)y =- + -或x=2 1+2i; 5;d=*log(x+sqrt(1+x*x)d =- + -或x=2 1+2*i; 5;y=*log(x+sqrt(1+x(2)y =- + -(3).a=:;g=(exp*a)-exp*

15、a).*sin(a+/2+log(+a)/2)结果略(4) t=0:; f1=t.2; f2=t.2-1; f3=t.2-2*t+1; z=(t=0&t=1&t=2&t A=12 34 -4;34 7 87;3 65 7; B=1 3 -1;2 0 3;3 -2 7; A+6*Bans =18 52 -1046 7 10521 53 49 A-B+eye(3) ans =12 32 -2338851681( 2) A*B ans =68 44 62309 -72 596154 -5 241 A.*Bans =12 102 468 0 2619 -130 49(3) A3 ans =37226

16、23382448604247370 149188 60076678688 454142 118820 A.3ans =172839304-6439304343 65850327274625343(4) A/Bans = BAans =(5) A,Bans =1234-413-13478720336573-27 A(1,3,:);B2 ans =1234-4365745111 0 1920 -5 40第 3 题 A=1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25; B=3 0 16;17 -6 9;0 23 -4

17、;9 7 0;4 13 11; C=A*BC =9315077258335237423520397588705557753890717 D=C(3:5,2:3) D =520 397705 557890717第 4 题(1) a=100:999; k=find(rem(a,21)=0);%找出能杯21 整除的元素位置,find()函数找出不为0 的元素位置 x=length(k)%获得向量k 的元素个数并赋值给变量xx =43 k=find(rem(a,21)=0) %显示能杯 21 整除的元素位置k =Columns 1 through 246274869901111321531741952

18、16237258279300321342363384405426447468489Columns 25 through 43510531552573594615636657678699720741762783804825846867888 y=100+k-1%显示能杯21 整除的元素y =Columns 1 through 23105126147168189210231252273294315336357378399420441462483504525546567Columns 24 through 43588609630651672693714735756777798819840861882

19、903924945966987(2)sh=CDe345Efg69K; k=find(sh=A&sh sh(k)=;找出大写字母的位置%删除大写字母 x=sh(1:end)%显示处理后的字符x =e345fg69实验 2第 1 题a=1 2 3;4 5 6;b=2 4 -1;1 3 5;c=1;0;-2;d=1 4 7;8 5 2;3 6 0; result1=a%a 的转置result1 =1 42 53 6 result2=a*b%error 应采用点乘 result3=a+b%求两个矩阵的和result3 =3625811 result4=b*d%矩阵相乘result4 =31222240

20、4913 result5=b;c*d result5 =31 22 2240 49 13-5-87 result6=a.*b%矩阵点乘result6 =28-341530 result7=a./b%矩阵右点除result7 = result8=a.*c%errora 和c 维数不同 result9=a.b%矩阵左点除result9 = result10=a.2result10=1 4 916 25 36 result11=a2%error等价于 a*a result12=2.a result12 =2 4 816 32 64第 2 题(1) A=7 2 1 -2;9 15 3 -2;-2 -2

21、 11 5;1 3 2 13; B=4;7;-1;0; X=inv(A)*B%AB等价于X =inv(A)*B,A/B 等价于A*inv(B) X1=ABX1 =(2) a=1 1 1 0;1 2 1 -1;2 -1 0 -3;3 3 5 -6; b=1;8;3;5; x=inv(a)*bx =第 3 题 A=7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13; a1=rank(A)a1 =4 a2=det(A)a2 =12568 a3=inv(A)a3 = V,D=eig(A)%V为向量A 的特征向量,D为特征值V =+- +D =0000+0000-0000第 4

22、 题 a=20; b=-2; c=0; d=1; r1=ab r1 =1 r2=ab&cd r2 =0 r3 = a = b* (-10)r3 =1 r4 = b | cr4 =05 y=0;for k=-10:10y=y+pow2(k);endformat long yy = +003实验 3方法一a=0;for i=1:20a=a+pow2(i);if a10000m=i;breakendendm方法二a=0;i=1;while (a10000)a=a+pow2(i);i=i+1;endm=i-1;m实验 4第 1 题function y=myfun1(x)if x0&x3y=-x+6;e

23、nd运行结果 : y=myfun1(-pi/2)y = -1 y=myfun1(0)y = 0 y=myfun1(2)y =2 y=myfun1(4)y =2第 2 题function m_x,max_x,min_x,rms_x=myfun2(x)%求平均值sum_x=sum(x);%向量元素求和m,n=size(x);%最好用 n=length(x);m_x=sum_x/n;%求最大值采用逐个比较方式if x(1)x(2)max_x=x(1);elsemax_x=x(2);endfor k=3:nif max_xx(k)max_x=x(k);elsemax_x=max_x;%可省略enden

24、d%求最小值if x(1)x(k)min_x=x(k);elsemin_x=min_x;%可省略endend%求均方根值sum_x2=0;for k=1:nsum_x2=sum_x2+x(k).2;rms_x=sqrt(sum_x2/n);endm_x;max_x;min_x;rms_x;%按照函数值行参顺序输出结果运行结果 : m_x,max_x,min_x,rms_x=myfun2(sin(0:6*pi) m_x =max_x =min_x =rms_x = m_x,max_x,min_x,rms_x=myfun2(rand(1,200)m_x =max_x =min_x =rms_x =

25、第 3 题function v=myvander(x)v1=vander(x);%生成范德蒙矩阵v2=v1;v=flipud(v2);%实现矩阵上下翻转运行结果 : v=myvander(2:5)v =1111234549162582764125思考题function x,n=sqrt_a(a)x=;for k=1:100m=x;x=x/2+a/(2*x);if abs(x-m)=10(-5)breakendendx;n=k;s=(x-sqrt(a);if s x,n=sqrt_a(3)正确x =n =5 x,n=sqrt_a(17)正确x =n =6 x,n=sqrt_a(113)正确x =

26、n =8实验 5第1题.方法 1 t=linspace(0,4*pi,200); y1=t;y2=sqrt(t); y3=4*pi*exp*t).*sin(t); plot(t,y1,b,t,y2,g,t,y3,r)方法 2 t=linspace(0,4*pi,200); y1=t;y2=sqrt(t); y3=4*pi*exp*t).*sin(t); t=t,t,t; y=y1,y2,y3; plot(t,y)第 2 题 x=linspace(-6,6,100); y=;for x0=xif x0=0 y=y,sin(x0);elseif x0 z=0:4*pi;x=cos(z);y=sin

27、(z);plot3(x,y,z,rp);title( 三维空间曲线 ); text(0,0,0,origin); xlabel(X),ylabel(Y),zlabel(Z);grid;第 5 题(1) x=-3:3; x,y=meshgrid(x); z=-x.2/10+y.2/10; mesh(x,y,z);xlabel(X),ylabel(Y),zlabel(Z);title(立体网状图 );( 2) x=-3:3; x,y=meshgrid(x); z=-x.2/10+y.2/10; surf(x,y,z); xlabel(X),ylabel(Y),zlabel(Z); title( 立

28、体曲面图 );思考题 t=-2*pi:pi/100:2*pi; y1=2.*abs(t); y2=2*exp*t); plot(t,y1,-g);hold on; plot(t,y2,:r);legend( 曲线 y1, 曲线 y2); hold off;grid;实验 6第 1 题 A=3,4,7,2,9,12;x=roots(A)plot(x,*);grid; x =+-+-第 2 题 A=1,0,0,0,0,-1; x=roots(A) plot(x,*);grid; x =+-+-第 3 题%估计零点 fplot(x3+1/x,4); hold on; fplot(2*x2*sin(x

29、)-5*x*cos(x),4); hold off;m,n=ginput%建立函数function y=f(x)y=x3-2*x2*sin(x)+5*x*cos(x)+1/x;%调用函数 y1=fzero(fz,y1 = y2=fzero(fz,y2 =第 4 题%估计零点 axis(0,1,0,);fplot(10(-12)*exp(Ud*10(-19)/*10(-23)*300)-1),0,4); hold on;fplot(Ud-4)/50,0,4); hold off; m,n=ginput%建立函数function f=myfun(X)Id=X(1);Ud=X(2);f(1)=Id-

30、10(-12)*exp(Ud*10(-19)/*10(-23)*300)-1);f(2)=50*Id-Ud-4;%调用函数 x=fsolve(myfun,0,optimset(Display,off)x =%验证结果 K=myfun(x) K =*0第 5 题 p=,;u=10,11,13,14,17,18,22,24,29,34,39;x=polyfit(p,u,3) %得多项式系数 t=linspace(0,10,100);y=polyval(x,t);%求多项式得值plot(p,u,*,t,y,r)%画拟和曲线x =实验 7第 1 题 f=50; w=2*pi*f; h=1e-5; tf

31、=40e-3; t=0:h:tf; wt=w*t; y1=4/pi*sin(wt); y2=4/pi*(sin(wt)+1/3*sin(3*wt); y3=4/pi*(sin(wt)+1/3*sin(3*wt)+1/5*sin(5*wt)+1/7*sin(7*wt)+1/9*sin(9*wt); y4=4/pi*(sin(wt)+1/3*sin(3*wt)+1/5*sin(5*wt)+1/7*sin(7*wt)+1/9*sin(9*wt)+1/11*s in(11*wt)+1/13*sin(13*wt)+1/15*sin(15*wt)+1/17*sin(17*wt)+1/19*sin(19*w

32、t); y=square(wt);subplot(2,2,1);plot(wt,y1,wt,y);title(1次谐波);subplot(2,2,2);plot(wt,y2,wt,y);title(1,3次谐波);subplot(2,2,3);plot(wt,y3,wt,y);title(1,3,5,7,9次谐波 );subplot(2,2,4);plot(wt,y4,wt,y);title(1,3,5,19 次谐波 );第 2 题参数如下 : R=6e-4; C=17e-4; L=6e-9;模块参数设置 :Integrator1的 Initial condition:15kV在命令窗口为R,

33、L,C 赋值。仿真参数设置如下:Start time:0Stop time:100e-6Solver Type:Variable-stepSolver:ode45Max step size:1e-7Min step size:autoInitial step size:autoRelative tolerance:1e-3Absolute tolerance:1e-6实验六用 matlab 求解常微分方程1 微分方程的概念未知的函数以及它的某些阶的导数连同自变量都由一已知方程联系在一起的方程称为微分方程。如果未知函数是一元函数,称为常微分方程。常微分方程的一般形式为如果未知函数是多元函数,成为

34、偏微分方程。 联系一些未知函数的一组微分方程组称为微分方程组。 微分方程中出现的未知函数的导数的最高阶解数称为微分方程的阶。 若方程中未知函数及其各阶导数都是一次的,称为线性常微分方程,一般表示为若上式中的系数均与无关,称之为常系数。2 常微分方程的解析解有些微分方程可直接通过积分求解 . 例如 , 一解常系数常微分方程可化为 , 两边积分可得通解为 . 其中为任意常数 . 有些常微分方程可用一些技巧 , 如分离变量法 , 积分因子法 , 常数变异法 , 降阶法等可化为可积分的方程而求得解析解.线性常微分方程的解满足叠加原理 , 从而他们的求解可归结为求一个特解和相应齐次微分方程的通解 . 一

35、阶变系数线性微分方程总可用这一思路求得显式解。高阶线性常系数微分方程可用特征根法求得相应齐次微分方程的基本解,再用常数变异法求特解。一阶常微分方程与高阶微分方程可以互化,已给一个阶方程设,可将上式化为一阶方程组反过来,在许多情况下,一阶微分方程组也可化为高阶方程。所以一阶微分方程组与高阶常微分方程的理论与方法在许多方面是相通的, 一阶常系数线性微分方程组也可用特征根法求解。3微分方程的数值解法除常系数线性微分方程可用特征根法求解,少数特殊方程可用初等积分法求解外,大部分微分方程无限世界,应用中主要依靠数值解法。考虑一阶常微分方程初值问题其中所谓数值解法, 就是寻求在一系列离散节点上的近似值称为

36、步长,单的数值解法是 Euler 法。通常取为常量。 最简Euler法的思路极其简单:在节点出用差商近似代替导数这样导出计算公式(称为Euler 格式)他能求解各种形式的微分方程。Euler法也称折线法。Euler方法只有一阶精度,改进方法有二阶Runge-Kutta法、四阶 Runge-Kutta法、五阶 Runge-Kutta-Felhberg法和先行多步法等,这些方法可用于解高阶常微分方程(组)初值问题。边值问题采用不同方法,如差分法、有限元法等。数值算法的主要缺点是它缺乏物理理解。4 解微分方程的MATLAB命令MATLAB中主要用 dsolve求符号解析解, ode45,ode23,ode15s 求数值解。s=dsolve( 方程 1,方程 2, , 初始条件 1,初始条件2,自变量)用字符串方程表示,自变量缺省值为t 。导数用 D 表示, 2 阶导数用D2 表示,以此类推。 S 返回解析解。在方程组情形,s 为一个符号结构。tout,yout=ode45(yprime ,t0,tf,y0)采用变步长四阶Runge-Kutta 法和五阶 Runge-Kutta-Felhberg法求数值解, yprime 是用以表示 f(t,y)的 M文件名, t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论