教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

MATLAB全部实验及答案(6)

来源:网络收集 时间:2026-08-24
导读: end end 3、编写一个阶乘函数jiecheng.m,然后在试验三的编程题“分别使用for和while语句找出最小的n值,使得n!>10,并求出n!”程序中调用该函数。 程序: function s=jiecheng(n) s=1; if n==0 s=1; elseif n erro

end end

3、编写一个阶乘函数jiecheng.m,然后在试验三的编程题“分别使用for和while语句找出最小的n值,使得n!>10,并求出n!”程序中调用该函数。 程序:

function s=jiecheng(n) s=1; if n==0 s=1; elseif n<0

error('n±?D?′óóúμèóú0') else for i=1:n s=s*i; end end

100

五、实验注意事项

1、注意脚本文件和函数文件的区别 2、函数文件的调用

六、思考题

已知一函数文件如下:

function y=temf(a) if length(a)<2 y=a; else

y=max(a)-min(a); end

则在命令窗口执行有:

temf([23 45 67 89])= 66 temf(78)= 78

实验项目序号7 数据插值与曲线拟合实验

一、实验目的

26

1、掌握数据统计和分析的方法;

2、掌握数据插值与曲线拟合的方法及其应用。

二、实验基本知识

1、数据插值运算

MATLAB提供的插值计算函数 函数 interp1 说明 一维插值(数值查表) 函数 说明 griddata3 三维数据网格的超表面数据插值 interp1q 一维快速插值(数值查表) griddatan 多维数据网格的超表面数据插值 interp2 interp3 interpn interpft 二维插值(数值查表) 三维插值(数值查表) N维插值(数值查表) 使用FFT算法的一维插值 mkpp pchip ppval spline unmkpp 产生分段多项式 分段的厄密多项式 计算分段多项式的数值 三次杨条插值 分段多项式的细节 griddata 二维数据网格的表面数据插值 1)一维插值:在MATLAB中实现一维插值的函数是interp1。 调用格式为:Yi=interp1(X,Y,Xi,method)

? X和Y为已知的原始数据,分别描述采样点和采样值; ? Xi为需要计算的插值点,是一个向量或标量; ? Yi是插值结果;

? X和Y,Xi和Yi若都为向量,则等长,若Y和Yi为矩阵,则

length(X) and size(Y,1) must be the same. ? method是插值方法,允许的取值有多种;

? 若进行插值运算时,Xi的取值超过了X的范围,则需要进行外插值

运算:Yi=interp1(X,Y,Xi,method,’extrap’)。

2)二维插值:在MATLAB中实现二维插值的函数是interp2。 调用格式为:Zi=interp2(X,Y,Z,Xi,Yi,method)

? X和Y为原始数据,是两个等长的已知向量,分别描述两个参数的采

样点;

? Z是与参数采样点对应的函数值;

? Xi ,Yi是两个向量或标量,描述欲插值的点; ? Zi是根据相应的插值方法得到的插值结果;

? method是插值方法,允许的取值有多种,与一维插值函数相同; ? X,Y,Z也可以是矩阵的形式;

? 若进行插值运算时,Xi的取值超过了X的范围,则需要进行外插值

27

运算:Zi=interp2(X,Y,Z,Xi,Yi,method,’extrap’)。

2、曲线拟合

曲线拟合的目的是用一个较简单的函数去逼近一个复杂的或未知的函数。利用MATLAB进行曲线拟合主要有两种方法:回归法拟合和多项式拟合。

1)回归法拟合主要是使用MATLAB的左除运算来寻找曲线拟合解析函数的系数。 2)多项式拟合

在MATLAB中进行多项式拟合主要使用的函数有: ? polyfit:用来进行拟合计算

P=polyfit(x,y,n)

x和y为参与曲线拟合的原始数据,n为进行拟合计算的多项式次数,函数的返回值是多项式的系数,即函数的运算结果为多项式的系数向量

y?pnxn?pn?1xn?1?......?p1x?p0y=polyval(p,x)

p为多项式的系数,x是变量的数值,得到的结果就是函数的数值向量。

? polyval:用来计算多项式的数值

三、主要仪器及耗材

计算机

四、实验内容和步骤

