【数值分析】逼近,正交多项式

逼近

由离散点(函数表)给出函数关系通常有两种方法:

  1. 使用多项式插值
    使用多项式插值会带来两个问题:1. 龙格现象2. 数值本身带有误差,使用插值条件来确定函数关系不合理
  2. 三次样条插值
    三次样条插值克服了龙格现象,但计算量大。

曲线拟合的最小二乘法可以克服龙格现象,同时不会有大计算量。

用函数序列 p n ( x ) {p_n(x)} pn(x) 去近似一个函数 f ( x ) {f(x)} f(x) ,称为逼近。用函数 Φ {\Phi} Φ 去近似一堆离散点,称为拟合
最小二乘法是最佳平方逼近的离散情形。

使用多项式拟合时,如果要拟合的多项式次数等于离散点的个数减一,则最小二乘拟合多项式与多项式插值得到的插值多项式相同。

用多项式做最小二乘的基函数,当 n {n} n 较大时,法方程组的解对初始数据的微小变化非常敏感,属于“病态”问题。所以通过使用正交多项式来避免求解法方程组。

极值原理 在有限集合中存在最大值和最小值。
最小二乘准则 即损失函数
L = ∑ i = 1 n ( y i − f ( x i ) ) 2 L= \sum_{i=1}^{ n} (y_i-f(x_i))^2 L=i=1n(yif(xi))2
最小。法方程是从损失函数取极小值的必要条件推来的。

非线性拟合,就是指用来拟合离散点的函数不是某些函数的线性组合,或者说是关于待定参数的非线性函数。

矛盾方程系数矩阵列向量线性无关,则方程组相容,从而可以解除矛盾方程在最小二乘意义下的最佳近似解。matlab左除“"可以求解矛盾方程

曲线拟合问题

逼近 用类似简化的函数来拟合一堆数据点。
曲线拟合问题 求函数 ϕ ( x ) ∈ Φ {\phi(x)\in \Phi} ϕ(x)Φ ,使得 ϕ ( x ) {\phi(x)} ϕ(x) 在离散点上的误差向量
δ = [ δ 0 δ 1 ⋮ δ m ] = [ ϕ ( x 0 ) − y 0 ϕ ( x 1 ) − y 1 ⋮ ϕ ( x m ) − y m ] \delta = \begin{bmatrix} \delta_0\\ \delta_1 \\ \vdots \\ \delta_m \end{bmatrix}= \begin{bmatrix} \phi(x_0)-y_0\\ \phi(x_1)-y_1 \\ \vdots \\ \phi(x_m)-y_m \end{bmatrix} δ= δ0δ1δm = ϕ(x0)y0ϕ(x1)y1ϕ(xm)ym
按某一向量范数 ∣ ∣ δ ∣ ∣ {|| \delta ||} ∣∣δ∣∣ 达到最小。
当范数取 2 {2} 2 范数,即为最小二乘法。


正交多项式

Schmidt正交化:
g n ( x ) = f n ( x ) − ∑ i = 0 n − 1 ( f n , g i ) ( g i , g i ) g i ( x ) g_n(x)=f_n(x)- \sum_{i=0}^{ n-1} \frac{(f_n,g_i)}{(g_i,g_i)}g_i(x) gn(x)=fn(x)i=0n1(gi,gi)(fn,gi)gi(x)
1 , x , x 2 , ⋯ x n {1,x,x^2, \cdots x^n} 1,x,x2,xn 经过Schmidt正交化得到的多项式 P 0 ( x ) , P 1 ( x ) , ⋯ , P n ( x ) {P_0(x),P_1(x),\cdots ,P_n(x)} P0(x),P1(x),,Pn(x) 称为 [ a , b ] {[a,b]} [a,b] 上的正交多项式。

  • 求内积时候要带上权函数!

