MATLAB课程设计

时间:2024.3.19

一、课程目的

  初步学会使用MATLAB软件,掌握MATLAB基本的函数的使用,熟练MATLAB编程,以便为今后数字信号的处理打下基础。

二、  课程内容

实验一  MATLAB语言基础

实验目的:基本掌握 MATLAB 向量、 矩阵、 数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。了解字符串的操作。

实验内容:

1、创建以下矩阵:A为3×4的全 1 矩阵、B为3×3的0矩阵、C为3×3的单位阵、D为3×3的魔方阵、ECD纵向拼接而成、F抽取E的2~5行元素生成、GF经变形为3×4的矩阵而得、以G为子矩阵用复制函数(repmat)生成6×8的大矩阵H

源程序

A=ones(3,4)% A为3×4的全 1 矩阵

B=zeros(3)% B为3×3的0矩阵

C=eye(3)% C为3×3的单位阵

D=magic(3)% D为3×3的魔方阵

E=cat(1,C,D)% E由C和D纵向拼接而成

F=E(2:5,:)% F抽取E的2~5行元素生

G=reshape(F,3,4)% G由F经变形为3×4的矩阵而得

H=repmat(G,2,2)  %以G为子矩阵用复制函数(repmat)生成6×8的大矩阵H

运行结果

A =

     1     1     1     1

     1     1     1     1

     1     1     1     1

B =

     0     0     0

     0     0     0

     0     0     0

C =

     1     0     0

     0     1     0

     0     0     1

D =

     8     1     6

     3     5     7

     4     9     2

E =

     1     0     0

     0     1     0

     0     0     1

     8     1     6

     3     5     7

     4     9     2

F =

     0     1     0

     0     0     1

     8     1     6

     3     5     7

G =

     0     3     1     1

     0     1     5     6

     8     0     0     7

H =

     0     3     1     1     0     3     1     1

     0     1     5     6     0     1     5     6

     8     0     0     7     8     0     0     7

     0     3     1     1     0     3     1     1

     0     1     5     6     0     1     5     6

     8     0     0     7     8     0     0     7 

2、(1)用矩阵除法求下列方程组的解 x=[x1x2x3];

 

(2)  求矩阵的秩;

(3)  求矩阵的特征值与特征向量;

(4)  矩阵的乘幂与开方;

(5)  矩阵的指数与对数;

(6)  矩阵的提取与翻转。

源程序:

a=[6,3,4;-2,5,7;8,-1,-3]%系数矩阵

b=[3;-4;-7]

x=a\b%线性方程的解

c=rank(x)%矩阵的秩

[X,Lamda]=eig(a)%矩阵方程的特征值和特征向量

d=a^3%系数矩阵的3次幂

e=sqrtm(a)%x系数矩阵开方

f=expm(a)%系数矩阵的指数

g=logm(a)%系数矩阵的对数

h=triu(a)%提取系数矩阵右上三角的元素,其余元素补零

i=tril(a)%提取系数矩阵左上三角的元素,其余元素补零

j=diag(a)%提取系数矩阵的对角线上的元素

k=flipud(a)%系数矩阵a沿水平轴上下翻转

l=fliplr(a)%系数矩阵a沿垂直轴轴左右翻转

m=flipdim(a,1)%按行定维翻转

n=flipdim(a,2)%按列定维翻转

o=rot90(a)%矩阵整体逆时针翻转90°  

运行结果

a =

     6     3     4

    -2     5     7

     8    -1    -3

b =

     3

    -4

    -7

x =

    1.0200

  -14.0000

    9.7200

c =

     1

X =

    0.8013   -0.1094   -0.1606

    0.3638   -0.6564    0.8669

    0.4749    0.7464   -0.4719

Lamda =

    9.7326         0         0

         0   -3.2928         0

         0         0    1.5602

d =

   578   298   352

   228   156   202

   384   154   156

e =

   2.2447 + 0.2706i   0.6974 - 0.1400i   0.9422 - 0.3494i

  -0.5815 + 1.6244i   2.1005 - 0.8405i   1.7620 - 2.0970i

   1.9719 - 1.8471i  -0.3017 + 0.9557i   0.0236 + 2.3845i

f =

  1.0e+004 *

    1.0653    0.5415    0.6323

    0.4830    0.2465    0.2876

    0.6316    0.3206    0.3745

g =

   1.7129 + 0.4686i   0.5305 - 0.2425i   0.5429 - 0.6049i

   1.1938 + 2.8123i   0.3658 - 1.4552i  -0.5514 - 3.6305i

  -0.0748 - 3.1978i   0.7419 + 1.6546i   1.8333 + 4.1282i

