matlab20xx实验2

时间:2024.4.20

MATLAB实验二

MATLAB数据分析和符号计算

试验报告说明:

1 做试验前请先预习,并独立完成试验和试验报告。

2 报告解答方式:MATLAB执行命令和最后运行结果从命令窗口拷贝到每题的题目下面,请将报告解答部分的底纹设置为灰色,以便于批阅

3 在页眉上写清报告名称,学生姓名,学号,专业以及班级。

3 报告以Word文档书写。

文档命名方式: 学号+姓名+_(下划线)+试验几.doc 如:110400220张三_试验1.doc

4 试验报告doc文档以附件形式发送到maya_email@tom.com。凡文档命名不符合规范,或者发送方式不正确,不予登记。

目的和要求

1熟悉MATLAB多项式和数据分析方法

2熟练掌握MATLAB符号表达式的创建

3熟练掌握符号表达式的代数运算

4掌握符号表达式的化简和替换

5熟练掌握符号微积分

6熟练掌握符号方程的求解

试验内容

1元胞和结构数组

学生信息存放在下列的表格中

1.1 创建元胞数组

1.1-1将每个学生的姓名以字符串形式存储,并将所有的字符串存入一个元胞数组Name

>>Name={‘Mike’,’Nancy’,’Emily’};

1.1-2将每个学生的学号以字符串形式存储,并将所有的字符串存入一个字符矩阵Id

>>Id=['1001';'1002';'1003'];

1.1-3将学生的所有成绩存放在一个二维数组中Score

>> Score=[67 83 90;70 78 86;85 80 92];

1.1-4将步骤1)2)3)中创建的数组合并到一个元胞数组stuCell中

>> stuCell={Name,Id,Score};

1.1-5从步骤4)创建的元胞中提取所有学生的数学成绩。

>> stuCell{1,3}(:,2);

1.2 结构数组

1.2-1 创建结构数组,将表格信息保存在结构数组student中。

student=struct('Name',{{'Mike','Nancy','Emily'}},'Id',[1001 1002 1003],'Score',[67 83 90;70 78 86;85 80 92]);

1.2-2 从结构数组student提取Nancy的信息,并用disp命令或者fprintf命令打印Nancy的语文成绩信息,显示格式如下:

  ×××(姓名)的语文成绩:×××是: ×××

>>x1=[student.Name(2) student.Id(2)  student.Score(2)];

>>fprintf('%s %s %d','student.Name(2)','的语文成绩是:',student.Score(2,1))

2 多项式运算(必做)

2.1 有2个多项式,

f

2.1.1 计算

>> a=[5 4 3 2 1];

>> b=[0 0 3 0 1];

>> c=conv(a,b);

>> syms x

>> C=sym('15*x^6+12*x^5+14*x^4+10*x^3+6*x^2+2*x+1');

2.1.2计算的根

>> r=roots(c);

2.1.3 当时,计算的值.

>> x=5;

>> polyval(c,x);

2.1.4 计算的商式和余式.

>> a=[5 4 3 2 1];

>> b=[3 0 1];

>> [p,r]=deconv(a,b);

2.2 多项式插值。

下表是一个标准大气压下的蒸汽数据,用于分析温度和内能之间的关系。使用线性插值法确定温度215度时的内能,以及内能为2600KJ/kg时的温度。

>> t=[100 150 200 250 300 400 500];

>> E=[2506.7 2582.8 2658.1 2733.7 2810.4 2967.9 2131.6];

>> E1=interp1(t,E,215);

2.3 多项式的拟合。已知:

X0=0:0.5:10;

Y0=[0,82,212,326,395,526,622,738,818,909,1029,1108,1186,1330,1411,1540,1612,1726,1822,1940,2044];        

对上述数据进行多项式拟合,分别采用一阶,二阶,四阶进行拟合。

>> X0=0:0.5:10;

Y0=[0,82,212,326,395,526,622,738,818,909,1029,1108,1186,1330,1411,1540,1612,1726,1822,1940,2044];  

>> p1=polyfit(X0,Y0,1);

>> P2=polyfit(X0,Y0,2);

>> P3=polyfit(X0,Y0,4);

3 数据分析(必做)

   下表为5位学生的成绩表

3.1 用二维矩阵保存学生成绩信息

>> Score=[75 81 73;62 85 79;71 68 60;58 92 75;73 90 81];

3.2 统计每位学生的平均分和总分

>> mean(Score,2);

>> sum(Score,2);

3.3 统计每门课程的平均分和总分

>>  mean(Score);

>> sum(Score);

3.4按照语文成绩的升序列对矩阵进行重新排序

>> [y,ind]=sortrows(Score,2);

3.5打印语文成绩最高分学生的三门课程的成绩信息: 显示格式如下:×的数学成绩:××分,语文成绩:××分物理成绩:××分