[!example]-
求区间 [ − 1 , 1 ] {[-1,1]} [1,1] 上权函数为 ρ ( x ) = x 2 {\rho(x)=x^2} ρ(x)=x2 的二次正交多项式 P 2 ( x ) {P_2(x)} P2(x) 。(说了二次,只写到2次项,不然要加…)
解:
P 0 ( x ) = 1 P 1 ( x ) = x − ( x , 1 ) ( 1 , 1 ) × 1 = x − ∫ − 1 1 x ⋅ 1 ⋅ x 2 d x ∫ − 1 1 x 2 d x = x P 2 ( x ) = x 2 − ( x 2 , 1 ) ( 1 , 1 ) × 1 − ( x 2 , x ) ( x , x ) × x = x 2 − ∫ − 1 1 x 2 ⋅ 1 ⋅ x 2 d x ∫ − 1 1 x 2 d x × 1 − ∫ − 1 1 x 2 ⋅ x ⋅ x 2 d x ∫ − 1 1 x ⋅ x ⋅ x 2 d x × x = x 2 − 2 / 5 2 / 3 = x 2 − 3 5 \begin{align*} P_0(x)=&1 \\ \\ P_1(x)=& x- \frac{(x,1)}{(1,1)} \times 1=x- \frac{\int_{ -1 }^{1} x \cdot 1 \cdot x^2 \mathrm dx}{\int_{ -1 }^{1} x^2 \mathrm dx}=x \\ \\ P_2(x)=&x^2- \frac{(x^2,1)}{(1,1)}\times 1- \frac{(x^2,x)}{(x,x)} \times x \\ \\ =&x^2- \frac{\int_{ -1 }^{1} x^2 \cdot 1 \cdot x^2 \mathrm dx}{\int_{ -1 }^{1} x^2 \mathrm dx} \times 1- \frac{\int_{ -1 }^{1} x^2 \cdot x \cdot x^2 \mathrm dx}{\int_{ -1 }^{1} x \cdot x \cdot x^2 \mathrm dx} \times x \\ \\ =& x^2- \frac{2/5}{2/3}=x^2- \frac{3}{5} \end{align*} P0(x)=P1(x)=P2(x)===1x(1,1)(x,1)×1=x11x2dx11x1x2dx=xx2(1,1)(x2,1)×1(x,x)(x2,x)×xx211x2dx11x21x2dx×111xxx2dx11x2xx2dx×xx22/32/5=x253

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

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

相关文章

多线程在编程中的重要性有什么?并以LabVIEW为例进行说明

多线程在编程中的重要性体现在以下几个方面: 并行处理: 多线程允许程序同时执行多个任务,这在现代多核心处理器上尤其重要。通过并行处理,可以显著提高程序的执行效率和响应速度。 资源利用最大化: 通过多线程&#x…

工厂设计模式的思考

工厂模式对于开发者来说并不陌生,他利用多肽性很好的进行业务之间的解耦,不同的场景创建不同的实现,从而使得更多的关注业务实现,这种简单的实现这里不在举例。但是如果情形比较多的时候就会遇到问题,我们的工厂类就会产生大量的i…

Nacos与Eureka的区别详解

Nacos与Eureka的区别详解 在微服务架构中,服务注册与发现是核心组件之一,它们允许服务实例在启动时自动注册,并且能被其他服务发现,从而实现服务之间的互相通信。Nacos和Eureka都是现代微服务体系中广泛使用的服务注册与发现工具。本文将深入分析二者的区别,并为您提供一…

基于YOLOv7开发构建道路交通场景下CCTSDB2021交通标识检测识别系统

交通标志检测是交通标志识别系统中的一项重要任务。与其他国家的交通标志相比,中国的交通标志有其独特的特点。卷积神经网络(CNN)在计算机视觉任务中取得了突破性进展,在交通标志分类方面取得了巨大的成功。CCTSDB 数据集是由长沙…

OpenFeign超时控制

OpenFeign超时控制 前面简单介绍了Feign和OpenFeign的关系,言归正传,接下来我们看看OpenFeign如何设置调用超时,openFeign其实是有默认的超时时间的,默认分别是连接超时时间10秒、读超时时间60秒,源码在feign.Request…

Elasticsearch中object类型与nested类型以及数组之间的区别

一、区别: 0、一般情况下用object 类型来查es中为json对象的字段数据,用nested来查es中为JsonArray数组类型的字段数据。 1、默认情况下ES会把JSON对象直接映射为object类型,只有手动设置才会映射为nested类型 2、object类型可以直接使用普…

十九:爬虫最终篇-平安银行商城实战

平安银行商场实战 需求 获取该商城商品信息 目标网址 https://m.yqb.com/bank/product-item-50301196.html?mcId1583912328849970&loginModepab&historyy&sceneModem&traceid30187_4dXJVel1iop详细步骤 1、寻找数据接口 2、对比payload寻找可疑参数 3、多…

Day28 回溯算法part04 93. 复原IP地址 78. 子集 90. 子集 II

