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

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

练习二

1.在飞机的机翼加工时,由于机翼的尺寸很大,所以通常在图纸上只能标出部分关键点的尺寸某型号飞机的机翼上缘轮廓线的部分数据如下:

x

0

4.74

9.05

19

38

76

95

114

133

152

171

190

y

0

5.23

8.1

11.97

16.15

16.34

14.63

12.16

6.69

7.03

3.99

0

试用线性插值法、三次样条插值法分别绘制机翼上缘轮线的图形

clc;clear;
x=[0,4.74,9.05,19,38,76,95,114,133,152,171,190];
y=[0,5.23,8.1,11.97,16.15,16.34,14.63,12.16,6.69,7.03,3.99,0];
xb=0:190;
yb=interp1(x,y,xb,'linear');%线性插值
ybb=interp1(x,y,xb,'spline');%三次样条插值
figure(1)
plot(xb,yb);
hold on
plot(x,y,'.');
figure(2)
plot(xb,ybb);
hold on
plot(x,y,'.');


2.对函数 在区间[-10,10]上做等距拉格朗日插值和分段线性插值,观察插值中出现的龙格现象.要求:

(1)在区间[-10,10]上取不同的插值结点数n,做出函数的拉格朗日插值多项式和分段插值多项式;

format long
clc;clear;
n=50;%在这里可以更改n值
x0=linspace(-10,10,n);
y0=1./(1+25*x0.^2);
x=-10:0.01:10;
y=lglrcz(x0,y0,x);
figure(1)
plot(x0,y0,'.',x,y);
x00=reshape(x0,5,n/5);
y00=reshape(y0,5,n/5);
figure(2)
plot(x0,y0,'.');
yy=[];xxx=[];
for i=1:n/5xx=x00(1,i):0.01:x00(5,i);m=lglrcz(x00(:,i),y00(:,i),xx);xxx=[xxx,xx];yy=[yy,m];
end
hold on
plot(xxx,yy);
function y=lglrcz(x0,y0,x)
n=length(x0);
m=length(x);
for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;
end
end

 (2)将曲线和拉格朗日插值多项式曲线以及分段插值多项式曲线绘在同一坐标系上进行比,随着结点数n的不断增大,通过观察,你发现了什么?

为了对比明显我们取n=10,将两者插值曲线画在一个坐标系上进行对比。

format long
clc;clear;
n=10;%在这里可以更改n值
x0=linspace(-10,10,n);
y0=1./(1+25*x0.^2);
x=-10:0.01:10;
y=lglrcz(x0,y0,x);
x00=reshape(x0,5,n/5);
y00=reshape(y0,5,n/5);
yy=[];xxx=[];
for i=1:n/5xx=x00(1,i):0.01:x00(5,i);m=lglrcz(x00(:,i),y00(:,i),xx);xxx=[xxx,xx];yy=[yy,m];
end
figure(1)
plot(x0,y0,'.',x,y,xxx,yy);
function y=lglrcz(x0,y0,x)
n=length(x0);
m=length(x);
for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;
end
end

通过观察我们发现,采用分段线性插值可以大大削弱龙格现象;当n值较大时,龙格现象十分明显。

3.将区间[-5,5]作n等分,对函数做拉格朗日插值,观察龙格现象,问:能否取到n使得?

我们首先假设可以取到n使得上式成立,然后编写以下程序:

format long
clc;clear;
x1=-5:0.001:5;
syms x
f=x/(1+x^4);
for n=50:100x0=linspace(-5,5,n);f0=1;for i=1:nf0=(x-x0(i))*f0;endf1=abs(diff(f,n))*abs(f0)/factorial(n);f1=matlabFunction(f1);h=f1(x1);if max(h)<10^-6return;end
end
n
ff=matlabFunction(f);
plot(x0,ff(x0),'.');
y=lglrcz(x0,ff(x0),x1);
hold on
plot(x1,y);
function y=lglrcz(x0,y0,x)
n=length(x0);
m=length(x);
for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;
end
end

经过程序运行,发现一直无法出来结果。我们推测,可能无法达到题目要求,一直再往后循环,导致数太大一时半会出不来。

不妨我们n取100看一下图像:

format long
clc;clear;
x1=-5:0.01:5;
syms x
f=x/(1+x^4);
n=100;
x0=linspace(-5,5,n);
ff=matlabFunction(f);
plot(x0,ff(x0),'.');
y=lglrcz(x0,ff(x0),x1);
hold on
plot(x1,y);
function y=lglrcz(x0,y0,x)
n=length(x0);
m=length(x);
for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;
end
end

观察图像的左右两端,龙格现象十分明显,其数量级达到了10^18,可见如果要是再增大n值,数量级只能更大,所以无法满足题中条件。

4.有一形状较为复杂,但表面很光滑的曲面工件,通过科学手段,将其放置于某一空间坐标系下测得曲面上若干个点的坐标如下;

z

y

-5

-4

-3

-2

-1

0

1

2

3

4

5

x

-5

13.6

-8.2

-14.8

-6.6

1.4

0

-3.8

1.4

13.6

16.8

0

-4

-8.2

-15.8

-7.9

2.2

3.8

0

0.6

7.3

10.1

0

-16.8

-3

-14.8

-7.9

2.5

5.8

2.3

0

2.7

5.1

0

-10.1

-13.7

-2

-6.6

2.2

5.9

3.0

-0.3

0

1.9

0

-5.1

-7.3

-1.4

-1

1.4

3.8

2.3

-0.3

-0.9

0

0

-1.7

-2.7

-0.6

3.8

0

0

0

0

0

0

0

0

0

0

0

0

1

-3.8

0.6

2.7

1.7

0

0

0.9

0.3

-2.3

-3.8

-1.4

2

1.4

7.3

5.1

0

-1.7

0

0.3

-3.1

-5.8

-2.2

6.6

3

13.6

10.1

0

-5.1

-2.7

0

-2.3

-5.8

-2.5

7.9

14.8

4

16.8

0

-10.1

-7.3

-0.6

0

-3.8

-2.2

7.9

15.8

8.2

5

0

16.3

-13.6

-1.4

3.8

0

-1.4

6.6

14.8

8.2

-13.6

要求:

(1)画出该曲面工件的图形;

(2)在已知相邻的横、纵坐标之间分别插人三个分点,用interp2 命令计算出所有点处的竖坐标,画出相应的插值曲面;

(3)分别用不同的方法求出该曲面工件表面积的近似值.

(1)由于z的值太多且没有规律,我们将其复制到Excel表格中,并用matlab读取。

format long
clc;clear;
x=-5:5;
y=-5:5;
[x,y]=meshgrid(x,y);
z=xlsread('C:\Users\dell\Desktop\工件.xlsx');
figure(1)
mesh(x,y,z);

(2)原来有11个数据,相邻两个之间插入三个点后有41个数据。

format long
xx=linspace(-5,5,41);
[xx,yy]=meshgrid(xx,xx);
zz=interp2(x,y,z,xx,yy,'cubic');
mesh(xx,yy,zz);

(3)我们将图形分割成500*500个小网格,每个小网格当成矩形来计算:

format long
clc;clear;
x=-5:5;
y=-5:5;
[x,y]=meshgrid(x,y);
z=xlsread('C:\Users\dell\Desktop\工件.xlsx');
xx=linspace(-5,5,501);
[xx,yy]=meshgrid(xx,xx);
zz=interp2(x,y,z,xx,yy,'cubic');
s=0;
for i=1:500for j=1:500l1=sqrt((xx(i,j)-xx(i,j+1))^2+(yy(i,j)-yy(i,j+1))^2+(zz(i,j)-zz(i,j+1))^2);l2=sqrt((xx(i,j)-xx(i+1,j))^2+(yy(i,j)-yy(i+1,j))^2+(zz(i,j)-zz(i+1,j))^2);s=s+l1*l2;end
end
s

s = 3.349303482718335e+03

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/474339.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单片机移植Lua(STM32H743移植Lua-5.4.6)

文章目录 目的移植演示示例链接更多说明合理设置内存大小按需加载标准库实现系统和IO接口设置引用路径 总结 目的 通常单片机都是使用C/C来开发的&#xff0c;任何修改都需要重新编译固件然后下载运行。在一些需要灵活性更强的场合中可以内嵌Lua解释器实现动态更新应用程序的功…

