Matlab试题及答案讲课稿.docx

上传人:b****3 文档编号:6782526 上传时间:2023-05-10 格式:DOCX 页数:11 大小:206.96KB
下载 相关 举报
Matlab试题及答案讲课稿.docx_第1页
第1页 / 共11页
Matlab试题及答案讲课稿.docx_第2页
第2页 / 共11页
Matlab试题及答案讲课稿.docx_第3页
第3页 / 共11页
Matlab试题及答案讲课稿.docx_第4页
第4页 / 共11页
Matlab试题及答案讲课稿.docx_第5页
第5页 / 共11页
Matlab试题及答案讲课稿.docx_第6页
第6页 / 共11页
Matlab试题及答案讲课稿.docx_第7页
第7页 / 共11页
Matlab试题及答案讲课稿.docx_第8页
第8页 / 共11页
Matlab试题及答案讲课稿.docx_第9页
第9页 / 共11页
Matlab试题及答案讲课稿.docx_第10页
第10页 / 共11页
Matlab试题及答案讲课稿.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Matlab试题及答案讲课稿.docx

《Matlab试题及答案讲课稿.docx》由会员分享,可在线阅读,更多相关《Matlab试题及答案讲课稿.docx(11页珍藏版)》请在冰点文库上搜索。

Matlab试题及答案讲课稿.docx

Matlab试题及答案讲课稿

《Matlab软件实训》

一、训练目的

1、熟悉Matlab工具软件的开发环境

2、掌握Matlab的一些常用命令

3、掌握Matlab/Simulink建模仿真的方法

二、训练内容

1、利用命令进行各种相关数学计算;

2、编写M文件实现各种相关数学计算;

3、利用Simulink建模并仿真;

三、训练任务

1、解方程:

Ax=B,其中,

A=

,B=

本题解决思路:

这是一个简单的数组运算,核心点在于数组的输入方法和一些基本的数组运算基础,本题中需要注意的是左除与右除的区别。

命令如下

>>A=[-3508;1-82-1;0-593;-70-45]

A=

-3508

1-82-1

0-593

-70-45

>>B=[0;2;-1;6]

B=

0

2

-1

6

>>X=A\B

X=

-0.6386

-0.4210

-0.3529

0.0237

2、数值运算

已知某班的5名学生的三门成绩如下:

序号12345

高数7889647368

外语8377807870

电路8291788268

试写出有关命令,先分别找出三门课的最高分及其学生序号,然后找出三门课总分的最高分及其学生序号。

本题解决思路:

详细的分析题目,可以发现本题就是一个多组求最大值并输出的问题。

有三个核心点,第一点是求最大值问题。

第二点是如何将多组最大值问题合并在一个程序中解出,第三点是输入和输出的方法。

最大值我采用了MATLAB中的max命令,其实也可以采用自己编写M文件的方法,但是程序越精简运行越快,我选择了自带命令。

第二个问题我采用了一个for和if配合的循环判断的语句。

第三个问题我采用disp输出,并用num2str将字符串转换输出。

程序如下

a=input('高数成绩');

b=input('英语成绩');

c=input('电工成绩');

fori=1:

3

ifi==1

[y1,t1]=max(a,[],2);

elseifi==2

[y2,t2]=max(b,[],2);

else

[y3,t3]=max(c,[],2);

end

end

end

s=a+b+c;

[y4,t4]=max(s,[],2);

disp(['高数最高分是',num2str(t1),'号',num2str(y1),'分'])

disp(['英语最高分是',num2str(t2),'号',num2str(y2),'分'])

disp(['电工最高分是',num2str(t3),'号',num2str(y3),'分'])

disp(['总分最高分是',num2str(t4),'号',num2str(y4),'分'])

高数成绩[7889647368]

英语成绩[8377807870]

电工成绩[8291788268]

高数最高分是2号89分

英语最高分是1号83分

电工最高分是2号91分

总分最高分是2号257分

>>

3、建立M文件,计算积分y=

M文件如下

function[y]=J(a,b)

symsx

y=int(sin(x),x,a,b)

end

在命令行中输入J(0,pi/2)

运算得出结果

