Matlab(8)-数据拟合

更新时间:2023-11-19 13:58:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

辽宁工程技术大学上机实验报告

实验名称 院系 姓名 成绩 数据拟合 二次元 霸裁君 专业 学号 图库 2822186764 班级 日期 10-1 2010.1.1 简述本次实验目的: 实验 目的 [1] 了解最小二乘拟合的基本原理和方法; [2] 掌握用MATLAB作最小二乘多项式拟合和曲线拟合的方法; [3] 通过实例学习如何用拟合方法解决实际问题,注意与插值方法的区别。 你为本次实验做了哪些准备: 上课认真听课,认真做笔记。在做实验之前,翻阅笔记,回顾上课所讲的内容,有不会的问同学。 实验 准备 实验 进度 本次共有 4 个练习,完成 4 个。 本次实验的收获、体会、经验、问题和教训: 通过这次实验,我了解了最小二乘拟合的基本原理和方法并掌握了用MATLAB作最小二乘多项式拟合和曲线拟合的方法,还通过实例学习如何用拟合方法解决实际问题,注意与插值方法的区别。MATLAB是一个很方便的软件,只要掌握了具体的方法,就可以不用担心算出的结果是错的。 实验 总结 教师 评语 1、假定某天气温变化记录如下表,试用最小二乘方法找出这一天的气温变化规律,考虑下列类型函数函数,作图比较效果。 时刻t(h) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 15 14 14 14 14 15 16 18 20 22 23 25 28 31 32 31 29 27 25 24 22 20 18 17 16 温度T(℃) ⑴二次函数;⑵三次函数;⑶钟形函数f(t)?aeb(t?14)。

(1)二次函数如下:

t=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24];

T=[15 14 14 14 14 15 16 18 20 22 23 25 28 31 32 31 29 27 25 24 222 20 18 17 16]; a=polyfit(t,T,2) a =

-0.0936 2.5943 8.4157 ti=0:1:24;

Ti=a(1)*ti.^2+a(2)*ti+a(3); plot(t,T,'*',ti,Ti,'k');

35302520151050510152025(2)三次函数如下:

t=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 22 23 24];

T=[15 14 14 14 14 15 16 18 20 22 23 25 28 31 32 20 18 17 16]; a=polyfit(t,T,3) a =

-0.0080 0.1931 -0.1022 13.2513 ti=0:1:24;

Ti=a(1)*ti.^3+a(2)*ti.^2+a(3)*ti+a(4); plot(t,T,'+',ti,Ti,'b');

16 17 18 31 29 27 19 20 2125 24 223530252015100510152025(3)钟形函数如下: x0=[0.2,0.05,0.05];

x=lsqnonlin(@ exam,x0)

Optimization terminated: relative function value changing by less than OPTIONS.TolFun. x =

27.9631 -0.0058 0.0500 ti=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 22 23 24];

Ti=27.9631*exp((-0.0058)*(t-14).^2); plot(t,T,'*',ti,Ti,'r');

35302520151050510152025

17 18 19 20 212、旧车价格预测

某年美国旧车价格的调查资料如下表,其中xi表示轿车的使用年数,yi表示相应的平均价格,试分析用什么形式的曲线来拟合上述的数据,并预测使用4.5年后轿车的平均价格大致为多少?

xi yi 1 2 3 4 5 6 7 8 9 10 2615 1943 1494 1087 765 538 484 290 226 204 函数文件为:

function f=exam(x,t) t=0:1:24;

T=[15 14 14 14 14 15 16 18 20 22 23 25 28 31 32 31 20 18 17 16];

f=x(1)*exp(x(2)*(t-14).^2)-T; 2: x=1:10;

y=[2615 1943 1494 1087 765 538 484 290 226 204]; plot(x,y,'*') a=polyfit(x,y,2) a =

1.0e+003 *

0.0361 -0.6508 3.1523 b=polyval(a,4.5) b =

955.7047

预测使用4.5年后轿车的平均价格大致为955.7047元。

30002500200015001000500012345678910

29 27 25

24 223、经济增长模型

