MATLAB与仿真上机练习题目Word下载.docx

上传人:b****4 文档编号:13859773 上传时间:2022-10-14 格式:DOCX 页数:9 大小:71.32KB
下载 相关 举报
MATLAB与仿真上机练习题目Word下载.docx_第1页
第1页 / 共9页
MATLAB与仿真上机练习题目Word下载.docx_第2页
第2页 / 共9页
MATLAB与仿真上机练习题目Word下载.docx_第3页
第3页 / 共9页
MATLAB与仿真上机练习题目Word下载.docx_第4页
第4页 / 共9页
MATLAB与仿真上机练习题目Word下载.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

MATLAB与仿真上机练习题目Word下载.docx

《MATLAB与仿真上机练习题目Word下载.docx》由会员分享,可在线阅读,更多相关《MATLAB与仿真上机练习题目Word下载.docx(9页珍藏版)》请在冰豆网上搜索。

MATLAB与仿真上机练习题目Word下载.docx

要求

(1)a、b、c由键盘输入

(2)输出的时候区分相同的根、实数根和复数根,即先输出“该二元一次方程具有相同的实数根/复数根/两个不同/实数根/复数根”,再输出具体的值。

实验4:

自定义一个函数mymax,实现matlab函数max的功能,要求输出一个参数时,则输出最大值;

若要求输出两个参数,输出最大值和最大值的位置;

若要求输出其他参数,则报错。

1.若输入向量为一个常数,则输出该数本身;

2.若输入向量为一维(行向量或者列向量),则输出最大值;

3.若输入向量为二维,则输出每一列的最大值

4.若输入向量为三维以上,则输出每一按照列取出的维度的最大值(课后思考)

实验5:

对一组测量数据t=[0,0.2,0.4,1.3,5.6]'

,y=[0.8,0.7,0.6,0.5,0.2]'

,用以下函数来拟合这组数据:

,画出拟合结果,并给出的值。

实验6:

对正弦波,完成如下任务:

1.对该正弦波一个周期采样1024点,画出波形;

2.对每个采样点量化成10位,并按照二进制补码进行编码;

3.将编码后的1024个样点保存在sample1024.txt文件中;

提示:

正弦波的处理过程如下:

采样

量化

编码

正弦波

采样:

将正弦波一个周期[0,2*pi],采样1024点,采样后的数据是浮点数,数据范围是[-1,1];

量化:

将采样后的数据从浮点型转换成定点型,即转换成10bit整型数,数据范围将变成[-512,511];

编码:

将量化后的10bit整型数按照二进制补码规则进行编码;

实验结果

\work\xiangpiqiu.m

clc

clearall;

%%%%%%%%%%%%%%%%%

%v0=input('

请输入初始速度v0'

);

