实验4插值拟合与最优化 实验目的 1、了解插值和拟合的基本思想 2、掌握用 matlab软件插值和拟合的命令 3、掌握用 matlab软件求解线性规划、二次规划的命令。 实验内容: 1、一维多项式插值 由己知数据点(x1,y)(=0,1,2…,n)出发构造出n次插值多项式,进而通过多项 式求出x处的函数值y(x≠x1),在 Matlab中的命令为 Xp= yp=l, y2 y=int erp(xp, yp, x, 'linear) 注意: linear代表线性插值,此处也可换为 cubic(立方插值), spline(三次 样条插值), nearest(最邻近插值),也可以不写,系统默认为 linear。 在大多数情况下,线性插值就己经足够了 例1根据下函数表,求四次插值多项式,并用其计算f(1.682)和f(1.813)的近似值 1.615 1.634 1.702 1.921 f(x)2.414502.464592.652713.030353.34066 解:输入 matlab命令 xp=[1.615,1.634,1.702,1.828,1.921 yP=[2.41450,2.46459,2.65271,3.03035,3.34066]; yI=interpl(xp, yp, 1. 682) y2=interpl(xp, yp, 1. 813 所以结果为:y1=2974,y2=29854 2、多项式拟合 xp =[y1,y2,…,y
实验 4 插值拟合与最优化 实验目的: 1、了解插值和拟合的基本思想; 2、掌握用 matlab 软件插值和拟合的命令; 3、掌握用 matlab 软件求解线性规划、二次规划的命令。 实验内容: 1、 一维多项式插值 由已知数据点 (x , y ),(i 0,1,2, ,n) i i = 出发构造出 n 次插值多项式,进而通过多项 式求出 x 处的函数值 y ( i x x ),在 Matlab 中的命令为: [ , , , ] 1 2 n xp = x x x ; [ , , , ] 1 2 n yp = y y y ; y = int erp1(x p, yp, x, 'linear') 注意: linear 代表线性插值,此处也可换为 cubic (立方插值), spline (三次 样条插值), nearest (最邻近插值),也可以不写,系统默认为 linear 。 在大多数情况下,线性插值就已经足够了。 例 1 根据下函数表,求四次插值多项式,并用其计算 f (1.682) 和 f (1.813) 的近似值。 i x 1.615 1.634 1.702 1.828 1.921 ( ) i f x 2.41450 2.46459 2.65271 3.03035 3.34066 解:输入 matlab 命令 xp=[1.615,1.634,1.702,1.828,1.921]; yp=[2.41450,2.46459,2.65271,3.03035,3.34066]; y1=interp1(xp,yp,1.682) y2=interp1(xp,yp,1.813) 所以结果为: y1 = 2.5974 , y2 = 2.9854 。 2、 多项式拟合 [ , , , ] 1 2 n xp = x x x ; [ , , , ] 1 2 n yp = y y y ;
a=polyfit(xp, yp, m) 例2已知热敏电阻数据: 温度t(C)20.532.751.073.095.7 电阻R(9)7658268739421032 求60°C时的电阻R。 解:先对数据点作图,可以看出数据点的分布近似为直线,所以选取基函数R=at+b, 其中a和b为待定系数。 于是输入 matlab命令: xp=[20.5,32.7,51.0,73.0,95.7] y=[765,826,873,942,1032]; a→p。1yfit(xp,Yp,1) 输出结果为a=3.3987702.0968 R=906.0212 即拟合多项式为R=3.39871+7020968,且60°C时的电阻 R=906.02129。 3、线性规划的 matlab实现 matlab中,实现线性规划的函数是 linprog,其所解决的模型为 min ∫= A*x<=b Aeq*x= beq xlb linprog函数的命令格式为:
a = polyfit(x p, yp,m) 例 2 已知热敏电阻数据: 求 C 0 60 时的电阻 R。 解: 先对数据点作图,可以看出数据点的分布近似为直线,所以选取基函数 R = at +b , 其中 a 和 b 为待定系数。 于是输入 matlab 命令: xp=[20.5,32.7,51.0,73.0,95.7]; yp=[765,826,873,942,1032]; a=polyfit(xp,yp,1) R=polyval(a,60) 输出结果为 a = 3.3987 702.0968 R = 906.0212 即拟合多项式为 R = 3.3987t + 702.0968 ,且 C 0 60 时的电阻 R=906.0212 。 3、 线性规划的 matlab 实现 matlab 中,实现线性规划的函数是 linprog,其所解决的模型为 xlb x xub Aeq x beq st A x b f c x T = = = = = . . min linprog 函数的命令格式为: 温度 ( ) 0 t C 20.5 32.7 51.0 73.0 95.7 电阻 R() 765 826 873 942 1032
(1) x=linprog(c, A,b) %求无等式约束,对x也无范围要求的最优解 (2)x=linprog(c, A,b, Aeq, beq) %有等式约束Aeq*x=beq,此时若无不等式约束, 则A=口b= (3)x=linprog(c, A, b, Aeq, beq, x1b, xub) %指定x的范围,此时若无等式约束,则Aeq=[,beq=。 (4)x=linprog (c, A, b, Aeq, beq, x1b,xub,xo) %预先设置初始解向量x,此时若x无范围要求 则xb=[,xab= (5)x=linprog c, A,b, Aeq, beq, x16, xub, xo, options) %设置指定的优化参数 options o (6)[x,]= linprog(……) %在求解向量x的同时返回目标函数f的最优值 即∫ 例3求解线性规划问题: max f=3x1-x2-x3 4x1+x2+2x>=3 st x1-x3=-1 0,i=1,2,3 解:考虑到 linprog函数求解线性规划的标准形式为 min A*x<= b Aeq*x= be x16<=x<=xub 所以先要将线性规划变换为:
(1) x = linprog (c, A,b) %求无等式约束,对 x 也无范围要求的最优解。 (2) x = linprog (c, A,b, Aeq,beq) %有等式约束 Aeq x = beq ,此时若无不等式约束, 则 A = [],b = [] 。 (3) x = linprog (c, A,b, Aeq,beq, xlb, xub) %指定 x 的范围,此时若无等式约束,则 Aeq = [],beq = []。 (4) ( , , , , , , , ) 0 x = linprog c A b Aeq beq xlb xub x %预先设置初始解向量 0 x ,此时若 x 无范围要求, 则 xlb = [], xub = [] 。 (5) ( , , , , , , , , ) x = linprog c A b Aeq beq xlb xub x0 options %设置指定的优化参数 options。 (6) [x, f ] = linprog () %在求解向量 x 的同时返回目标函数 f 的最优值。 即 f c x T = 。 例 3 求解线性规划问题: = = − = − − + + = − + = = − − 0, 1,2,3 2 1 4 2 3 2 11 . . max 3 1 3 1 2 3 1 2 3 1 2 3 x i x x x x x x x x st f x x x i 解:考虑到 linprog 函数求解线性规划的标准形式为: xlb x xub Aeq x beq st A x b f c x T = = = = = . . min 所以先要将线性规划变换为:
2x+x,=0,i=12,3 然后输入 matlab文件如下 [-3;1;1] A=[1,-2,1;4,-1,-2]; x1b=[0;0;0] [x, f]=linprog(c, A, b, Aeq, bea, xlb,[]) 输出结果为:x=4.0000 1.0000 9.0000 f=-2.0000 所以线性规划的最优解为x1=4,x2=1,x3=9, 此时目标函数的最大值为2。 次规划的 matlab实现 matlab中,实现线性规划的函数是 quadprog,其所解决的模型为 mIn Hx A x<三 A*x=b V1 V2 linprog函数的命令格式为 x=quadprog(H, C, Al, bl) [x, fv, ef, out, lag]=quadprog(H, C, Al, bl, A2, b2, vl, v2, xo, opt) 例4求解二次规划问题: 3x2+3x2-3 x1+2x2=3 S 3x,≤3 解:输入如下程序
= = − − = − − + = − = − = − + + 0, 1,2,3 4 2 3 2 11 2 1 . . min 3 1 2 3 1 2 3 1 3 1 2 3 x i x x x x x x x x st f x x x i 然后输入 matlab 文件如下: c=[-3;1;1]; A=[1,-2,1;4,-1,-2]; b=[11;-3]; Aeq=[2,0,-1]; beq=[-1]; xlb=[0;0;0]; [x,f]=linprog(c,A,b,Aeq,beq,xlb,[]) 输出结果为:x = 4.0000 1.0000 9.0000 f=-2.0000 所以线性规划的最优解为 x1 = 4, x2 =1, x3 = 9 , 此时目标函数的最大值为 2。 4、 二次规划的 matlab 实现 matlab 中,实现线性规划的函数是 quadprog,其所解决的模型为 1 2 2 2 1 1 . . 2 1 min v x v A x b st A x b z x Hx c x T T = = = = = + linprog 函数的命令格式为: x=quadprog(H,c,A1,b1) [x,fv,ef,out,lag]=quadprog(H,c,A1,b1,A2,b2,v1,v2,x0,opt) 例 4 求解二次规划问题: = − − = − + = = − + − + 2, 0 3 3 2 3 2 3 . . min ( , ) 2 3 3 3 1 2 1 2 1 2 1 2 1 2 2 1 2 2 2 1 2 1 x x x x x x x x st f x x x x x x x x 解:输入如下程序
H=[4-3;-36]; c=[-31] A1=[-21;1-3 b1=[33] A2=[12]; b2=3 1=[2-inf] v2=[inf 0]i [x, fv, ef, out, lag ]=quadprog(H, c, Al, bl, A2, b2, vl, v2) 练习: 1、在某化学反应里,根据实验所得分解物的浓度与时间关系如下 t(min) 0510|1520|25303540455055 浓度 01.272.162.863.4413.874.154.374.514.584.624.64 y(×10-) 试研究浓度与时间的关系 2、丙烷的导热系数是化工生产中值得注意的量,而且常常需要在不同温度及压力下的导热 系数,然而我们不可能也没有必要实际测量出每一个条件下的导热系数,经过实验测得 以下数据: T(C) P(kN/m) Kww/mk)T(C) P(kN/m) K(/mk) 9798.1 0.0848 9798.1 0.0696 106 0.0897 14277 0.0753 9007.8 0.0762 9656.3 0.0611 140 13355 0.0807 12463 0.0651 表中的T,P,K分别表示温度、压力、导热系数,并假设在这个范围内导热系数近似的 随压力线性变化,求压力是10.13×103kN/m2和99C温度下的导热系数 3、某部门有3个生产同类产品的工厂A1,A2,A3,生产的产品由4个销售点B1,B2,B3,B4出 售,各工厂的生产量,各销售点的销售量(单位均为t)以及各工厂到各销售点的单位 运价(元/t)的所有数据列表如下: B3 12 10 10 销量 12 48 问如何调运才能使总运费最小? 4、某工厂生产甲,乙两种同类产品,需要用到三种原料。两类产品中每单位的产品对三种
H=[4 -3;-3 6]; c=[-3 1]; A1=[-2 1;1 -3]; b1=[3 3]; A2=[1 2]; b2=3; v1=[2 -inf]; v2=[inf 0]; [x,fv,ef,out,lag]=quadprog(H,c,A1,b1,A2,b2,v1,v2) 练习: 1、在某化学反应里,根据实验所得分解物的浓度与时间关系如下: 时间 t(min) 0 5 10 15 20 25 30 35 40 45 50 55 浓度 ( 10 ) −4 y 0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.62 4.64 试研究浓度与时间的关系。 2、丙烷的导热系数是化工生产中值得注意的量,而且常常需要在不同温度及压力下的导热 系数,然而我们不可能也没有必要实际测量出每一个条件下的导热系数,经过实验测得 以下数据: T(C) ( / ) 2 P kN m K(W / mK) T(C) ( / ) 2 P kN m K(W / mK) 68 9798.1 13324 0.0848 0.0897 106 9798.1 14277 0.0696 0.0753 87 9007.8 13355 0.0762 0.0807 140 9656.3 12463 0.0611 0.0651 表中的 T,P,K 分别表示温度、压力、导热系数,并假设在这个范围内导热系数近似的 随压力线性变化,求压力是 10.1310 kN / m 99C 3 2和 温度下的导热系数。 3、某部门有 3 个生产同类产品的工厂 A1,A2,A3,生产的产品由 4 个销售点 B1,B2,B3,B4 出 售,各工厂的生产量,各销售点的销售量(单位均为 t)以及各工厂到各销售点的单位 运价(元/t)的所有数据列表如下: B1 B2 B3 B4 产量 A1 4 12 4 11 16 A2 2 10 3 9 10 A3 8 5 11 6 22 销量 8 14 12 14 48 问如何调运才能使总运费最小? 4、某工厂生产甲,乙两种同类产品,需要用到三种原料。两类产品中每单位的产品对三种