增加生产、发展经济所以靠的主要因素有增加投资、增加劳动力以及技术革新等,在研究国民经济产值与这些因素的数量关系时,由于技术水平不像资金、劳动力那样容易定量化,作为初步的模型,可认为技术水平不变,只讨论产值和资金、劳动力之间的关系。在科学技术发展不快时,如资本主义经济发展的前期,这种模型是有意义的。

用Q,K,L分别表示产值、资金、劳动力,要寻求的数量关系Q(K,L)。经过简化假设与分析,在经济学中,推导出一个著名的Cobb-Douglas生产函数

Q(K,L)?aK?L?,0??,??1 (*)

式中?,?,a要经由经济统计数据确定。现有美国马萨诸塞州1900-1926年上述三个经济指数的统计数据如下,试用数据拟合的方法,求出(*)式中的参数?,?,a。

a=[1.05 1.18 1.29 1.3 1.3 1.42 1.5 1.52 1.46 1.6 1.69 1.81 1.93 1.95 2.01 2 2.09 1.96 2.2 2.12 2.16 2.08 2.24 2.56 2.34 2.45 2.58];

>> y=[1.04 1.06 1.16 1.22 1.27 1.37 1.44 1.53 1.57 2.05 2.51 2.63 2.74 2.82 3.24 3.24 3.61 4.1 4.36 4.77 4.75 4.54 4.54 4.58 4.58 4.58 4.54]; x0=[0.1,0.1,0.2];

x=curvefit('exam1',x0,y,a) x=1.2246 0.4612 -0.1277 调用函数为:

function f=exam1(x,y)

f=x(1)*(y(1,:).^2)).*(y(2,:).^x(3)); 4:

xdata=[1;2;5;7;9;3]; ydata=[7;6;8;7;5;7];

[x,resnorm]=lsqcurvefit(@robot,[1 2 3],xdata,ydata) Optimization terminated: relative function value changing by less than OPTIONS.TolFun. x =

3.8626 10.0483 1.6100 resnorm =

4.4020

xi=linspace(0,2,200);y=polyval(x,xi); plot(xdata,ydata,'*',xi,y)

Q=[1.05 1.18 1.29 1.3 1.3 1.42 1.5 1.52 1.46 1.6 1.69 1.81 1.93 1.95 2.01 2 2.09 1.96 2.2 2.12 2.16 2.08 2.24 2.56 2.34 2.45 2.58]';

K=[1.04 1.06 1.16 1.22 1.27 1.37 1.44 1.53 1.57 2.05 2.51 2.63 2.74 2.82 3.24 3.24 3.61 4.1 4.36 4.77 4.75 4.54 4.54 4.58 4.58 4.58 4.54]';

L=[1.05 1.08 1.18 1.22 1.17 1.3 1.39 1.47 1.31 1.43 1.58 1.59 1.66 1.68 1.65 1.62 1.86 1.93 1.96 1.95 1.9 1.58 1.67 1.82 1.6 1.61 1.64]';

4、机器人识别定形工具柄问题

机器人在不同层次上应用于工业生产、水下探测、核点开发、军事研究等领域和部门。当一个机器人工作时,经常需要识别那些从外形上看来是圆形或椭圆形的仪器或工具柄等基本设备,以便执行进一步的操作。通常在所需操纵的工具柄上放置适当数量的传感器,这些传感器不断向四周发射电信号,机器人身上安置有接收电信号的硬件装置,根据这些信号,机器人将估算出各个传感器当时所在的位置,然后,再利用这些数据获得工具柄的位置。由于硬件设备的限制和测量的随机偏差,所获得的传感器位置数据是有误差的。因此,为了增强识别的准确性和可靠性,工具柄上放置的传感器应多于确定该定形曲线所需的最少点数。(能否获得比较准确的工具柄位置,对机器人能否有效抓握、操作该工具柄起着关键的作用。)

现有一个圆形工具柄,其边缘上放置了6个传感器,一机器人在某一个时刻测得这些传感器的位置坐标为:(1,7),(2,6),(5,8),(7,7),(9,5),(3,7),如何确定该圆形工具柄的圆心坐标和半径。

40353025201510500123456789

所调用的函数为:

function f=robot(x,xdata)

f=x(1)+sqrt(x(2)-(xdata-x(3).^2));

本文来源:https://www.bwwdw.com/article/76xv.html

Top