%h0=input('

请输入初始高度h0'

%以正上方为正速度,以下方为负速度

v0=10;

h0=50;

g=-9.81;

t=0:

0.01:

50;

%以0.01为间隔,共500s

%h=0.5.*g.*t.^2+v0*t+h0;

%离地面距离h

t1=roots([0.5.*g,v0,h0]);

%当地面距离为0,即第一次落地时所需时间t1

t11=min(t1(t1>

0));

%对求解的根t做如下处理:

小于等于0的t舍弃,大于0的t取最小值,即第一次落地时真正的时间t11

v1=g.*t11+v0;

%即第一次落地时的速度v1

%%%%%%%%%%假设无能量损耗,完全刚性,即以同样速度v1反弹回空中

v2=-v1;

%h2=0.5.*g.*t.^2+v2*t;

%t2=roots([0.5.*g,v2,0]);

%当地面距离为0,即第二次落地时所需时间t2

t2=-v2./(0.5.*g);

%当地面距离为0,即第二次落地时所需时间t2。

与上式等价

%%%%%%%%%%求解h和v%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%实际为一分段函数,当t<

t11时候,v=g.*t+v0;

h=0.5.*g.*t.^2+v0*t+h0;

%当t11<

t<

t11+t2时候,v=g.*(t-t11)+v2;

h=0.5.*g.*(t-t11).^2+v2*(t-t11);

%当t11+N*t2<

t11+(N+1)*t2时候,v=g.*(t-N*t2-t11)+v2;

h=0.5.*g.*(t-N*t2-t11).^2+v2*(t-N*t2-t11);

%x=(t<

t11).*t+(t>

t11).*mod(t-t11,t2);

将当t<

t11时候与其他时候的t分开

x1=(t<

=t11).*t;

v11=g.*x1+v0;

h11=0.5.*g.*x1.^2+v0*x1+h0;

%%%%%%%%%%%%第一次落地之前的h和v

x2=(t>

v22=g.*x2+v2;

h22=0.5.*g.*x2.^2+v2*x2;

%%%%%%%%%%%%第一次落地之后的h和v

v=v11.*(t<

=t11)+v22.*(t>

t11);

h=h11.*(t<

=t11)+h22.*(t>

subplot(2,1,1)

plot(t,v)

xlabel('

时间'

ylabel('

皮球速度,上为正,下为负'

subplot(2,1,2)

plot(t,h)

xlabel('

皮球离地面的高度'

1

(2)

[x,y]=meshgrid(-4:

0.1:

4,-4:

4);

f1=(x+y).*(x>

=0&

y>

=0)+(x.^2+y.^2).*(x<

0&

y<

0)++(x+y.^2).*(x>

0)+(x.^2+y).*(x<

=0);

%mesh(x,y,f1);

surf(x,y,f1);

%f2=x.*(x>

=0)+(x.^2).*(x<

0)+y.*(y>

=0)+(y.^2).*(y<

0);

%两者效果相同

\work\mymax.m

一维情况

function[maxvalue,maxposition]=mymax(x)

%%%%%%%%%%构造自定义的max函数%%%%%%%%%%

%x:

输入向量,可以为任意维度

%maxvalue:

求得的最大值

%msg=nargchk(1,2,nargout);

%err(msg);

%%maxposition:

最大值所在的位置

%ifnargout<

1&

nargout>

2

%error('

输出参数应该是1或者2'

%end

%size_x=size(x);

maxvalue=x

(1);

maxposition=1;

forii=1:

size(x,2)

ifx(ii)>

maxvalue

maxvalue=x(ii);

maxposition=ii;

end

同时可判断一维、二维的情况

%maxposition:

最大值所在位置

%如果x是一个向量,那么maxvalue便是这个向量元素中的最大值;

%

%如果x是一个二维矩阵,那么maxvalue便是选出每一列中的最大值,返回一个1*n的矩阵,或者说是一个n维行向量。

size_x=size(x);

%求出x的size:

size_x

ndim_x=ndims(x);

%求出x的维度:

ndim_x

ifndim_x==1

%%%%%%%%%%%%%%%%%x为一个常数的情况%%%%%%%%%%%%%%%%%

maxvalue=x;

else

ifndim_x==2

%%%%%%%%%%%%%%%%%%%x为一维向量的情况%%%%%%%%%%%%%%

ifsize_x

(1)==1||size_x

(2)==1

length(x)

else

%%%%%%%%%%%%%%%%x为二维矩阵的情况%%%%%%%%%%%%%

maxvalue=zeros(1,size_x

(2));

maxposition=zeros(1,size_x

(2));

forjj=1:

size_x

(2)

y=x(:

jj);

maxvalue(jj)=y

(1);

maxposition(jj)=1;

size_x

(1)

ify(ii)>

maxvalue(jj)

maxvalue(jj)=y(ii);

maxposition(jj)=ii;

end

t=[0,0.2,0.4,1.3,5.6]'

;

y=[0.8,0.7,0.6,0.5,0.2]'

A=[ones(size(t)),exp(-t),cos(t)];

c=A\y;

T=[0:

6]'

Y=[ones(size(T)),exp(-T),cos(T)]*c;

plot(T,Y,'

-'

t,y,'

o'

title('

最小二乘曲线拟合'

\itt'

ylabel('

\ity'

legend('

拟合值'

'

实际值'

c=

0.3836

0.6606

-0.2396

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

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1