>> student=[1 75 81 73;2 62 85 79;3 71 68 60;4 58 92 75;5 73 90 81];

>> student=sortrows(student,3);

>> fprintf('%d %s %d %s %d %s %d',student(5),'的数学成绩是:',student(10),'语文成绩是:',student(15),'物理成绩是:',student(20))

4 创建符号表达式。(必做)

4.1 分别使用sym和syms命令创建符号表达式

>> f=sym('a*x^3+b*x^2+c*x+d');

>> syms a b c d x

>> f=a*x^3+b*x^2+c*x+d;

4.2 使用findsym确定上题符号表达式f的自由变量以及第一自由变量。

>> findsym(f);

>> findsym(f,1);

4.3 执行下列语句,比较a1,a2,a3和a4的执行结果和数据类型。

>> a1=1/4+1/6

>> a2=sym(1/4+1/6)

>> a3=’1/4+1/6’

>> a4=eval('1/4+1/6')

>> a1=1/4+1/6

a1 =

    0.4167

>> a2=sym(1/4+1/6)

 a2 =

     5/12

>> a3='1/4+1/6'

a3 =

1/4+1/6

>> a4=eval('1/4+1/6')

a4 =

    0.4167

>> whos a1

  Name      Size            Bytes  Class     Attributes

a1        1x1                 8  double             

>> whos a2

  Name      Size            Bytes  Class    Attributes

a2        1x1               132  sym               

>> whos a3

  Name      Size            Bytes  Class    Attributes

a3        1x7                14  char              

>> whos a4

  Name      Size            Bytes  Class     Attributes

a4        1x1                 8  double             

5 置换操作—subs命令的应用(必做)。

5.1对于符号表达式,分别求解:

5.1.1

>> syms x

>> f=exp(-x);

>> x=0;

>> f1=subs(f);

5.1.2

>> x=1:20;

>> f2=subs(f);

>> digits;

>> vpa(f2);

5.2 对于符号表达式

5.2.1 用符号变量y替代sin(x)+cos(x)

>> syms a x

>> f=a*(sin(x)+cos(x));

>> f1=subs(f,'sin(x)+cos(x)','y');

5.2.2 求解当a=3, x=pi/3时,f的值。

>> a=3;

>> x=pi/3;

>> f2=subs(f);

6符号表达式的运算

6.1已知符号表达式

6.1.1计算当时,的值。

>> syms x

>>  f=1-sin(x)*sin(x);

>> x=1;

>> f1=subs(f);

6.1.2 求符合函数

>> compose(f,g,'z');

6.1.3 求的反函数

>> g1=finverse(g);

6.2 求极限:

>> f1=sym('exp(-t)')

>>f2=sym('sin(x)')

>>f=f1*f2

>> limit(f,'t',inf)

6.3 求和:

>> syms n

>> f=1/(2*n-1)^2;

>> int(f,'t',1,inf);


第二篇:matlab20xx实验3参考答案


MATLAB实验三

MATLAB计算可视化

试验报告说明:

1 做试验前请先预习,并独立完成试验和试验报告。

2 报告解答方式:MATLAB执行命令和最后运行结果从命令窗口拷贝到每题的题目下面,请将报告解答部分的底纹设置为灰色,以便于批阅

3 在页眉上写清报告名称,学生姓名,学号,专业以及班级。

3 报告以Word文档书写。

文档命名方式: 学号+姓名+_(下划线)+试验几.doc 如:110400220张三_试验1.doc

4 试验报告doc文档以附件形式发送到maya_email@tom.com。凡文档命名不符合规范,或者发送方式不正确,不予登记。

目的和要求

(1)熟练掌握MATLAB二维曲线的绘制

(2)熟练掌握图形的修饰

(3)掌握三维图形的绘制

(4)熟练掌握各种特殊图形的绘制

(5)掌握句柄图形的概念

内容和步骤

1 符号计算 (必做)

1.1 已知,求。(必做)

syms x y

f=(x^3*y-5*y)/(2*x^2+7)

g =diff(diff(f,x),y) 

%有同学调用方式:>> f1=diff(f,2) ,要注意这种调用方法其实是对第一自由变量x求2阶导数。

subs(g,x,1)

ans =

    0.5309

1.2计算二重积分。(必做)

>> f=sym('sin(x)/x');

>> int(int(f,'x','y-pi',pi),'y',pi,2*pi)  %注意对y积分,要明确指定积分变量‘y’

                               % 注意积分区间(a,b),参数的前后顺序

ans =

2

1.3解方程组: 。(必做)

>> S=solve('x^2+y^2=1','x*y=2',’x’,’y’);

>> xx=double(S.x),yy=double(S.y)

xx =

   1.1180 - 0.8660i

   1.1180 + 0.8660i

  -1.1180 - 0.8660i

  -1.1180 + 0.8660i

