数学实验第三版(主编:李继成 赵小艳)课后练习答案(十三)(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/5
    xx=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:m
    z=x(i);
    s=0.0;
    for k=1:n
        p=1.0;
        for j=1:n
            if j~=k
                p=p*(z-x0(j))/(x0(k)-x0(j));
            end
        end
        s=p*y0(k)+s;
    end
    y(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/5
    xx=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:m
    z=x(i);
    s=0.0;
    for k=1:n
        p=1.0;
        for j=1:n
            if j~=k
                p=p*(z-x0(j))/(x0(k)-x0(j));
            end
        end
        s=p*y0(k)+s;
    end
    y(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:100
    x0=linspace(-5,5,n);
    f0=1;
    for i=1:n
        f0=(x-x0(i))*f0;
    end
  f1=abs(diff(f,n))*abs(f0)/factorial(n);
  f1=matlabFunction(f1);
 h=f1(x1);
 if max(h)<10^-6
     return;
 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:m
    z=x(i);
    s=0.0;
    for k=1:n
        p=1.0;
        for j=1:n
            if j~=k
                p=p*(z-x0(j))/(x0(k)-x0(j));
            end
        end
        s=p*y0(k)+s;
    end
    y(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:m
    z=x(i);
    s=0.0;
    for k=1:n
        p=1.0;
        for j=1:n
            if j~=k
                p=p*(z-x0(j))/(x0(k)-x0(j));
            end
        end
        s=p*y0(k)+s;
    end
    y(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:500
    for j=1:500
    l1=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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《Go 简易速速上手小册》第10章:微服务与云原生应用(2024 最新版)

文章目录 10.1 构建微服务架构 - 探索 Go 语言的微观世界10.1.1 基础知识讲解10.1.2 重点案例&#xff1a;订单处理系统订单服务测试服务 10.1.3 拓展案例 1&#xff1a;用户认证服务安装所需的包实现用户模型和存储实现 JWT 生成和验证实现认证服务测试服务 10.1.4 拓展案例 2…

如何清除谷歌浏览器的缓存?这里有详细步骤

如果你想解决加载或格式化问题&#xff0c;以改善你在谷歌Chrome上的浏览体验&#xff0c;那么清除缓存和cookie是一个很好的开始。以下是删除它们的方式和操作。 删除缓存和cookie时会发生什么 当你访问一个网站时&#xff0c;它有时会保存&#xff08;或记住&#xff09;某…

数据结构第十六天(二叉树层序遍历/广度优先搜索(BFS)/队列使用)

目录 前言 概述 接口 源码 测试函数 运行结果 往期精彩内容 前言 从前的日色变得慢&#xff0c;车&#xff0c;马&#xff0c;邮件都慢&#xff0c;一生,只够爱一个人。 概述 二叉树的层序遍历可以使用广度优先搜索&#xff08;BFS&#xff09;来实现。具体步骤如下&…

第11章 GUI

11.1 Swing概述 Swing是Java语言开发图形化界面的一个工具包。它以抽象窗口工具包&#xff08;AWT&#xff09;为基础&#xff0c;使跨平台应用程序可以使用可插拔的外观风格。Swing拥有丰富的库和组件&#xff0c;使用非常灵活&#xff0c;开发人员只用很少的代码就可以创建出…

[嵌入式系统-28]:开源的虚拟机监视器和仿真器:QEMU(Quick EMUlator)与VirtualBox、VMware Workstation的比较

目录 一、QEMU概述 1.1 QEMU架构 1.2 QEMU概述 1.3 什么时候需要QEMU 1.4 QEMU两种操作模式 1.5 QEMU模拟多种CPU架构 二、QEMU与其他虚拟机的比较 2.1 常见的虚拟化技术 2.1 Linux KVM 2.2 Windows VirtualBox 2.3 Windows VMware workstation 三、VirtualBox、VM…

21种matlab信号分解方法汇总

21中信号分解方法汇总 CEEMD(互补集合经验模态分解)CEEMDAN(自适应噪声完备集合经验模态分解) EEMD(集合经验模态分解&#xff09;EMD(经验模态分解)ESMD(极点对称模态分解&#xff09;EWT(经验小波变换分解)FEEMD(快速EEMD分解)ICEEMDAN(改进自适应噪声完备集合经验模态分解)L…

自然语言编程系列(三):自然语言编程工具

自然语言编程工具尝试让用户以更接近日常对话的方式描述任务&#xff0c;然后将其自动转换成合适的代码。 自然语言编程工具&#xff08;Natural Language Programming, NLP&#xff09;旨在降低编程门槛&#xff0c;使得不具备传统编程技能的用户能够以他们习惯的日常对话方式…

Python中超超超高颜值的库,我刚发现的...

在Python中&#xff0c;有一个名为rich的宝藏包&#xff0c;它能够将你的终端输出变成一场视觉盛宴。rich是一个用于在终端中呈现富文本&#xff08;包括颜色、样式、表格、进度条等&#xff09;的Python库&#xff0c;它可以使你的命令行界面变得生动而富有表现力。 如何安装 …

计算机网络-数据通信基础

目录 前言 一、数据通信基本概念 二、数据通信相关知识1 总结 前言 正在学习计算机网络体系&#xff0c;把每日所学的知识梳理出来&#xff0c;既能够当作读书笔记&#xff0c;又能分享出来和大家一同学习讨论。 一、数据通信基本概念 基本概念&#xff1a;信源、信道、信宿&…

数据集合

目录 并集 union union all 区别 交集 intersect 差集 minus 错误操作 Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 常用的数学集合有&#xff1a;交集、并集、差集、补集 每一次查询实际上都会返回数据集合&#xff0c;…

浅析太阳能电池量子效率测试系统的主要组成部分

太阳能电池量子效率测试系统是用于对太阳能电池进行量子效率测试的设备。量子效率是指太阳能电池在接收光照射时&#xff0c;将光子转化为电子的效率。太阳能电池的量子效率越高&#xff0c;其转化光能为电能的效率就越高。主要由以下几个组成部分构成&#xff1a; 光源&#x…

测试物理网络的ping命令

通过发送Internet控制消息协议&#xff08;ICMP&#xff09;并接收其应答&#xff0c;测试验证与另一台TCP/IP计算机的IP级联通性、可达到性和名称解析的疑难问题主要TCP/IP命令。如果不带参数&#xff0c;ping将显示帮助。通过在命令提示符下输入“ping /&#xff1f;”命令&a…

生成式 AI - Diffusion 模型 (DDPM)原理解析(1)

来自 论文《 Denoising Diffusion Probabilistic Model》&#xff08;DDPM&#xff09; 论文链接&#xff1a;https://arxiv.org/abs/2006.11239 Hung-yi Lee 课件整理 简单地介绍diffusion model 的基本概念&#xff0c;diffusion model有很多不同的变形&#xff0c;现在比较…

Open CASCADE学习|分割

目录 1、添加头文件与源文件 GEOMAlgo_Splitter.h GEOMAlgo_Splitter.cpp 2、测试 2.1平面分割立方体 2.2以边分面 2.3以面分面 1、添加头文件与源文件 GEOMAlgo_Splitter.h // Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE//// Copyright (C) 2003-2…

第三十三天| 1005.K次取反后最大化的数组和、134. 加油站 、135. 分发糖果

Leetcode 1005.K次取反后最大化的数组和 题目链接&#xff1a;1005 K次取反后最大化的数组和 题干&#xff1a;给你一个整数数组 nums 和一个整数 k &#xff0c;按以下方法修改该数组&#xff1a; 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可…

博途PLC数值积分器(矩形梯形积分自由切换)

数值积分器的相关介绍,大家可以也可以参看下面几篇文章,链接如下: PLC算法系列数值积分器 https://rxxw-control.blog.csdn.net/article/details/128562853https://rxxw-control.blog.csdn.net/article/details/128562853SMART PLC 梯形和矩形积分 https://rxxw-control.…

C语言学习day16:二维数组

二维数组格式&#xff1a; 数据类型 数组名[行][列] { {值1&#xff0c;值2}, {值3&#xff0c;值4} } 代码&#xff1a; int arr[2][3] { {1,2,3},{4,5,6} }; 那么我们怎么找它的下标呢&#xff0c;我先上一副图&#xff1a; 假如我现在要找1&#xff0c;那么它…

数据结构~二叉树(基础知识)

上一篇博客我们对树有了初步了解与学习&#xff0c;这篇我将初步学习二叉树&#xff01;&#xff01;&#xff08;新年快乐&#xff01;&#xff09; 目录 二叉树 1、定义&#xff1a; 2、特点&#xff1a; 3、基本形态&#xff1a; 4、二叉树的种类&#xff1a; &…

skimage库简介

scikit-image 是专注于图像处理的Python包&#xff0c;全称是scikit-image SciKit。该包由python语言编写&#xff0c;由scipy 社区开发和维护&#xff0c;使用原生的Numpy数组作为图像对象。 一、skimage简介 skimage&#xff08;scikit-Image&#xff09;是基于python开发的…

六、Spring/Spring Boot整合ActiveMQ

Spring/Spring Boot整合ActiveMQ 一、Spring整合ActiveMQ1.pom.xml2.Queue - 队列2.1 applicationContext.xml2.2 生产者2.3 消费者 3.Topic - 主题3.1 applicationContext.xml3.2 生产者3.3 消费者 4.消费者 - 监听器4.1 编写监听器类4.2 配置监听器4.3 生产者消费者一体 二、…