【Langchain Agent研究】SalesGPT项目介绍(二)

【Langchain Agent研究】SalesGPT项目介绍&#xff08;一&#xff09;-CSDN博客 上节课&#xff0c;我们介绍了SalesGPT他的业务流程和技术架构&#xff0c;这节课&#xff0c;我们来关注一下他的项目整体结构、poetry工具和一些工程项目相关的设计。 项目整体结构介绍 我们把…

java的面向对象编程(oop)——认识枚举

前言 打好基础&#xff0c;daydayup! 枚举 1&#xff0c;认识枚举&#xff1a; 枚举是一种特殊类&#xff0c;用enum语句修饰。与普通类不同的是&#xff1a;枚举类的第一行只能写一些合法的标识符&#xff08;名称&#xff09;&#xff0c;多个名称用逗号隔开。这些标识符&a…

Python学习路线图

防止忘记&#xff0c;温故知新 进阶路线

计算机设计大赛 深度学习YOLO抽烟行为检测 - python opencv

文章目录 1 前言1 课题背景2 实现效果3 Yolov5算法3.1 简介3.2 相关技术 4 数据集处理及实验5 部分核心代码6 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习YOLO抽烟行为检测 该项目较为新颖&#xff0c;适合作为竞赛课…

【C++初阶】第三站:类和对象(中) -- 日期计算器

目录 前言 日期类的声明.h 日期类的实现.cpp 获取某年某月的天数 全缺省的构造函数 拷贝构造函数 打印函数 日期 天数 日期 天数 日期 - 天数 日期 - 天数 前置 后置 前置 -- 后置-- 日期类中比较运算符的重载 <运算符重载 运算符重载 ! 运算符重载 …

19.Qt 组合框的实现和应用

目录 前言&#xff1a; 技能&#xff1a; 内容&#xff1a; 1. 界面 2.槽 3.样式表 参考&#xff1a; 前言&#xff1a; 学习QCombox控件的使用 技能&#xff1a; 简单实现组合框效果 内容&#xff1a; 1. 界面 在ui编辑界面找到input widget里面的comboBox&#xff…

AutoSAR(基础入门篇)10.3-BswM配置

目录 一、ECU State Handing(ESH) 二、Module Initialization 三、Communication Control 说起BswM的配置,其实博主问过很多朋友了,大家基本都只用自动配置;很少有用到手动配置的时候,对于刚刚入门的大家来说,掌握自动配置基 本也就足够了。 一、ECU State Handing(ESH…

暴力破解(if循环)解决leetcode数字转成罗马数字

1.题目描述 2.解题思路 刚看到这个题目的时候&#xff0c;感觉说的有点啰嗦&#xff0c;其实不难发现&#xff0c;这个题目和之前的给你多少钱&#xff0c;什么2元&#xff0c;5元的&#xff0c;给你一个数字&#xff0c;让你算各种钱币有多少张。无非就是从小到大进行判断&am…

智慧图书管理系统架构设计与实现

随着数字化时代的到来&#xff0c;智慧图书管理系统在图书馆和机构中扮演着重要的角色。一个优秀的图书管理系统不仅需要满足基本的借阅管理需求&#xff0c;还需要具备高效的性能、良好的扩展性和稳定的安全性。本文将讨论智慧图书管理系统的架构设计与实现&#xff0c;以满足…

js基础篇

javascript 1.1javascript是什么&#xff1f; 是运行在浏览器【客户端】的编程语言 1.2 js的组成 ECMAScript (基础语法) Web APIs (DOM BOM) 1.3 js的书写位置 内部&#xff0c;外部&#xff0c;行内 【代码写在标签内部】 // 内部 <script>alter("你好&…

Linux|centos7下的编译|ffmpeg的二进制安装

Windows版本的ffmpeg&#xff1a; ###注意&#xff0c;高版本可能必须要windows10以及以上才支持&#xff0c;win7估计是用不了的 下载地址&#xff1a;Builds - CODEX FFMPEG gyan.dev 或者这个下载地址&#xff1a;https://github.com/BtbN/FFmpeg-Builds/releases 这两个…