>>J(0,pi/2)

y=

1

ans=

1

4、建立M文件,在[02π]范围内绘制二维曲线图y=

本题解决思路:

在M文件中要有输入变量和输出量,分析本题得知,本题的x并不是输入文件,他是一个中间变量,真正的输入变量其实是x的输入范围,定义变量为(a,b),确定这个以后直接调用MATLAB中的内置命令求解。

M文件如下

function[y]=H(a,b)

x=linspace(a,b);

y=sin(x).*cos(5*x);

plot(x,y);

end

编辑好后输入x的范围并调运M文件“H”输入H(0,2*pi)

>>H(0,2*pi)

ans=

Columns1through9

00.06030.10190.10980.0746-0.0050-0.1216-0.2603-0.4005

Columns10through18

-0.5187-0.5926-0.6040-0.5424-0.4069-0.20680.03880.30330.5558

Columns19through27

0.76520.90420.95300.90220.75440.52400.2355-0.0792-0.3851

Columns28through36

-0.6482-0.8398-0.9402-0.9407-0.8450-0.6678-0.4330-0.17050.0882

Columns37through45

0.31390.48360.58270.60700.56250.46380.33160.18930.0594

Columns46through54

-0.0401-0.0978-0.1108-0.0845-0.03130.03130.08450.11080.0978

Columns55through63

0.0401-0.0594-0.1893-0.3316-0.4638-0.5625-0.6070-0.5827-0.4836

Columns64through72

-0.3139-0.08820.17050.43300.66780.84500.94070.94020.8398

Columns73through81

0.64820.38510.0792-0.2355-0.5240-0.7544-0.9022-0.9530-0.9042

Columns82through90

-0.7652-0.5558-0.3033-0.03880.20680.40690.54240.60400.5926

Columns91through99

0.51870.40050.26030.12160.0050-0.0746-0.1098-0.1019-0.0603

Column100

-0.0000

5、利用Simulink建立仿真模型,并给出建模步骤。

本题思路:

build建造builtbuilt确定输入函数的类型,确定中间运算过程,确定最终结果显示器

awake醒来awokeawaked/awoken结果截图如下:

begin开始beganbegun

四、个人总结

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,MATLAB的最突出的特点就是简洁。

 

shrink收缩shrank/shrunkshrunk/shrunkenMATLAB相对于其他的一些编程软件有许多的优点:

一、语言简洁紧凑,使用方便灵活,库函数极其丰富。

 

二、运算符丰富。

 

send送/寄sentsent三、MATLAB既具有结构化的控制语句(如for循环、while循环),又有面向对象编程的特性。

 

sit坐satsat四、语法限制不严格,程序设计自由度大。

 

hear听到heardheard

mean表…意思meantmeanthear听到heardheard   五、程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。

 

 

read读readreadforgive原谅forgaveforgiven   六、MATLAB的图形功能强大。

 

read读readread用madlab创建矩阵时,方法有两种:

第一、可以直接依次输入矩阵各行各列的元素,但矩阵元素必须用[ ]括住,矩阵元素必须用逗号或空格分隔 ,在[ ]内矩阵的行与行之间必须用分号分隔。

第二、用MATLAB函数创建矩阵。

MATLAB可以进行矩阵的加减、乘除的元素,求可逆矩阵、转置矩阵,求矩阵的特征值,求线性方程组等等。

 MATLAB的功能是非常强大的,MATLAB不仅有强大的运算功能,它还有强大的绘图功能,我对它的了解也仅仅就是一点点,或许说还没有入门。

比如说它含有丰富的内建函数,例如数学函数中的三角函数、复函数、多项式函数、数据分析函数的求平均值、最大最小值、排序等,以及逻辑/选择函数如if-else等,还有用来模拟随机发生事件的随机函数。

这些我都不了解。

 

hold拿住heldheld

spend花费spentspentgrow成长grewgrown虽学习MATLAB的时间虽然很短,但却让我了解到了它的强大和它的功能。

我想就算时间足够,老师也不能把所有的都讲解给我们,因为一个软件的功能需要我们自己不断的去摸索,老师也不可能知道所有。