h =

     6     3     4

     0     5     7

     0     0    -3

i =

     6     0     0

    -2     5     0

     8    -1    -3

j =

     6

     5

    -3

k =

     8    -1    -3

    -2     5     7

     6     3     4

l =

     4     3     6

     7     5    -2

    -3    -1     8

m =

     8    -1    -3

    -2     5     7

     6     3     4

n =

     4     3     6

     7     5    -2

    -3    -1     8

o =

     4     7    -3

     3     5    -1

     6    -2     8 

实验二  MATLAB数值运算

实验目的:掌握 MATLAB 的数值运算及其运算中所用到的函数,掌握结构数组的操作。

实验内容

1、求的“商”及“余”多项式。

源程序

a=[1,0,1];

b=[1,3];

c=[1,1];

p1=conv(a,conv(b,c));

p2=[3,0,2,1];

[q,r]=deconv(p1,p2)  %求矩阵的商和余

运行结果:

q =

    0.3333    1.3333

r =

         0         0    3.3333    1.0000    1.6667 

2、图1是瑞士地图,为了算出其国土面积,首先对地图作如下测量:以由西向东方向为X轴,由南到北方向为Y轴,选择方便的原点,并将从最西边界点到最东边界点在X轴上的区间适当划分为若干段,在每个分点的Y方向测出南边界点和北边界点的Y坐标Y1和Y2,这样就得到了表1,根据地图比例尺知道18 mm相当于40 km,试由测量数据计算瑞士国土近似面积,与其精确值 41228 km2比较。

图1 瑞士地图(单位 mm)。

表1 瑞士地图坐标

源程序

x=(40/18)*[7,10.5,13,17.5,34,40.5,44.5,48,56,61,68.5,76.5,80.5,91,96,101,104,106.5,111.5,118,123.5,136.5,142,146,150,157,158];

y1=(40/18)*[44,45,47,50,50,38,30,30,34,36,34,41,45,46,43,37,33,28,32,65,55,54,52,50,66,66,68];

y2=(40/18)*[44,59,70,72,93,100,110,110,110,117,118,116,118,118,121,124,121,121,121,116,122,83,81,82,86,85,68];

p=diff(x);

q=y2-y1;

r=q(2:27);

s=r';

area=p*s%瑞士国土面积  

运行结果

area =

4.2237e+004

实验  MATLAB符号运算

实验目的:掌握符号变量和符号表达式的创建, 掌握MATLAB的symbol工具箱的一些基本应用。

实验内容:

1、(1)  已知 ,按照自变量x和自变量a,对表达式f分别进行降幂排列。

源程序:

syms x a b c ;%定义符号变量

f=(a*x^2+b*x+c-3)^3-a*(c*x^2+4*b*x-1)

fx=collect(f)%对f按x的降幂排列

fa=collect(f,a)%对f按a的降幂排列  

运行结果:

f =

(a*x^2+b*x+c-3)^3-a*(c*x^2+4*b*x-1)

fx =

a^3*x^6+3*b*a^2*x^5+((c-3)*a^2+2*b^2*a+a*(2*(c-3)*a+b^2))*x^4+(4*(c-3)*b*a+b*(2*(c-3)*a+b^2))*x^3+((c-3)*(2*(c-3)*a+b^2)+2*b^2*(c-3)+a*(c-3)^2-a*c)*x^2+(3*(c-3)^2*b-4*b*a)*x+(c-3)^3+a

fa =

a^3*x^6+3*(b*x+c-3)*x^4*a^2+(3*(b*x+c-3)^2*x^2-c*x^2-4*b*x+1)*a+(b*x+c-3)^3  

(2)  已知符号表达式,计算x=0.5时,f的值;计算复合函数f(g(x))。

源程序:

syms x;%定义符号变量x

f=1-sin(x)^2

g=2*x+1

f1=subs(f,'0.5')%利用符号替换函数求f的解析解

answ=vpa(f1,6)%用可变精度转换函数将解析解转换成6位精的数值解

fg=compose(f,g)%求f(g(x))  

运行结果:

f =

1-sin(x)^2

g =

2*x+1

f1 =

1-sin((0.5))^2

answ =

.770151

fg =

1-sin(2*x+1)^2  

2、(1)  求

源程序:

syms x%定义符号变量

ans=limit((x^2-1)/(x^2-3*x+1),x,2)%求函数在2的极限  

运行结果:

ans =

-3  

(2) 求函数 f(x)= cos 2x -sin 2x的积分;求函数的导数。

源程序:

syms x%定义符号变量

ans1=int(cos(2*x)-sin(2*x))%求不定积分