1.已知原始数据x?0:1:4*pi,y?sin(x).*exp(?x/5),插值点为

xi?0:0.3:4*pi,试用四种不同的插值方法进行插值,并在一副图中绘出四种插

值曲线。 程序:

x=0:1:4*pi;

y=sin(x).*exp(-x/5); xi=0:0.3:4*pi;

y1=interp1(x,y,xi,'nearset'); y2=interp1(x,y,xi,'linear'); y3=interp1(x,y,xi,'spline'); y4=interp1(x,y,xi,'cubic');

plot(x,y,'-m',xi,y1,'*r',xi,y2,'ok',xi,y3,'^b',xi,y4,'+g') legend('?-ê?êy?Y','×??üμ?2??μ','??D?2??μ','?ùì?2??μ','ᢷ?2??μ') title('μúò?ìa ????2??μ·?·¨??DD2??μ','FontName','á¥êé','FontSize',20) xlabel('X?á','FontName','á¥êé','FontSize',16) ylabel('Y?á','FontName','á¥êé','FontSize',16)

2.考虑下面的数据,一位举重教练收集了不同性别的举重动员每个年龄的最大举重磅数,他相信这三者之间存在着函数关系,请创建一个年龄数组,以便估算当前队伍中

28

队员(要求13~20岁每一岁都有)的最大举重。 最 大 举 性别 男 女 程序:

t=[13 15 17 19 20]; sex=[0,1]';

y=[270 290 330 350 380;250 270 310 330 360 ]; x=[13:20]; sex_2=[0,1]';

y_2=interp2(t,sex,y,x,sex_2) surf(x,sex_2,y_2)

重 年龄 13 15 17 19 20 270 250 290 270 330 310 350 330 380 360

3.某乡镇企业2009-2015年的生产利润如下

年份 利润(万元) 2009 70 2010 122 2011 144 2012 152 2013 174 2014 196 2015 202 要求用多项式拟合法预测出该企业2016年和2017年的利润,并绘出拟合图。 程序:

x=2004:2010;

y=[70 122 144 152 174 196 202]; k=polyfit(x,y,1); x1=2004:2013; y1=polyval(k,x1);

plot(x,y,'-ro',x1,y1,'-b*');

title('?3???ò?óòμ2004-2013?êμ?éú2úà?èó') legend('04-10?êμ?à?èó','04-13?êμ?à?èó?÷ê???') xlabel('?ê·Y'); ylabel('à?èó');

text(2011,polyval(k,2011),'<---2011?êà?èó') text(2012,polyval(k,2012),'<---2012?êà?èó') grid on

4. 先使用命令load加载census.mat得到一组数据(cdate,pop),该数据是美国自1790到1990年(以10年为一单位)的总人口。利用回归法拟合,预测出美国在2010年的人口总数,写出拟合模型y?a0?a1x?a2x(其中y为pop,x为cdate),并绘出拟合图。

29

2load('census.mat'); nian=[1990:2010]; p=polyfit(cdate,pop,2); z=polyval(p,cdate); zz=polyval(p,nian); my=mean(pop); mz=mean(z);

R=sum((pop-my).*(z-mz))./sqrt(sum((pop-my).^2).*sum((z-mz).^2)) plot(cdate,pop,'*',cdate,z,'r',nian,zz,'b-')

xlabel('?ê ·Y(ê??ê)','FontName','á¥êé','FontSize',16) ylabel('è??ú£¨°ùíò£?','FontName','á¥êé','FontSize',16) title('μú??ìa

?à1ú×?1790-1990?êμ?×üè??ú','FontName','á¥êé','FontSize',20) text(1990, 248.73,'<----??oó?a?ao?êy?Y') legend('?-êy?Y','?ao??ú??')

五、实验注意事项

1、插值运算时应变量和自变量的确定 2、曲线拟合时逼近函数的确定

六、思考题

由离散点数据来确定函数的方法有函数插值和曲线拟合两种:若测量值是准确的,没有误差,一般用 插值 ;若测量值与真实值有误差,一般用 拟合 。

实验项目序号8 MATLAB基本绘 …… 此处隐藏:2233字,全部文档内容请下载后查看。喜欢就下载吧 ……

MATLAB全部实验及答案(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/443883.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)