老师只是个指路的明灯,最终的学习还是要靠自己。

而且在摸索过程中,我们能够发现和体会学习的快乐!

五、学习到的技能

bear忍受boreborn基本的命令:

lay放置laidlaid1、!

dir可以查看当前工作目录的文件。

  !

dir&可以在dos状态下查看。

2、who  可以查看当前工作空间变量名,  whos可以查看变量名细节。

3、功能键:

功能键        快捷键        说明

方向上键        Ctrl+P      返回前一行输入

方向下键        Ctrl+N      返回下一行输入

方向左键        Ctrl+B      光标向后移一个字符

方向右键        Ctrl+F      光标向前移一个字符

Ctrl+方向右键    Ctrl+R      光标向右移一个字符

Ctrl+方向左键    Ctrl+L      光标向左移一个字符

home          Ctrl+A      光标移到行首

End          Ctrl+E      光标移到行尾

Esc          Ctrl+U      清除一行

Del          Ctrl+D      清除光标所在的字符

Backspace      Ctrl+H      删除光标前一个字符                   

 Ctrl+K      删除到行尾          

 Ctrl+C      中断正在执行的命令

4、clc可以命令窗口显示的内容,但并不清除工作空间。

二、函数及运算

1、运算符:

+:

加,  -:

减,  *:

乘,  /:

除,\:

左除  ^:

  幂,‘:

复数的共轭转置,():

制定运算顺序。

2、常用函数表:

sin()  正弦(变量为弧度)  

Cot()  余切(变量为弧度)

sind()  正弦(变量为度数)  

Cotd()  余切(变量为度数)

asin()  反正弦(返回弧度)    

acot()  反余切(返回弧度)  

Asind()反正弦(返回度数)  

acotd()反余切(返回度数)  

cos()  余弦(变量为弧度)    

exp()  指数    

cosd()  余弦(变量为度数)  

log()  对数  

acos()  余正弦(返回弧度)  

log10()以10为底对数

acosd()余正弦(返回度数)    

sqrt()  开方    

tan()  正切(变量为弧度)    

realsqrt()返回非负根

tand()  正切(变量为度数)      

abs()  取绝对值  

atan()  反正切(返回弧度)    

angle()返回复数的相位角

atand()反正切(返回度数)      

mod(x,y)返回x/y的余数  

sum(  )  向量元素求和

3、其余函数可以用helpelfun和helpspecfun命令获得。

4、常用常数的值:

pi        3.1415926…….      

realmin    最小浮点数,2^-1022

i         虚数单位          

realmax    最大浮点数,(2-eps)2^1022

j         虚数单位        

Inf        无限值

eps       浮点相对经度=2^-52        

NaN        空值

三、数组和矩阵:

1、构造数组的方法:

增量发和linspace(first,last,num)first和last为起始和终止数,num为需要的数组元素个数。

2、构造矩阵的方法:

可以直接用[]来输入数组,也可以用以下提供的函数来生成矩阵。

ones()  创建一个所有元素都为1的矩阵,其中可以制定维数,1,2….个变量

zeros()  创建一个所有元素都为0的矩阵

eye()    创建对角元素为1,其他元素为0的矩阵

diag()  根据向量创建对角矩阵,即以向量的元素为对角元素

magic()  创建魔方矩阵

rand()  创建随机矩阵,服从均匀分布

randn()  创建随机矩阵,服从正态分布

randperm()      创建随机行向量

horcat        C=[A,B],水平聚合矩阵,还可以用cat(1,A,B)

vercat        C=[A;B],垂直聚合矩阵,还可以用cat(2,A,B)

repmat(M,v,h)    将矩阵M在垂直方向上聚合v次,在水平方向上聚合h次

blkdiag(A,B)    以A,和B为块创建块对角矩阵

length        返回矩阵最长维的的长度

ndims          返回维数

numel          返回矩阵元素个数

size          返回每一维的长度,[rows,cols]=size(A)

reshape        重塑矩阵,reshape(A,2,6),将A变为2×6的矩阵,按列排列。

rot90          旋转矩阵90度,逆时针方向

fliplr        沿垂轴翻转矩阵