pretty(ans1)%改写成习惯性的数学表达式

ans2=diff((exp(x)+x*sin(x))^(1/2))%求微分

pretty(ans2)%改写成习惯性的数学表达式  

运行结果:

ans1 =

1/2*sin(2*x)+1/2*cos(2*x)

                          1/2 sin(2 x) + 1/2 cos(2 x)

ans2 =

1/2/(exp(x)+x*sin(x))^(1/2)*(exp(x)+sin(x)+x*cos(x))

                            exp(x) + sin(x) + x cos(x)

                        1/2 --------------------------

                                                 1/2

                              (exp(x) + x sin(x))  

(3) 计算定积分 

源程序:

syms x%定义符号变量

answ=int((sin(x)+2),0,pi/6)%定积分

pretty(answ)  

运行结果:

answ =

-1/2*3^(1/2)+1/3*pi+1

                                   1/2

                            - 1/2 3    + 1/3 pi + 1  

(4) 求下列线性代数方程组的解。

源程序:

syms x y z%定义变量

L1='x+y+z-10'%线性方程

L2='3*x+2*y+z-14'%线性方程

L3='2*x+3*y-z-1'%线性方程

[x,y,z]=solve(L1,L2,L3,x,y,z)%线性方程的解  

运行结果:

L1 =

x+y+z-10

L2 =

3*x+2*y+z-14

L3 =

2*x+3*y-z-1

x =

1

y =

2

z =

7  

(5)  求解当y(0)=2,z(0)=7时,微分方程组的解。

源程序:

[y,z]=dsolve('Dy-z=sin(x)','Dz+y=1+x','y(0)=2,z(0)=7','x')%微分方程特解

pretty(y)%习惯数学形式

pretty(z)%习惯数学形式  

运行结果:

y =

cos(x)+6*sin(x)+1/2*sin(x)*x+1+x

z =

-3/2*sin(x)+6*cos(x)+1+1/2*cos(x)*x

                   cos(x) + 6 sin(x) + 1/2 sin(x) x + 1 + x

                  - 3/2 sin(x) + 6 cos(x) + 1 + 1/2 cos(x) x  

实验  MATLAB程序设计

实验目的:掌握MATLAB程序设计的主要方法,熟练编写MATLAB函数。

实验内容:

1、用π /4≈1-1/3+1/5-1/7+…公式求π的近似值,直到最后一项的绝对值小于10-6

为止,试编写其M脚本文件。

源程序:

%首先设定需要的变量

t=1; %t表示计算式括号中的各项

pi=0; %pi代表圆周率,先置0

n=1; %n为表示分母的变量

s=1;%变量s用正负娄的改变,控制“+、-”的转换

while abs(t)>1e-7 %"t的绝对值大于10的-7次方"为循环条件

    pi=pi+t;

    n=n+2;

    s=-s;

    t=s/n;

end

pi=pi*4;

fprintf('pi=%f\n',pi)%输出结果  

运行结果:

pi=3.141592  

2、编写求矩形面积函数rect,当没有输入参数时,显示提示信息;当只输入一个参数时,则以该参数作为正方形的边长计算其面积;当有两个参数时,则以这两个参数为长和宽计算其面积。

源程序:

function s=rect(w,p)%求面积的函数

if nargin==0

    error('no input')

elseif nargin==1

     p=w;

     s=w*p;

elseif nargin>2

    error('too mangy input')

else

    s=w*p;

end  

执行:

rect()  

输出:

??? Error using ==> rect

no input  

执行:

rect(7.6)  

输出:

ans =

   57.7600

执行:

rect(7,8)

输出:

ans =

    56

执行:

rect(15,12,3)  

输出:

??? Error using ==> rect

Too many input arguments.

实验五、MATLAB数据可

实验目的:掌握MATLAB二维图形绘制,掌握图形属性的设置和图形修饰;掌握图像文件的读取和显示。

实验内容:

图2

写出图2的绘制源程序。按照以下的步骤进行(1)产生曲线的数据(共有3组数据);(2)选择合适的线形、标记、颜色(正弦曲线为红色,余弦曲线为紫色);(3)添加图例及文字说明信息;(4)添加坐标轴说明与图标题。

源程序:

x=0:.1:12.5;

y1=sin(pi/6*x);

y2=cos(pi/6*x);

plot(x,y1,'r--',x,y2,'m'); %绘制sin(x)和cos(x)曲线

axis([0,16,-1,1]); %改变图中坐标值范围

xlabel('时间'); %标记x轴

ylabel('幅值'); %标记y轴

legend('sin(x)','cos(x)'); %线型注释

title('正余弦曲线');%标题  