yy =

   1.1180 + 0.8660i

   1.1180 - 0.8660i

  -1.1180 + 0.8660i

  -1.1180 - 0.8660i

1.4 求微分方程,当时的解。(必做)

>>rs=dsolve('D2y+2*Dy+2*y=0','y(0)=0,Dy(0)=1')

2 绘制二维曲线(必做)(说明:绘图题需在报告中粘贴图形结果。)

查阅stem绘图指令,利用stem绘制复指数序列(其中,间隔)的相关图形,要求:(1)把窗口分成2行2列。(2)左上窗口绘制复指数序列的实部波形,窗口右上角绘制复指数序列的虚部波形,左下角绘制复指数序列的幅度波形,右下角绘制窗口的相位波形。要求每个子图标注标题,X,Y轴说明。要求显示网格。

% 复指数序列程序

n=0:0.1:10;

alpha=j*pi/4;

x=2.^n.*exp(alpha*n);  

real_x=real(x);    % 实部

img_x=imag(x);   % 虚部

mag_x=abs(x);    % 幅值

phase_x=(180/pi)*angle(x);   % 相角,转为角度

subplot(2,2,1)

stem(n,real_x);title('实数部分');xlabel('n');ylabel('real');

grid on

subplot(2,2,2)

stem(n,img_x);title('虚数部分');xlabel('n');ylabel('imag'); 

grid on

subplot(2,2,3)

stem(n,mag_x);title('幅度');xlabel('n');ylabel('abs');

grid on

subplot(2,2,4)

stem(n,phase_x);title('相位');xlabel('n');ylabel('phase');

grid on

3 绘制多条曲线(必做)

在同一图形窗口绘制。利用plot绘图指令绘图命令。

(1)    在窗口上部绘制正弦信号。要求曲线为黑色实线。

(2)    使用hold on命令在同一窗口重叠绘制信号。要求曲线线型为红色点划线。

(3)    X轴标注“时间t”, y轴标注“”,标题为“正弦/指数序列”。

(4)    使用legend命令在图的右上角标注两条曲线的图例。

(5)    使用gtext交互式图形命令,分别标注曲线

% 绘制多条曲线

t=0:0.1:4*pi;

x=sin(0.5*pi.*t+pi/4);

plot(t,x,'k-');

title('正弦信号');

xlabel('时间t');

ylabel('x(t)');

hold on

g=x.*(0.5.^t); 

% 注意 :有同学用g=pow2(x,-t) , pow2(F,E )函数要求输入参数F是实数,E是整数,计算时自动将其转为整数。故本题不宜采用。

plot(t,g,'r-.')

title('指数序列');

xlabel('序列t');

ylabel('g(n)');

%添加图例

legend('sin(0.5*\pi*t+\pi.4)','x(t)*0.5^t',1)

% gtext标注曲线

gtext('sin(0.5*\pi*t+\pi.4)');

gtext('x(t)*0.5^t');

4 句柄的学习

(1)获取图形句柄:(必做)

1)显示并获取上图(题2)的标题句柄。

% 方法一:通过title的上级gca找到title的句柄

h_axis=gca;           %获取坐标轴句柄

h_title=get(gca,'title')    %获取标题属性,找到title句柄

% 方法二:在生成标题对象时直接返回句柄

   p=title('指数序列')

% 方法三:用findobj,通过属性值找标题句柄

   h_title=findobj(h_fig,'string','正弦/指数序列')

(2)设置图形对象属性:(必做)

1)利用set 命令设置图形标题的颜色为蓝色,字体大小14。

set(h_title,'color','blue','fontsize',14)

2)使用图形窗口功能。选择菜单“Edit”---“Figure Properties”打开图形属性窗口(或直接在命令窗口输入命令:propedit(gcf)直接打开图形属性窗口)。在图形属性窗口中,修改曲线的颜色和线条宽度。(必做)

(本题解答略)

3)使用set命令实现3-2)题的设置。(选做)

% 通过findobj找对象句柄

h=findobj('linestyle','-.')  %返回线型是 -. 的对象的句柄

set(h,'color','m','linewidth',5)

%生成图形对象时返回句柄

h_line2=plot(t,g,'r-.')

set(h_line2,'color','green','linewidth',2)

    4) 分别采用set命令和图形属性窗口重新设置Y轴的刻度令其为[-1 -0.5 0 0.5 1](选做)   

set(gca,'ytick',[-1 -0.5 0 0.5 1])

通过本题希望大家理解图形对象和句柄的概念。句柄是图形对象的标识,通过这个标识,我们可以找到这个对象,并通过set函数对对象的属性进行任意的修改。当然我们已可以在图形对象的属性窗口中直接修改

5 绘制三维曲线(必做)

1.      绘制曲线的网线图。 ,要求:

(1)设置标题和x,y,z轴说明。(必做)

(2)选择色图,并显示色图。(必做)

(3)分别对图形区域进行镂空和裁剪 (选作)

(4)改变视点,分别察看图形:1)az=-37.5,el=30  2)az=0,el=90  (必做)

(1)

[xx,yy]=meshgrid([-3:0.1:3]);

zz=4.*xx.*exp(-xx.^2-yy.^2);

mesh(xx,yy,zz);

title('z=4xye^{-(x^{2}+y^{2})}曲面');

xlabel('X');

ylabel('Y');

zlabel('Z');

(2)

colormap  hot  % 指定hot色图

colorbar        % 显示色图

(3)

%%镂空

ind=find((xx<0)&(xx>-2)&(yy<0)&(yy>-2)); % 找镂空区间数组下标

zz(ind)=nan;  %设置为nan,实现镂空

mesh(xx,yy,zz);

%%裁减

ind=find((xx<0)&(xx>-2)&(yy<0)&(yy>-2));

zz(ind)=0;     %设置为0,实现裁减

mesh(xx,yy,zz);

(4)

view(0,90)      %改变视点

本题存在的问题:

1 理清三维作图的一般顺序。尤其是理解meshgrid函数产生二维平面栅格点阵的作用。

2 注意几个函数的区别:Colormap命令用于指定色图,colorbar命令用于显示色图。

3 有同学使用peaks函数,注意该函数用于产生特定函数曲面的数据,供测试。

更多相关推荐:
matlab实验报告

MATLAB教程及实训班级学号姓名实验报告实验1熟悉matlab的开发环境及矩阵操作一实验的教学目标通过本次实验使学生熟悉MATLAB70的开发环境熟悉MATLAB工作界面的多个常用窗口包括命令窗口历史命令窗口...

matlab基本操作实验报告

实验一matlab基本操作一实验目的熟悉matlab的安装与启动熟悉matlab用户界面熟悉matlab功能建模元素熟悉matlab优化建模过程二实验设备与仪器1微机2matlab仿真软件三实验步骤1了解mat...

matlab实验报告

课程设计说明书(论文)题目带限数字基带传输系统的仿真课程名称Matlab通信仿真设计专业通信工程班级1203学生姓名徐xx学号2012xxxx20329指导教师文xx设计起止时间:20xx年12月18日至20x…

matlab音乐处理合成实验报告

MATLAB高级编程与工程应用语音合成综合实验姓名班级学号日期121简单的合成音乐1请根据东方红片断的简谱和十二平均律计算出该片断中各个乐音的频率在MATLAB中生成幅度为1抽样频率为8kHz的正弦信号表示这些...

东南大学几何与代数matlab实验报告

数学实验报告学号姓名吴雪松得分实验1求解线性方程组实验内容用MATLAB求解如下线性方程组Axb其中5100A00006510000006510000006510000006510000006510000006...

matlab实验报告

数学实验报告班级学号姓名实验序号1日期年月日实验名称特殊函数与图形问题背景描述绘图是数学中的一种重要手段借助图形可以使抽象的对象得到明白直观的体现如函数的性质等同时借助直观的图形使初学者更容易接受新知识激发学习...

Matlab实验报告一

数学与信息科学系实验报告实验名称程序设计所属课程数学软件与实验实验类型综合型实验专业信息与计算科学班级20xx级1班学号姓名指导教师1234567

matlab实验报告

南京工程学院课程设计说明书论文题目课程名称院系部中心专业班级学生姓名学号设计地点指导教师设计起止时间20xx年12月8日至20xx年12月12日一课程设计目的和要求1综合运用信号与线性系统通信原理以及matla...

matlab实验报告

重庆交通大学学生实验报告实验课程名称专业综合实验开课实验室交通运输工程实验教学中心学院交通运输年级二年级专业班交通运输1班学生姓名学号63120xx20开课时间20xx至20xx学年第2学期

matlab实验报告格式

数学实验报告实验序号:1日期:20XX年10月20日班级姓名学号实验名称:特殊函数与图形问题背景描述:绘图是数学中的一种重要手段,借助图形,可以使抽象的对象得到明白直观的体现,如函数的性质等。同时,借助直观的图…

matlab实验报告

MATLAB实验报告1在区间11上分别取n1020用两组选中节点对龙格函数fx插值及三次样条插值对每个n值分别画出插值函数及fx的图形解n10在matlab命令窗口中键入gtgtx1021y1125x2y1in...

matlab实验报告

MATLAB实验报告实验一MATLAB语言平台与SIMULINK工具箱一目的与任务1学习了解MATLAB语言环境2练习MATLAB命令4掌握SIMULINK工具箱的应用二内容与要求1实验内容1学习了解MATLA...

matlab实验报告(13篇)