flipud        沿水平轴翻转矩阵

transpose      沿主对角线翻转矩阵

ctranspose      转置矩阵,也可用A’或A.’,这仅当矩阵为复数矩阵时才有区别

inv          矩阵的逆

det          矩阵的行列式值

trace          矩阵对角元素的和

norm          矩阵或矢量的范数,norm(a,1),norm(a,Inf)…….

normest        估计矩阵的最大范数矢量

chol          矩阵的cholesky分解

cholinc        不完全cholesky分解

lu            LU分解

luinc          不完全LU分解

qr            正交分解

kron(A,B)      A为m×n,B为p×q,则生成mp×nq的矩阵,A的每一个元素都会乘上B,并占据p×q大小的空间

rank          求出矩阵的刺

pinv          求伪逆矩阵

A^p          对A进行操作

A.^P          对A中的每一个元素进行操作

四、数值计算

1、线性方程组求解

(1)AX=B的解可以用X=A\B求。

XA=B的解可以用X=A/B求。

如果A是m×n的矩阵,当m=n时可以找到唯一解,m

如果m>n,超定系统,至少找到一组解。

如果A是奇异的,且AX=B有解,可以用X=pinv(A)×B返回最小二乘解

(2)AX=b,  A=L×U,[L,U]=lu(A),  X=U\(L\b),即用LU分解求解。

(3)QR(正交)分解是将一矩阵表示为一正交矩阵和一上三角矩阵之积,A=Q×R[Q,R]=chol(A),  X=Q\(U\b)

(4)cholesky分解类似。

2、特征值

D=eig(A)返回A的所有特征值组成的矩阵。

[V,D]=eig(A),还返回特征向量矩阵。

3、A=U×S×UT,[U,S]=schur(A).其中S的对角线元素为A的特征值。

4、多项式Matlab里面的多项式是以向量来表示的,其具体操作函数如下:

conv        多项式的乘法

deconv      多项式的除法,【a,b】=deconv(s),返回商和余数

poly        求多项式的系数(由已知根求多项式的系数)

polyeig      求多项式的特征值

Polyfit(x,y,n)      多项式的曲线拟合,x,y为被拟合的向量,n为拟合多项式阶数。

polyder      求多项式的一阶导数,polyder(a,b)返回ab的导数

[a,b]=polyder(a,b)返回a/b的导数。

polyint      多项式的积分

polyval      求多项式的值

polyvalm    以矩阵为变量求多项式的值

residue      部分分式展开式

roots      求多项式的根(返回所有根组成的向量)

注:

用ploy(A)求出矩阵的特征多项式,然后再求其根,即为矩阵的特征值。

5、插值常用的插值函数如下:

griddata    数据网格化合曲面拟合

Griddata3    三维数据网格化合超曲面拟合

interp1      一维插值(yi=interp1(x,y,xi,’method’)Method=nearest/linear/spline/pchip/cubic

Interp2      二维插值zi=interp1(x,y,z,xi,yi’method’),bilinear

Interp3      三维插值

interpft    用快速傅立叶变换进行一维插值,helpfft。

mkpp        使用分段多项式

spline      三次样条插值

pchip      分段hermit插值

6、函数最值的求解

fminbnd(‘f’,x1,x2,optiset(,))求f在x1和x2之间的最小值。

Optiset选项可以有‘Display’+‘iter’/’off’/’final’,分别表示显示计算过程/不显示/只显示最后结果。

fminsearch求多元函数的最小值。

fzero(‘f’,x1)求一元函数的零点。

X1为起始点。

同样可以用上面的选项。

五、图像绘制:

1、基本绘图函数

plot        绘制二维线性图形和两个坐标轴

plot3        绘制三维线性图形和两个坐标轴

fplot        在制定区间绘制某函数的图像。

fplot(‘f’,区域,线型,颜色)

loglog      绘制对数图形及两个坐标轴(两个坐标都为对数坐标)semilogx      绘制半对数坐标图形

semilogy      绘制半对数坐标图形

2、可以用subplot(3,3,1)表示将绘图区域分为三行三列,目前使用第一区域。

will将would×

will将would×

write书写wrotewritten

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2