数学实验第三版(主编:李继成 赵小艳)课后练习答案(十三)(1)

实验十三:数据拟合与数据差值

练习一

1.采用不同的拟合函数拟合示例4中的数据点,然后利用弧长公式预测光缆长度,同正文中的结果进行比较.

Matlab 复制代码
clc;clear;
p=[9.01,8.96,7.96,7.97,8.02,9.05,10.13,11.18,12.26,13.28,13.32,12.61,11.29,10.22,9.15,7.90,7.95,8.86,9.81,10.80,10.93];
x=0:20;
plot(x,p,'.');
f=inline('a(1)*x+a(2)*sin(0.5*x)+a(3)*cos(0.5*x)+10','a','x');
a0=[0 0 0];
[a,resnorm]=lsqcurvefit(f,a0,x,p)
x1=0:0.1:20;
g=a(1)*x1+a(2)*sin(0.5*x1)+a(3)*cos(0.5*x1)+10;
hold on
plot(x1,g,'r-');
l=0;
for i=1:length(x1)-1
    l=l+sqrt((x1(i)-x1(i+1))^2+(g(i)-g(i+1))^2);
end
l

找到局部最小值。

优化已完成,因为梯度大小小于

最优性容差的值。

<停止条件详细信息>

a =

0.0389 -2.5033 0.0164

resnorm =3.8448

l =26.6787

2.已知观测数据如下:

|-------|----------|---------|----------|-----------|-----------|----------|---------|-----------|--------|----------|
| x | 1.6 | 2.7 | 1.3 | 4.1 | 3.6 | 2.3 | 0.6 | 4.9 | 3 | 2.4 |
| y | 17.7 | 49 | 13.1 | 189.4 | 110.8 | 34.5 | 4 | 409.1 | 65 | 36.9 |

求a,b,c的值,使得曲线 与已知数据点在最小二乘意义上充分接近,并求残差平方和.

Matlab 复制代码
clc;clear;
x=[1.6,2.7,1.3,4.1,3.6,2.3,0.6,4.9,3,2.4];
y=[17.7,49,13.1,189.4,110.8,34.5,4,409.1,65,36.9];
f=inline('a(1)*exp(x)+a(2)*sin(x)+a(3)*log(x)','a','x');
a0=[0,0,0];
[a,ransnorm]=lsqcurvefit(f,a0,x,y)
x1=0.6:0.1:4.9;
g=a(1)*exp(x1)+a(2)*sin(x1)+a(3)*log(x1);
plot(x,y,'r.');
hold on
plot(x1,g);

a = 3.0154 1.0327 3.5933

ransnorm = 25.0753

3.商品的需求量与其价格有一定的关系.现对一定时期内的商品价格x与需求量y进行观察,取得如下数据:

|-------------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|
| 价格x/元 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 需求量y/kg | 58 | 50 | 44 | 38 | 34 | 30 | 29 | 26 | 25 | 24 |

(1)分别作出上述数据点的直线、抛物线、3次多项式拟合,分别求出残差平方和,并比较优劣;

Matlab 复制代码
clc;clear;
x=2:11;
y=[58,50,44,38,34,30,29,26,25,24];
plot(x,y,'r.');
p1=polyfit(x,y,1);
p2=polyfit(x,y,2);
p3=polyfit(x,y,3);
x1=2:0.1:11;
n1=polyval(p1,x1);
n11=polyval(p1,x);
n2=polyval(p2,x1);
n22=polyval(p2,x);
n3=polyval(p3,x1);
n33=polyval(p3,x);
hold on
plot(x1,n1);%直线拟合
hold on
plot(x1,n2,'k',x1,n3);
legend('点','直线','抛物线','三次多项式');
r1=0;r2=0;r3=0;
for i=1:length(y)
    r1=r1+(y(i)-n11(i))^2;
    r2=r2+(y(i)-n22(i))^2;
    r3=r3+(y(i)-n33(i))^2;
end
r1,r2,r3

r1 =

103.4061

r2 =

3.2167

r3 =

1.5103

(2)假设拟合函数为 ,试求a,b.

Matlab 复制代码
clc;clear;
x=2:11;
y=[58,50,44,38,34,30,29,26,25,24];
f=inline('a(1)+a(2)./x','a','x');
a0=[0,0];
[a,r]=lsqcurvefit(f,a0,x,y)
plot(x,y,'.');
x1=2:0.1:11;
hold on
g=a(1)+a(2)./x1;
plot(x1,g);

找到局部最小值。

优化已完成,因为梯度大小小于

最优性容差的值。

<停止条件详细信息>

a =

18.1604 87.3300

r =

57.3023

本文由作者自创,由于时间原因,难免出现些许错误,还请大家多多指正。创作不易,请大家多多支持。

相关推荐
大胆飞猪3 小时前
递归、剪枝、回溯算法---全排列、子集问题(力扣.46,78)
算法·leetcode·剪枝
Kisorge5 小时前
【电机控制】基于STM32F103C8T6的二轮平衡车设计——LQR线性二次线控制器(算法篇)
stm32·嵌入式硬件·算法
铭哥的编程日记6 小时前
深入浅出蓝桥杯:算法基础概念与实战应用(二)基础算法(下)
算法·职场和发展·蓝桥杯
Swift社区6 小时前
LeetCode 421 - 数组中两个数的最大异或值
算法·leetcode·职场和发展
cici158746 小时前
基于高光谱成像和偏最小二乘法(PLS)的苹果糖度检测MATLAB实现
算法·matlab·最小二乘法
StarPrayers.8 小时前
自蒸馏学习方法
人工智能·算法·学习方法
大锦终8 小时前
【动规】背包问题
c++·算法·动态规划
智者知已应修善业8 小时前
【c语言蓝桥杯计算卡片题】2023-2-12
c语言·c++·经验分享·笔记·算法·蓝桥杯
hansang_IR9 小时前
【题解】洛谷 P2330 [SCOI2005] 繁忙的都市 [生成树]
c++·算法·最小生成树
Croa-vo9 小时前
PayPal OA 全流程复盘|题型体验 + 成绩反馈 + 通关经验
数据结构·经验分享·算法·面试·职场和发展