运行结果:

  

一、    课程设计体会

本次MATLAB课程设计确实让我学会了许多,让我们见识了MATLAB作为科学计算工具,在数值计算、数值和符号计算、科学绘图、数字信号处理技术等方面的强大,MATLAB说难又不是很难,说容易不像想象中的那么容易。就像C语言一样,MALALB有它自己的语言,要全面而熟练的掌握它的语言,这短短的几天远远不够。在这几天的MATLAB课程设计中,我遇到了不少问题,也解决了不少问题,更重要的是明白了不少。以前用笔算得头晕脑胀的计算题,在MATLAB眼中不过是小儿科而已,不用1s结果就能出现在我们的面前,这多么强大啊,我想我们人脑要有有这么强的能力该有多好。 我真的感叹这么高级的工具是人类智慧的结晶。

更多相关推荐:
机械设计课程设计心得

机械设计心得体会机械设计的核心是正确的思路,思路错了,设计就会失败。正确的思路得出正确的方案,余下的就是查手册了。这是我这些年来搞机械设计的主要的心得体会。通过为期将近一周的没日没夜的课程设计过程,反复的修改设…

机械课程设计心得

经过紧张而辛苦的四周的课程设计结束了,看着自己的设计。即高兴又担忧,高兴的是自己的设计终于完成啦,担忧的是自己的设计存在很多的不足。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前…

机械设计课程设计心得体会(减速机设计)

减速机设计心得体会通过这次课程设计,由于理论知识的不足,再加上平时没有什么设计经验,一开始的时候有些手忙脚乱,不知从何入手。在老师的谆谆教导,和同学们的热情帮助下,使我找到了信心。现在想想其实课程设计当中的每一…

机械制造课程设计心得体会与小结(600字左右)

总结:两周的机械制造基础课程设计,说长不长说短不短,刚开始的两天还没有进入状态,感觉仍没有从暑假的休闲心情中转换过来。可以说课程设计的前两天是一段磨合进入设计状态的过程,刚开始的任务并不重,只是初步了解一下各自…

机械课程设计心得体会

吉林农业科技学院钻床专用夹具设计心得体会年级专业:09机械一班学生姓名:陈万宝学号:0932605120吉林农业科技学院-1-心得体会通过钻床钻用夹具设计实训,使我对机械制造工艺学有了更进一步的了解。我们现在对…

二级减速器(机械课程设计)(含总结)

机械设计课程设计姓名班级学号指导教师成绩日期20xx年6月目录1设计目的22设计方案33电机选择54装置运动动力参数计算75带传动设计96齿轮设计187轴类零件设计288轴承的寿命计算319键连接的校核3210...

机械设计课程设计感想

机械设计课程设计感想作为一名机械设计制造及自动化大三的学生我觉得能做类似的课程设计是十分有意义而且是十分必要的在已度过的大三的时间里我们大多数接触的是专业基础课我们在课堂上掌握的仅仅是专业基础课的理论面如何去锻...

机械制造装备课程设计--普通车床主轴箱部件设计

湖南工业大学机械工程学院机械制造装备设计课程设计设计题目普通车床主轴箱部件设计学班学成生姓名级号绩指导教师签字机械工程学院20xx年11月26日目录1课程设计任务书42绪论6机械制造装备设计课程设计湖南工业大学...

二级减速器(机械课程设计)(含总结)

机械设计课程设计姓名班级学号指导教师成绩日期20xx年6月目录1设计目的22设计方案33电机选择54装置运动动力参数计算75带传动设计96齿轮设计187轴类零件设计288轴承的寿命计算319键连接的校核3210...

机械课程设计心得体会

机械课程设计心得体会范文一经过一个月的努力我终于将机械设计课程设计做完了在这次作业过程中我遇到了许多困难一遍又一遍的计算一次又一次的设计方案修改这都暴露出了前期我在这方面的知识欠缺和经验不足刚开始在机构设计时由...

夏洋机械设计基础学习心得报告

机械设计基础学习心得报告姓名夏洋成型122从三月到6月从春初到夏末从学期开始到学期结束从第一周15周从平面机构的自由度到各种轴承的概念从凸轮到蜗杆在这段平淡无奇又且行且珍惜的岁月里我怀着欣喜又失落的心情结束了我...

杨可桢《机械设计基础》课程重点总结

杨可桢机械设计基础课程重点总结绪论零件是制造的单元构件是运动的单元一部机器可包含一个或若干个机构同一个机构可以组成不同的机器平面机构的自由度和速度分析1所以构件都在相互平行的平面内运动的机构称为平面机构2件通过...

机械设计课程设计心得(39篇)