首页 MATLAB上机实验实验报告

MATLAB上机实验实验报告

举报
开通vip

MATLAB上机实验实验报告MATLAB上机实验一一、实验目的初步熟习MATLAB工作环境,熟习命令窗口,学会使用帮助窗口查找帮助信息。命令窗口二、实验内容熟习MATLAB平台的工作环境。熟习MATLAB的5个工作窗口。MATLAB的优先搜寻序次。三、实验步骤熟习MATLAB的5个基本窗口①CommandWindow(命令窗口)Workspace(工作空间窗口)CommandHistory(命令历史记录窗口)④CurrentDirectory(当前目录窗口)⑤HelpWindow(帮助窗口)命令窗口(CommandWindow)。在命令窗口中...

MATLAB上机实验实验报告
MATLAB上机实验一一、实验目的初步熟习MATLAB工作环境,熟习命令窗口,学会使用帮助窗口查找帮助信息。命令窗口二、实验内容熟习MATLAB平台的工作环境。熟习MATLAB的5个工作窗口。MATLAB的优先搜寻序次。三、实验步骤熟习MATLAB的5个基本窗口①CommandWindow(命令窗口)Workspace(工作空间窗口)CommandHistory(命令历史 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 窗口)④CurrentDirectory(当前目录窗口)⑤HelpWindow(帮助窗口)命令窗口(CommandWindow)。在命令窗口中挨次输入以下命令:>>x=1y=[123456789];z1=[1:10],z2=[1:2:5];w=linspace(1,10,10);t1=ones(3),t2=ones(1,3),t3=ones(3,1)t4=ones(3),t4=eye(4)=1z1=t1=11111111t2=111t3=111t4=111111111t4=1000010000100001思虑题:①变量如何申明,变量名须遵守什么规则、能否区分大小写。答:(1)变量申明局部变量每个函数都有自己的局部变量,这些变量只好在定义它的函数内部使用。当函数运转时,局部变量保存在函数的工作空间中,一旦函数退出,这些局部变量将不复存在。脚本(没有输入输出参数,由一系列MATLAB命令构成的M文件)没有单独的工作空间,只好共享调用者的工作空间。当从命令行调用,脚本变量存在基本工作空间中;当从函数调用,脚本变量存在函数空间中。全局变量在函数或基本工作空间内,用global申明的变量为全局变量。比方申明a为全局变量:>>globala声了然全局变量的函数或基本工作空间,共享该全局变量,都可以给它曲赋值。假如函数的子函数也要使用全局变量,也一定用global申明。永久变量永久变量用persistent申明,只好在M文件函数中定义和使用,只同意申明它的函数存取。当申明它的函数退出时,MATLAB不会从内存中除去它,比方申明a为永久变量:>>persistenta2)变量命名规则以下:始于字母,由字母、数字或下划线构成;区分大小写;可任意长,但使用前N个字符。N与硬件有关,由函数namelengthmax返回,一般N=63;不可以使用要点字作为变量名(要点字在后边给出);防备使用函数名作为变量名。假如变量采纳函数名,该函数无效。(3)区分大小写②试说明分号、逗号、冒号的用法。答:分号:加上分号“;”其作用是将计算机结果存入内存,但不显示在屏幕上,反之,语句结尾若不加“;”,则 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示在语句执行后,在将计算结果存入内存的同时,还将运算结果显示出来。③逗号:切割列表冒号:从什么到什么,比方1:10意思是——1到10linspace()称为“线性均分”函数,说明它的用法。可使用help命令,格式以下:>>helplinspace④说明函数ones()、zeros()、eye()的用法。答;(1)ones()函数:所有元素都为1的常数矩阵;(2)zeros()函数:所有元素都为0的矩阵;(3)eye()函数:单位矩阵;(4)linspace()函数:如a=linspace(n1,n2,n3),表示在线性空间上,行矢量的值从n1到n2工作空间窗口(Workspace)。单击工作空间窗口右上角的按钮,将其从MATLAB主界面分别出来。①在工作空间查察各个变量,或在命令窗口用who,whos(注意大小写)查察各个变量。②在工作空间双击变量,弹出ArrayEditor窗口(数组编写器窗口),即可更正变量。③使用save命令把工作空间的所有变量保存为文件。>>save④输入以下命令:>>clearall%除去工作空间的所有变量观察工作空间的变量能否被清空。使用load命令把刚刚保存的变量载入工作空间。>>load⑤除去命令窗口命令:>>clc历史命令窗口(CommandHistory)。打开历史命令窗口,可以看到每次运转MATLAB的时间和曾在命令窗口输入过的命令,练习以下几种利用历史命令窗口重复执行输入过的命令的方法。①在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择Copy,而后再Paste到命令窗口。②在历史命令窗口中双击要执行的一行命令,也许选中要重复执行的一行或几行命令后,用鼠标将其拖动到命令窗口中执行。③在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择EvaluateSelection,也可以执行。④也许在命令窗口使用方向键的上下键获得从前输入的命令。比方,按方向键“↑”一次,就重新将用户最后一次输入的命令调到MATLAB提示符下。重复地按方向上键“↑”,就会在每次按下的时候调用再往前一次输入的命令。近似地,按方向键“↓”的时候,就今后调用一次输入的命令。按方向键“←”也许方向键“→”就会在提示符的命令中左右挪动光标,这样用户就可以用近似于在字办理软件中编写文本的方法编写这些命令。(4)当前目录命令窗口(CurrentDirectory)。MATLAB的当前目录即是系统默认的实行打开、装载、编写和保存文件等操作时的文件夹。打开当前目录窗口后,可以看到用“save”命令所保存的文件是保存在目录C:\MATLAB6p5\work下。(5)帮助窗口(HelpWindow)。单击工具栏的图标,或选择菜单View|Help,或选择菜单Help|MATLABHelp都能启动帮助窗口。①经过Index选项卡查找log2()函数的用法,在Searchindexfor栏中输入需要查找的词汇“log2”,在左下侧就列出与之最般配的词汇条目,选择“log2[1]”,右边的窗口就会显示相应的内容。②也可以经过Search选项卡查找log2()函数的用法。Search选项卡与Index选项卡不一样,Index只在专用术语表中查找,而Search搜寻的是整个HTML帮助文件。MATLAB的数值显示格式设置屏幕显示方式有紧凑(Compact)和松懈(Loose)两种,此中Loose为默认方式。>>a=ones(1,30)>>formatcompact>>a数字显示格式有short、long、shorte、longe等,请参照教材的列表练习一遍。>>formatlong>>pi>>formatshort>>pi>>formatlong>>pi>>format+>>pi>>-pi变量的搜寻序次在命令窗口中输入以下指令:>>pi>>sin(pi);>>exist('pi')>>pi=0;>>exist('pi')>>pi>>clearpi>>exist('pi')>>pi思虑题:①3次执行exist('pi')的结果相同吗假如不一样样,试解说为何答:不一样样,pi本来是库存函数,但是假如被赋值则系统默认被给予的值为pi以后的值,但是当执行clearpi以后所赋的值被清空,所以pi的值又成为②圆周率pi是系统的默认常量,为何会被改变成0答:pi本来是库存函数,但是假如被赋值则系统默认被给予的值为pi以后的值,但是当执行clearpi以后所赋的值被清空,所以pi的值又成为实验二MATLAB语言基础一、实验目的基本掌握MATLAB向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。交接字符串的操作。二、实验内容向量的生成和运算。矩阵的创立、引用和运算。多维数组的创立及运算。字符串的操作。三、实验步骤向量的生成和运算向量的生成直接输入法:A=23456B=[1;2;3;4;5]B=12345冒号生成发:A=1:2:10,B=1:10,C=10:-1:1A=13579B=12345678910C=10987654321函数法:Linspace()是线性均分函数,logspace()是对数均分函数。>>A=linspace(1,10),B=linspace(1,30,10)A=Columns1through9Columns10through18Columns19through27Columns28through36Columns37through45Columns46through54Columns55through63Columns64through72Columns73through81Columns82through90Columns91through99Column100B=Columns1through9Column10A=logspace(0,4,5)A=练习: 答案 八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案 :使用logspace()创立1-4的有10个元素的行向量。A=logspace(1,10,4*pi)A=+010*Columns1through9Columns10through12向量的运算维数相同的行向量只见可以相加减,维数相同的列向量也可以相加减,标量可以与向量直接相乘除。A=[12345],B=3:7,A=12345B=34567AT=A',BT=B',AT=12345BT=34567E1=A+B,E2=A-BE1=4681012E2=-2-2-2-2-2F=AT-BT,F=-2-2-2-2-2G1=3*A,G2=B/3,G1=3691215G2=向量的点积与叉积运算。A=ones(1,10);B=(1:10);BT=B';E1=dot(A,B)55E2=A*BTE2=55clearA=1:3,B=3:5,A=123B=345E=cross(A,B)E=-24-2矩阵的创立、引用和运算矩阵的创立和引用矩阵是由mn元素构成的矩阵结构,行向量和列向量是矩阵的特别形式。直接输入法:A=[123;456]A=123456B=[147258369]B=147258369A(1)ans=1A(4:end)ans=536B(:,1)ans=123B(:)ans=123456789B(5)ans=5抽取法clearA=[1234;5678;9101112;13141516]A=12345678910111213141516B=A(1:3,2:3)B=23671011C=A([13],[24])C=241012A([13;24])ans=19513函数法:A=ones(3,4)A=111111111111>>B=zero(3)Undefinedfunctionormethod'zero'forinputargumentsoftype'double'.B=zeros(3)B=000000000>>C=eyes(3,2)Undefinedfunctionormethod'eyes'forinputargumentsoftype'double'.C=eye(3,2)C=100100D=magic(3)D=816357492拼接法clearA=ones(3,4)A=111111111111B=zeros(3)B=000000000C=eye(4)C=1000010000100001D=[AB]D=111100011110001111000F=[A;C]F=1111111111111000010000100001拼接函数和变形函数法:clearA=[01;11]A=11B=2*ones(2)B=22cat(1,A,B,A)ans=112211cat(2A,B,A)cat(2A,B,A)Error:UnexpectedMATLABexpression.cat(2,A,B,A)ans=012201112211>>repmat(A,2,2)ans=0101111101011111repmat(A,2)ans=0101111101011111练习:使用函数法、拼接法、拼接函数法和变形函数法,依据要求创立以下矩阵:A为34的全1矩阵、B为33的0矩阵/C为33的单位矩阵、D为33的魔方阵、E由C和D纵向拼接而成,F抽取E的2---5行元素生成、G由F经变形为34的矩阵而得、以G为子矩阵用复制函数(repmat)生成68的大矩阵H。答案:>>A=ones(3,4)A=111111111111B=zeros(3,3)B=000000000C=eye(3)C=100010001D=magic(3)D=816357492E=[C;D]E=100010001816357492F=(2:5,:)F=(2:5,:)Error:Expressionorstatementisincorrect--possiblyunbalanced(,{,or[.F=E(2:5,:)F=010001816357>>G=respace(E,3,4)Undefinedcommand/function'respace'.>>G=respace(F,3,4)Undefinedcommand/function'respace'.G=reshape(F,3,4)G=031101568007H=repmat(G,2,2)H=031103110156015680078007031103110156015680078007矩阵的运算矩阵的加减、数乘与乘法已知矩阵:>>A=[123-1],A=12-1B=[-1012]B=-102A+Bans=212*Aans=4-22*A-3*Bans=4-8A*Bans=14-4-2矩阵的逆矩阵formatrat;A=[101;212;046]A=101212046A1=inv(A)A1=-1/32/3-1/6-2104/3-2/31/6A*A1ans=100010001矩阵的除法a=[121;314;221],b=[112],d=b'a=121314221b=112d=112>>c1=b*inv(a),c2=b/ac1=6/73/7-4/7c2=6/73/7-4/7>>c3=inv(a)*d,c4=a\bc3=12/7-4/7Errorusing==>mldivideMatrixdimensionsmustagree.>>c3=inv(a)*d,c4=a\dc3=12/7-4/7c4=12/7-4/7练习:按以下要求求出各种的矩阵运算的值求矩阵的秩、特色值和特色向量、矩阵的乘幂与开方;矩阵的指数与对数矩阵的提取与翻转答案:A=[6343-257-48-1-3-7]A=6343-257-48-1-3-7B=rank(A)B=3rb=rank(A)rb=3[X,Lamda]=eig(A)Errorusing==>eigMatrixmustbesquare.[X,Lamda]=eigs(A)Errorusing==>eigsAmustbeasquarematrixorafunctionwhichcomputesA*x.C=[634-2578-1-3]C=634-2578-1-3[X,Lamda]=eigs(C)X=Lamda=0000[X,Lamda]=eig(C)X=Lamda=0000[X,Lamda]=eig(C)X=Lamda=0000D=A^2Errorusing==>mpowerMatrixmustbesquare.>>D=C^2D=62293334126262234E=sqrtm(C)E=--+--++F=expm(C)F=+004*>>G=logm(C)Warning:PrincipalmatrixlogarithmisnotdefinedforAwithnonpositiverealeigenvalues.Anon-principalmatrixlogarithmisreturned.Infunmat153Inlogmat27=--+--++>>H=fliplr(C)H=4365-2-3-18I=triu(C)I=6340570-3J=tril(C)J=00-2508-1-3>>K=diag(C)K=65-3多维数组的创立及运算1)多维数组的创立>>A1=[1,2,3;456;7,8,9];A2=reshape([10:18],3,3)A2=101316111417121518T1(:,:,1)=ones(3);T1(:,:,2)=zeros(3)T1(:,:,1)=111111111T1(:,:,2)=000000000T2=ones(3,3,2)T2(:,:,1)=111111111T2(:,:,2)=111111111T3=cat(3,A1,A2),T4=repmat(A1,[1,1,2])T3(:,:,1)=123456789T3(:,:,2)=101316111417121518T4(:,:,1)=123456789T4(:,:,2)=1234567892)多维数组的创立数组运算用小圆点加在运算符的前面表示,以区分矩阵的运算。特色是两个数组相对应的元素进行运算。A=[1:6];B=ones(1,6);C1=A+B,C2=A-BC1=234567C2=012345C3=A.*B,C4=B./A,C5=A.\BC3=123456C4=C5=关系运算或逻辑运算的结果都是逻辑值。>>I=A>3,C6=A(I)I=000111C6=456A1=A-3,I2=A1&AA1=-2-10123I2=110111I3=~II3=111000字符串的操作1)字符串的创立S1='IlikeMATLAB'S1=IlikeMATLABS2='I''mastuent.'S2=I'mastuent.S3=[S2,'and',S1]S3=I'maMATLAB2)求字符串长度length(S1)ans=12size(S1)ans=1123)字符串与一维数值数组的互相变换>>CS1=abs(S1)CS1=CS2=double(S1)CS2=char(CS2)ans=IlikeMATLABsetstr(CS2)ans=IlikeMATLAB练习:用char()和向量生成的方法创立以下字符串AaBbCc......XxYyZz.S1=65:90;S2=97:122;C=[S1;S2];C=C(:)';S3=double(C);char(S3)ans=AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz实验三MALTAB数值运算一、实验目的掌握MATLAB的数值运算及其运算中所用到的函数,掌握结构数组和细胞数组的操作。二、实验内容1)多项式运算。2)多项式插值和拟合。3)数值为积分。4)结构数组和细胞数组。三、实验步骤1、多项式运算1)多项式表示。在MATLAB中,多项式表示成向量的形式。如:S43S35S29在MATLAB中表示为>>s=[13-509]2)多项式的加减法相当于向量的加减法,但一定注意阶次要相同。如不一样,低阶次的要补0。如多项式2s23s9与多项式s43s35s24s7相加。s1=[002311]s2=[12-547]s3=s1+s2答;s1=002311s2=12-547s3=12-37183)多项式的乘、除法分别用函数conv和的deconv实现。>>s1=[2311]>>s2=[13-547]s3=conv(s1,s2)s4=deconv(s3,s1)答;s1=2311s2=13-547s3=291026-296577s4=13-5474)多项式求根用函数roots。s1=[242]roots(s1)答;s1=242ans=-1-15)多项式求值用函数polyvals1=[241-3]polyval(s1,3)x=1:10y=polyval(s1,x)答;s1=241-3ans=90x=y=Columns1through8431901933525798861285Columns9through102练习:求(s1)(s3)(s1)的“商”及余数。s32s1>>s1=[101];s2=[13];s3=[11];>>s4=[1021];>>[q,r]=deconv(conv(conv(s1,s2),s3),s4)答;q=14r=002-5-12、多项式插值和拟合有一组实验数据如附表1-1所示。附表1-1X12345678910Y163270142260436682101014321960分别用拟合(二阶至三阶)和插值(线性和三次样条)的方法来估量X=时Y的值。以下是实现一阶拟合的语句。x=1:10>>p1=polyfit(x,y,1)%一阶拟合y1=polyval(p1,%计算多项式P1在x=的值答;x=y=Columns1through81010Columns9through1013421960p1=y1=+0033、数值微积分1)差分使用diff函数实现。x=1:2:9diff(x)答;x=13579ans=22222)可以用因变量和自变量差分的结果相处获得数值微分。x=linspace(0,2*pi,100);y=sin(x);>>plot(x,y)y1=diff(y)./diff(x);plot(x(1:end-1),y1)答;3)cumsum函数求累计积分,trapz函数用梯形法求定积分,即曲线的面积。x=ones(1,10)cumsum(x)x=linspace(0,pi,100);y=sin(x);trapz(x,y)p=cumsum(y);p(100)*pi/(100-1)答;x=1111111111ans=12345678910ans=ans=练习:图A1是瑞士地图,为了算出其国土面积,第一对地图作以下丈量:以由西向东方向为X轴,由南向北方向为Y轴,选择方便的原点,并将从最西界限点到最东界限点在X轴上的区间合适区分为若干段,在每个分点的Y方向测出南界限点和北界限点的Y坐标Y1和Y2,这样就获得表1,依据地图比率尺回到18mm相当于40Km,试由丈量数据计算瑞士国土近似面积,与其精确值41228km2比较。地图的数据见附表1-2(单位mm)。附表1-2X7133448566191Y14445475050383030343634414546Y24459707293100110110110117118116118118续表X96101104118142146150157158Y143373328326555545250666668Y2121124121121121116122838182868568提示:由高等数学的知识,一条曲线的定积分是它与x轴所围成的面积,那么两条曲线所围成的面积可由两条曲线的定积分相减获得。4、结构数组与细胞数组1)机构数组的创立。>>='001';>>='Jack';student(2).number='002';student(2).name='Lucy';student也许用struct函数创立。>>student=struct('number',{'001','002'},'name',{'Jack','Lucy'});答;student=1x2structarraywithfields:numbername2)机构数组的操作。>>student(1).subject=[]%增添subject域并给予空值student(1).score=[]filednames(studeng)>>fieldnames(studeng)>>fieldnames(student)getfield(student,{2},'name')>>student=rmfield(student,'subject')%删除subject域student=setfield(student,{1},'score',90);student(2).score=88;%比较和上一条语句能否成效相同答;student=1x2structarraywithfields:numbernamesubjectstudent=1x2structarraywithfields:numbernamesubjectscoreUndefinedfunctionorvariable'studeng'.练习:创立一结构数组stusorce,其域为:No,Name,English,Math,Chinese,Total,Average。结构数组的大小为2×2。3)细胞数组的创立。>>A={'Howareyou!',ones(3);[12;34],{'cell'}};%直接创立>>B(1,1)={'Helloworld'};%由各个细胞元素创立>>B(1,2)={magic(3)};>>B(2,1)={[1234]};答也许用cell函数先创立空的细胞数组,而后再给各个元素赋值c=cell(1,2);c(1,1)={'Helloworld'};c(1,2)={magic(3)};c(1,3)={[1234]};4)细胞数组的操作。>>ans1=A(1,1)ans2=A(1,1)whosans1ans2celldisp(A)a1=A{2,1}(1,2)[a2a3]=deal(A{1:2})答;ans1='Howareyou!'ans2='Howareyou!'NameSizeBytesClassAttributesans11x184cellans21x184cellA{1,1}=Howareyou!A{2,1}=124A{1,2}=111111111A{2,2}{1}=cella1=2a2=Howareyou!a3=24实验四MALTAB符号运算一、实验目的掌握符号变量和符号表达式的创立,掌握MALTAB的symbol工具箱的一些基本运用。二、实验内容1)符号变量、表达式、方程及函数的表示。2)符号微积分运算。3)符号表达式的操作和变换。4)符号微分方程求解。三、实验步骤1、符号运算的引入在数值运算中假如求limsinx,则可以不停让的让x趋近0,一球的表达式趋近什么数,但终归不x0x能令x=0,由于在数值运算中0不是能作除数的。MATLAB的符号运算能解决这内问题。输入以下命令:>>f=sym('sin(pi*x)/x')>>limit(f,'x',0)答;f=sin(pi*x)/xans=pi2、符号常量、符号变量、符号表达式的创立1)使用sym()创立输入以下命令,观察Workspace中A、B、f是什么内性的数据,占用多少字节的内存空间。A=sym('1')%符号常量B=sym('x')%符号变量f=sym('2*x^2+3*x-1')%符号表达式clearf1=sym('1+2')%有单引号,表示字符串f2=sym(1+2)%无单引号f2=sym(1+2)f4=sym('2*x+3')%为何犯错x=1f4=sym(2*x+3)答;A=1=x=2*x^2+3*x-1f1=1+2f2=3f2=3f4=2*x+3x=1f4=5经过看MATLAB的帮助可知,sym()的参数可以使字符串或是数值种类,不论是哪一各种类都会生成符号种类数据。2)使用syms创立clearsymsxyzx,y,zf1=x^2+2*x+1f2=exp(y)+exp(z)^2f3=f1+f2答;x=x=y=zf1=x^2+2*x+1f2=exp(y)+exp(z)^2f3=x^2+2*x+1+exp(y)+exp(z)^23、符号矩阵创立symsa1a2a3a4A=[a1a2;a3a4]A(1),A(3)答;A=[a1,a2][a3,a4]ans=a1ans=a24、符号算术运算1)符号向量相乘、相除符号量相成和数值量相乘相同,分成矩阵乘和数组乘。>>a=sym(5);b=sym(7);>>c1=a*bc2=a/ba=sym(5);B=sym([345]);C1=a*B,C2=a\BsymsabA=[5a;b3];B=[2*ab;2*ba];C1=A*B,C2=A.*BC3=A\B,C4=A./B答;c1=35c2=5/7C1=[15,20,25]C2=[3/5,4/5,1]C1=[10*a+2*a*b,5*b+a^2][2*a*b+6*b,b^2+3*a]C2=[10*a,a*b][2*b^2,3*a]C3=[2*a*(b-3)/(-15+a*b),(a^2-3*b)/(-15+a*b)][2*b*(a-5)/(-15+a*b),-(5*a-b^2)/(-15+a*b)]C4=[5/2/a,a/b][1/2,3/a]2)符号数值任意精度控制和运算任意精度的VPA运算可以使用命令digits(设定默认的精度)和vpa(对指定对象以新的精度进行计算)来实现。a1=sym('2*sqrt(5)+pi')a=sym('2*sqrt(5)+pi')b=sym(2*sqrt(5)+pi)digits>>vpa(a)digits(15)vpa(a)c1=vpa(a,56)c2=vpa(b,56)答a1=2*sqrt(5)+pi=2*sqrt(5)+pi=*2^(-50)Digits=32ans=ans=c1=7.c2=注意观察c1和c2的数值种类,c1和c2能否相等。3)符号种类与数值种类的变换使用命令sym可以把数值型对象变换成有理数性符号对象,命令vpa可以讲数值型对象变换为任意精度的VPA型符号对象。使用double,numeric函数可以将有理数型和VPA型符号对象变换成数值对象.cleara1=sym('2*sqrt(5)+pi')b1=double(a1)%符号转数值b2=isnumeric(b1)%判断能否变换成了数值a2=vpa(a1,70)%数值转符号答;a1=2*sqrt(5)+pib1=b2=1a2=5、符号表达式的操作和变换1)独立变量的确定原则独立变量的确定原则:在符号表达式中默认变量是唯一的。MATLAB会对单个英文小写字母(除i、j外)进行搜寻,且以x为首选独立变量。假如表达式中字母不独一,且无x,就选在字母表最凑近x的字母。假如有相连的字母,则选择在字母表中较后的那一个。比方:'3*yz'中,y是默认独立变量。'sin(a*tb)',t是默认独立变量。输入以下命令,观察并解析结果。>>clear>>f=sym('a+b+i+j+x+y+xz')>>findsym(f)>>findsym(f,1)>>findsym(f,2)>>findsym(f,3)>>findsym(f,4)>>findsym(f,5)>>findsym(f,6)答;f=a+b+i+j+x+y+xzans=a,b,j,x,xz,yans=xans=x,xzans=x,xz,yans=x,xz,y,jans=x,xz,y,j,bans=x,xz,y,j,b,a2)符号表达式的化简符号表达式化简主要包含表达式美化(pretty)、合并同类项(collcet)、多项式睁开(expand)、因式分解(factor)、化简(simple或simplify)等函数。①合并同类项(collect)。分别按x的同幂项和e指数同幂项合并表达式:(x2xet1)(xet)。symsxt;f=(x^2+x^exp(-t)+1)*(x+exp(-t));f1=collect(f)f2=collect(f,'exp(-t)')答;f1=x^3+exp(-t)*x^2+(x^exp(-t)+1)*x+(x^exp(-t)+1)*exp(-t)f2=(x^2+x^exp(-t)+1)*exp(-t)+(x^2+x^exp(-t)+1)*x②对显示格式加以美化(pretty)。针对上例,用格式美化函数可以使显示的格式更符合数学书写习惯。pretty(f1)pretty(f2)答;f1=x^3+exp(-t)*x^2+(x^exp(-t)+1)*x+(x^exp(-t)+1)*exp(-t)f2=(x^2+x^exp(-t)+1)*exp(-t)+(x^2+x^exp(-t)+1)*xpretty(f1)pretty(f2)32exp(-t)x+exp(-t)x+(xexp(-t)+1)x+(x+1)exp(-t)2exp(-t)2exp(-t)(x+x+1)exp(-t)+(x+x+1)x注意与直接输出的f1和f2比较。③多项式睁开(expand)。睁开(x1)12成x不一样次幂的多项式.symsxf=(x-1)^12;expand(f)pretty(expand(f))答;ans=1+x^12-12*x^11+66*x^10-220*x^9+495*x^8-792*x^7+924*x^6-792*x^5+495*x^4-220*x^3+66*x^2-12*x121110987651+x-12x+66x-220x+495x-792x+924x-792x432495x-220x+66x-12x因式分解(factor)。将表达式x121做因式分解。symsx;f=x^12-1;pretty(factor(f))答;ans=1+x^12-12*x^11+66*x^10-220*x^9+495*x^8-792*x^7+924*x^6-792*x^5+495*x^4-220*x^3+66*x^2-12*x121110987651+x-12x+66x-220x+495x-792x+924x-792x432495x-220x+66x-12xsymsx;f=x^12-1;pretty(factor(f))22242(x-1)(1+x+x)(1+x)(1-x+x)(1+x)(x-x+1)⑤化简(simple或simplify)。将函数1112f3x28化简。xxclearsymsx;f=(1/x^3+6/x^2+12/x+8)^(1/3);g1=simple(f)g2=simplify(f)答;g1=(2*x+1)/xg2=((2*x+1)^3/x^3)^(1/3)6、符号表达式的变量替代subs函数可以对符号表达式中的符号变量进行替代clearf=sym('(x+y)^2+4*x+10')>>f1=subs(f,'x','s')%使用s替代x>>f2=subs(f,'x+y','z')答;f=(x+y)^2+4*x+10f1=(s+y)^2+4*s+10f2=z^2+4*x+107、符号极限、符号积分与微分1)求极限函数的调用格式limit(F,x,a)%返回符号对象F当x→a时的极限limit(F,a)%返回符号对象F当独立变量*→a时的极限limit(F)%返回符号对象F当独立变量→0(a=0)时的极限limit(F,x,a,’right’)%返回符号对象F当x→a时的右极限limit(F,x,a,’left’)%返回符号对象F当x→a时的左极限例一:clearf=sym('sin(x)/x+a*x')>>limit(f,'x',0)%以x为自变量求极限>>limit(f,'a',0)%以a为自变量求极限>>limit(f)%在默认状况下以x为自变量求极限>>findsym(f)%获得变量而且按字母表序次摆列答‘f=sin(x)/x+a*xans=1ans=sin(x)/xans=1ans=a,x例二:clearf=sym('sqrt(1+1/n));>>limit(f,n,inf)%求n趋于无量大时的极限2)求积分函数的调用格式int(F)%求符号对象F关于默认变量的不定积分int(F,v)%求符号对象F关于指定变量v的不定积分int(F,a,b)%求符号对象F关于默认变量的从a到b的定积分int(F,v,a,b)%求符号对象F关于指定变量的从a到b的定积分3)求微分方程的调用格式diff(F)%求符号对象F关于默认变量的微分diff(F,v)%求符号对象F关于指定变量v的微分diff(F,n)%求符号对象F关于默认变量的n阶微分,n为自然数1、2、3diff(F,v,n)%求符号对象F关于指定变量v的n阶微分8、符号方程求解惯例方程求解函数的调用格式g=solve(eq)%求方程(或表达式或字串)eq关于默认变量的解g=solve(eq,var)%求方程(或表达式或字串)eq关于指定变量var的解g=solve(eq1,eq2,.,eqn,var1,var2,,varn)%求方程(或表达式或字串)eq1,eq2,eq3,eqn关于指定变量组var1,var2,,varn)的解求一元二次方程ax2bxc0的解。其求解方法有多种形式:seq=solve('a*x^2+b*x+c')seq=solve('a*x^2+b*x+c=0')eq=’a*x^2+b*x+c’;eq=’a*x^2+b*x+c=0’;seq=solve(eq)symxabceq=a*x^2+b*x+cseq=solve(eq)常微分方程求解求解常微分方程的函数是dsolve。应用此函数可以求得常微分方程(组)的通解,以及给定界限条件(或初始条件)后的特解。常微分方程求解函数的调用格式:r=dsolve(’eq1,eq2,’,’cond1,cond2,’,’v’)r=dsolve(’eq1’,’eq2’,,’cond1’,’cond2’,,’v’)说明:①以上两式均可给出方程eq1,、qeq2对应初始条件cond1、cond2之下的一v作为解变量的各微分方程的解。②常微分方程解的默认变量为t。③第二式中最多可接受的输入式是12个。④微分方程的表达方法。在用MATLAB求解常微分方程时,用大写字母Dy表示dyd2y,用D2y表示,依此类推。dxdx2界限条件以近似于y(a)=b给出。此中y为因变量,a、b为常数.假如初始条件给的不够,求出的解为含有C1、C2等候定常数的通解。例一求微分方程dy2x的通解.dx练习:(1)求limx21x2。x23x2(2)求函数f(x)cos2xsin2x的积分;求函数()xsin的导数exxgx(3)计算定积分6(sinx2)dx04)求以下线性方程组的解yz103x3yz142x3yz15)求解但y(0)=2,在z(0)=7时,微分方程组的解。dydxdzdxzsinxy1x实验五MATLAB程序设计一、实验目的掌握MATLAB程序设计的主要方法,熟练编写MATLAB函数.二、实验内容(1)M文件的编写。程序流程控制结构。子函数调用和参数传达。局部变量和全局变量。三、实验步骤1、M文件的编写选择MATLAB的菜单File|New|M-file,打开新的M文件进行编写,而后输入以下内容,并保存文件名为。s=0;forn=1:100s=s+n;ends答;s=5050保存好文件后,在命令窗口输入expl即可运转该脚本文件,主义观察变量空间。紧接着创立M函数文件,而后输入以下内容,并保存文件名为。functions=expl2(x)s=0;forn=1:xs=s+n;end保存好文件后,在命令窗口输入clears=expl2(100)以open命令可以打开M文件进行更正。>>openconv%打开conv函数2、程序流程控制结构1)for循环结构forn=1:10nend答;n=1=2=3=4=5=6=7n=8=9n=10另一种形式的for循环:>>n=10:-1:5;>>fori=n%循环的次数为向量n的列数iend答;i=10i=9i=8i=7i=6i=52)while循环结构在命令窗口输入:clearx=1;while1x=x*2end将会看到MATLAB进入死循环由于while判断的值恒为真,这时须按Ctrl+C键来中断运转,而且可看到x的值为无量大。练习:(1)请把函数文件用while循环改写。(2)用41131517......公式求的近似值,直到最后一项的绝对值小于106为止,试编写M脚本文件.3)if-else-end分支结构if-else-end分支结构有以下3种形式。(a)if表达式语句组1end(b)if表达式语句组1else语句组2end(c)if表达式A语句组1elseif表达式B语句组2elseif语句组3else语句组nend4)switch-case结构创立M脚本文件,输入以下内容并在命令窗口中运转。%功能:判断键盘输入的数是奇数还是偶数n=input('n=');ifisempty(n)error('pleaseinputn');n=input('n=');endswitchmod(n,2)case1A='奇数'case0A='偶数'End答;n=input('n=');ifisempty(n)error('pleaseinputn');n=input('n=');endswitchmod(n,2)case1A='奇数'case0A='偶数'endn=1A=奇数3、子函数和参数传达x有一个函数()!(x1,2,3...),试编写实现该函数的函数文件。gxnn1functiong=expl4(x)%主函数g=0;forn=1:xg=g+fact(n);%调用子函数endfunctiony=fact(k)%子函数y=1;forn=1:ky=y*n;end输入参数可以有函数nargin计算,下边的例子sinplot(),当知输入一个参数w时,sinplot()函数会给p给予默认值0。4、局部变量和全局变量自程序执行开始到退出MATLAB,一直存放在工作空间,可被任何命令文件和数据文件存取或更正的变量即为全局变量,全局变量可用于函数之间传达参数,全局变量用要点字global申明。编写一个乞降的函数文件,其名为。程序以下:functions=summglobalBEGENDk=BEG:END;s=sum(k);再编写调用M脚本文件来调用函数文件,它们之间经过全局变量传达参数。程序以下:globalBEGENDBEG=1;END=10;s1=summ;BEG=1;END=20;S2=summ;实验六MATLAB数据可视化一、实验目的掌握MATLAB二维、三维图形绘制,掌握图形属性的设置和图形修饰;掌握图像文件的读取和现实。二、实验内容1)二维图形绘制。2)三维曲线和三维曲面绘制。3)图像文件的读取和显示。三、实验步骤1、二维图形绘制1)二维图形绘制主要使用函数plot。>>clearx=linspace(0,2*pi,100);y1=sin(x);plot(x,y)plot(x,y1)holdon%保持原有的图形plot(x,cos(x))注:holdon用于保持图形窗口中原有的图形,holdoff排除保持。2)函数plot的参数也可以是矩阵。>>closeall%关闭所有图形窗口x=linspace(0,2*pi,100);y1=sin(x);y2=cos(x);A=[y1;y2]';%把矩阵转置B=[x;x]';plot(B,A)3)采纳绘图线型和颜色。>>closeall%关闭所有图形窗口>>plot(x,y1,'g+',x,y2,'r:')>>gridon%增添网格线4)增添文字注明。>>title('正弦曲线和余弦曲线')>>ylabel('幅度')>>xlabel('时间')>>legend('sin(x)','cos(x)')>>gtext('\leftarrowsinx')%可用鼠标选择注明的地点%leftarrowsinx产生左箭头,‘’为转义符5)更正坐标轴范围。axisequalaxisnormalaxis([0pi0])6)子图和特别图形绘制。subplot(2,2,1)t1=0::3;y1=exp(-t1);bar(t1,y1);subplot(2,2,2)t2=0::2*pi;y2=sin(t2);stem(t2,y2);subplot(2,2,3)t3=0::3;y3=t3.^2+1;stairs(t3,y3);subplot(2,2,4)t4=0:.01:2*pi;y4=abs(cos(2*t4));polar(t4,y4);2、三维曲线和三维曲面绘制1)三维曲线绘制使用plot3函数。绘制一条空间螺旋线:z=0::6*pi;x=cos(z);y=sin(z);plot3(x,y,z)练习:利用子图函数,绘制以上空间螺旋线的俯视图、左视图和前视图。2)三维曲面图的绘制:MATLAB绘制网线图和网面图的函数分别是mesh()、surf(),其详尽操作步骤是:①用函数meshgrid()生成平面网格点矩阵[X,Y];②由[X,Y]计算函数数值矩阵Z;③用mesh()绘制网线图,用surf()绘制网面图。绘制椭圆抛物面:clearall,closeallx=-4::4;y=x;[XY]=meshgrid(x,y);Z=X.^2/9+Y.^2/9;mesh(X,Y,Z);title('椭圆抛物面网线图')surf(X,Y,Z);>>title('椭圆抛物面网面图')绘制阔边帽曲面;clearall,closeall;x=::;Y=x;[X,Y]=meshgrid(x,Y);R=sqrt(X.^2+Y.^2)+eps;%避开零点,省得零做除数Z=sin(R)./R;mesh(X,Y,Z);title('阔边帽面网线图')figure(2)surf(X,Y,Z);title('阔边帽面网面图')练习:考虑以下问题:设zx2e(x2y2),求定义域x=[-2,2],y=[-2,2]内的z值(网格取)。请把z
本文档为【MATLAB上机实验实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥20.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
知识森林
暂无简介~
格式:doc
大小:2MB
软件:Word
页数:97
分类:
上传时间:2022-08-05
浏览量:12