回溯算法part04 93. 复原IP地址 78. 子集 90. 子集 II 93. 复原 IP 地址 class Solution { private:vector<string> result;bool isValid(string& s,int start,int end){if (start > end) return false;if (s[start] 0 && start ! end) { // 0开头的数…

图像融合论文阅读:CrossFuse: 一种基于交叉注意机制的红外与可见光图像融合方法

article{li2024crossfuse, title{CrossFuse: A novel cross attention mechanism based infrared and visible image fusion approach}, author{Li, Hui and Wu, Xiao-Jun}, journal{Information Fusion}, volume{103}, pages{102147}, year{2024}, publisher{Elsevier} } 论文…

Yum(Yellowdog Updater Modified)命令大全详解

Yum&#xff08;Yellowdog Updater Modified&#xff09;是一个在基于RPM的Linux发行版上常用的包管理工具&#xff0c;主要用于自动安装、自动删除、自动升级软件包。下面列出了一些常见的Yum命令以及它们的解释&#xff1a; 安装软件包&#xff1a; yum install packageName…

当试图回复传入消息时,消息应用程序会闪烁

问题描述&#xff1a; Actual Results: Unable to reply for incoming message as Messaging app flickers and closes. Expected Results: User should be able to send reply for incoming messages. Reproduction Steps: Stay in home screen. Receive an incoming mes…

如何在 Ubuntu 20.04 上安装和使用 Docker

前些天发现了一个人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;最重要的屌图甚多&#xff0c;忍不住分享一下给大家。点击跳转到网站。 如何在 Ubuntu 20.04 上安装和使用 Docker 介绍 Docker是一个可以简化容器中应用程序进程管理过程的应用程序。…

拦截器HandlerInterceptor | springmvc系列

拦截器&#xff0c;通俗来来将&#xff0c;就是我们将访问某个路径的请求给拦截下来&#xff0c;然后可以对这个请求做一些操作 基本使用 创建拦截器类 让类实现HandlerInterceptor接口&#xff0c;重写接口中的三个方法。 Component //定义拦截器类&#xff0c;实现Handle…

如何编写kubernetes中使用的yaml文件?(基础概括版)

在操作kubernetes的过程中&#xff0c;我们经常接触到yaml文件&#xff0c;甚至有不少yaml文件超级长&#xff0c;就像在搭建集群的过程中&#xff0c;我们要用到的yaml文件&#xff0c;都是直接拷贝别人的&#xff0c;那这个yaml怎么解读&#xff1f;如果自己要写的话&#xf…

Python实现PowerPoint(PPT/PPTX)到PDF的批量转换

演示文稿是一种常见传达信息、展示观点和分享内容的形式&#xff0c;特别是PowerPoint演示文稿&#xff0c;广泛应用于各行各业&#xff0c;几乎是演讲等场合的必备工具。然而&#xff0c;演示文稿也有其限制&#xff0c;对设备的要求较高&#xff0c;且使用不同的软件或设备演…

uView route 路由跳转

route(Object) 此为一个路由跳转方法&#xff0c;内部是对uni多个路由跳转api的封装&#xff0c;更方便使用 Object参数说明&#xff1a; 参数名类型默认值是否必填说明typeStringnavigateTofalsenavigateTo或to对应uni.navigateTo&#xff0c;redirect或redirectTo对应uni.…

Ubuntu下AI4Green开源ELN服务的简单部署

主部署程序&#xff1a;AI4Green 配置参考这篇文档&#xff1a;AI4Green开源ELN&#xff08;电子实验记录本&#xff09;-CSDN博客 流量转发和负载均衡&#xff1a;使用Nginx 配置参考这篇文档&#xff1a;Nginx负载均衡-CSDN博客 SSL配置部分参考这篇文档&#xff1a; 设置…

SpringBoot-开启Actuator监控

Spring Boot Actuator是Spring Boot提供的一种管理和监控应用程序的框架&#xff0c;可以帮助我们了解应用程序的运行状况&#xff0c;提供HTTP端点来暴露应用程序的不同方面&#xff0c;如健康状况、指标、日志和运行时信息等。 开启Actuator监控&#xff0c;我们可以通过HTT…

Hyperledger Fabric 核心概念与组件

要理解超级账本 Fabric 的设计&#xff0c;首先要掌握其最基本的核心概念与组件&#xff0c;如节点、交易、排序、共识、通道等。 弄清楚这些核心组件的功能&#xff0c;就可以准确把握 Fabric 的底层运行原理&#xff0c;深入理解其在架构上的设计初衷。知其然&#xff0c;进…

回顾2023编程之旅

一、前言 看在给了我一个博客专家的份上就继续写写博客&#xff0c;实事求是的讲如果是工作之余去总结csdn写写技术博客&#xff0c;还想混个专家什么的&#xff0c;真的是精力不够。因为里面的灌水的实在太多&#xff0c;比不过的&#xff0c;写这个玩意必须得淡泊名利才能悠然…