采用不高于3次的勒让德多项式拟合原函数

news2024/11/14 7:14:41

利用勒让德多项式进行拟合的区域是[-1,1],如果不是这个区域,比如是[a,b],利用x=\frac{a+b}{2}+\frac{b-a}{2}t转化到[-1,1]。

参考以下例题计算系数

C语言代码如下

//用三阶的勒让德多项式进行拟合
#include<math.h>
#include<stdio.h>
#include "main.c"
double f(double x);
double fl1(double x);
double fl2(double x);
double fl3(double x);
int main(){
    double a=-1.0,b=1.0;
    int n=600;
    double c0=integrate(f,a,b,n)*0.5;
    double c1=integrate(fl1,a,b,n)*1.5;
    double c2=integrate(fl2,a,b,n)*2.5;
    double c3=integrate(fl3,a,b,n)*3.5;
    double x=1;
    printf("%lf %lf %lf %lf",c0,c1,c2,c3);
}
//要拟合的函数
double f(double x){
    return exp(x);
}
//拟合之后的结果
double f1(double x,double c0,double c1,double c2,double c3){
    return c0-0.5*c2+x*(c1-1.5*c3)+x*x*1.5*c2+pow(x,3)*2.5*c3;
}
//1到3阶要积分的函数
double fl1(double x){
    return x*f(x);
}
double fl2(double x){
    return (1.5*x*x-0.5)*f(x);
}
double fl3(double x){
    return (2.5*pow(x,3)-1.5*x)*f(x);
}

integrate为求积分的函数,见下

//梯形公式计算数值积分,a下限,b上限,n分的区间个数
double integrate(double (*f)(double), double a, double b, int n) {
    double h = (b - a) / n; // 区间宽度
    double sum = 0.5 * (f(a) + f(b)); // 初始值
    int i;

    for (i = 1; i < n; i++) {
        sum += f(a + i * h);
    }

    return h * sum;
}

如果用MATLAB,则可以使用函数句柄

fun=@(x) exp(x);
f1=@(x) x.*fun(x);
f2=@(x) (1.5.*x.*x-0.5).*fun(x);
f3=@(x) (2.5.*x.^3-1.5.*x).*fun(x);
a=-1;
b=1;
c0=0.5*integral(fun,a,b);
c1=1.5*integral(f1,a,b);
c2=2.5*integral(f2,a,b);
c3=3.5*integral(f3,a,b);
fun1=@(x) c0-0.5*c2+(c1-1.5*c3)*x+1.5*c2*x.^2+2.5*c3*x.^3;
fun1(1)

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

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

相关文章

智能控制,高效节能。ZLG致远电子能源智慧管理解决方案

面对楼宇及建筑群能源管理与设备控制的复杂需求&#xff0c;ZLG致远电子推出了一套能源智慧管理解决方案。该方案集设备管理、任务调度和数据可视化于一体&#xff0c;不仅实现数据的实时监控与分析&#xff0c;还助力系统节能降耗。 ZLG致远电子能源智慧管理解决方案 在ZLG致…

shallowReactive 与 shallowRef

除了之前的 ref与reactive 之外&#xff0c;Vue3 还准备了另外两个API&#xff0c;也是用来对响应式数据做处理&#xff0c;那就是 shallowReactive 与 shallowRef shallowReactive 文档解释&#xff1a;reactive() 的浅层作用形式&#xff0c;只能定义对象类型的数据。和 r…

pytorh基础知识和函数的学习:图像文件的Tensor

在深度学习和计算机视觉中&#xff0c;将图像文件转换为张量&#xff08;Tensor&#xff09;是数据预处理的重要步骤。Tensor 是一种多维数组&#xff0c;在 PyTorch 中&#xff0c;用于表示和处理数据。 首先&#xff0c;创建一个3*3的图像文件&#xff0c;放大之后&#xff…

终端防火墙软件功能 | 在终端设备上启用防火墙!终端安全小课堂开讲啦

终端设备的安全性直接关系到企业的整体网络安全&#xff0c;随着网络威胁的日益复杂和多样化&#xff0c;启用并合理配置终端防火墙软件是保障终端安全不可或缺的一环。 今天&#xff0c;我们将走进终端安全小课堂&#xff0c;详细解析安企神终端安全管理软件中的防火墙功能&a…

unity Android + WebGL 浏览器打开

1.切换为WebGL平台 2.打包的时候设置 3.放入FHS 手机打开这个链接即可 注意这是在局域网内

c++11异常

一、异常介绍 1、异常作用 异常是一种处理错误的方式&#xff0c;当一个函数发现自己无法处理的错误时就可以抛出异常&#xff0c;让函数的 直接或间接的调用者处理这个错误 2、异常操作 &#xff08;1&#xff09;throw 当问题出现时&#xff0c;程序会抛出一个异常。这是…

darnet 识别检测本地视频 保存本地视频

darnet 识别检测本地视频 保存本地视频 darknet的github下载 darknet的github下载 darknet地址 将这个下载后&#xff0c;保存在catkin_ws的src目录下

C语言 ——— 柔性数组

目录 柔性数组的概念以及定义 柔性数组的特点 柔性数组的使用 柔性数组的概念以及定义 概念&#xff1a; C99中&#xff0c;结构中的最后一个元素允许是未知大小的数组&#xff0c;这就叫柔性数组成员 定义&#xff1a; struct st_type {int i;int a[0]; //柔性数组成员…

rpmbuild构建mysql-boost-5.7.42版本的rpm包

系列文章目录 rpmbuild入门 文章目录 系列文章目录前言一、准备工作1、mysql-5.7.42源码包下载2、准备mycnf配置文件3、mysqld.server配置文件准备4、检查服务器的cmake版本和gcc版本5、服务器安装依赖 二、编译构建0、rpmbuild目录树示例1、spec文件拆分解释2、源码包解压部分…

秋招力扣Hot100刷题总结——堆

1. 数组中的第K个最大元素 题目链接 题目要求&#xff1a;给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) …

使用Jupyter Notebook实现Python编程

目录 1. 安装Anaconda 2. 启动Jupyter Notebook 3. 调试Python代码: 4. 定义一个简单的python类 ​5. 在控制台运行代码,并从命令行接受参数 6. 调用其他py文件中的类 ​7. conda环境切换和迁移 1. 安装Anaconda 到Anaconda官网下载安装包:Download Anaconda Distri…

Android - lock/unlock bootloader

在执行 adb remount 时高版本经常会提示失败 此时就需要对设备的进行解锁操作。记录两个部分&#xff0c;Google解锁和展锐解锁。 目录 一、Google解锁 二、展锐解锁 三、补充跳过按键检测的方案 一、Google解锁 官网介绍的unlock方法如下&#xff1a;锁定/解锁引导加载程序…

并发编程与并发安全

持续更新中 模块序号目录链接前言介绍1前言地址2介绍地址基础知识3计算机网络地址4操作系统地址5Java基础地址6Java并发地址7Java虚拟机地址中间件8Mysql地址9Redis地址10Elasticsearch地址11RabbitMQ地址12RocketMQ地址框架13分布式系统地址14MyBatis地址15Dubbo地址16Spring地…

Java面试题--JVM大厂篇之JVM 大厂面试题及答案解析(3)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到我的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而我的博客&…

如何使用ssm实现基于HTML5的出租车管理系统

TOC ssm126基于HTML5的出租车管理系统jsp 绪论 1.1 选题背景 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。计算机软件可以针对不同行业的营业特点以…

【数据结构5】二叉搜索树(插入、查询、删除)

1 二叉搜索树 1.1 二叉搜索树-插入 1.2 二叉搜索树-查询 1.3 二叉搜索树-删除 1 二叉搜索树 二叉搜索树是一颗二叉树且满足性质:设是二叉树的一个节点。 如果y是x左子树的一个节点&#xff0c;那么y.key< x.key;如果y是x右子树的一个节点&#xff0c;那么y.key > x.key。…

【非常困难】 猿人学web第一届 第10题 js 混淆 - 重放攻击对抗

文章目录 调试干扰第一个 debuggerHook 代码 第二个 debuggerHook 代码 第三个 Function.constructor.prototype 检测Hook 代码 完整的 Hook 代码 接口分析加密参数 m 生成位置加密参数还原加密点扣代码提示_yrxyA\$()var _yrxmEu _yrxWKg(_yrxyHJ...._yrxWKg() let result _…

命令执行漏洞-rce

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 1.1 命令执行漏…

47.x86游戏实战-VEHHOOK封包函数

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

Aiseesoft Mac Video Converter Ultimate:高效多能的视频转换与编辑工具

Aiseesoft Mac Video Converter Ultimate是一款视频转换与编辑软件&#xff0c;以其强大的功能和简单易用的操作界面赢得了广泛好评。该软件不仅支持多种视频格式的转换&#xff0c;还集成了丰富的视频编辑功能&#xff0c;满足了用户多样化的视频处理需求。 核心功能概述 视频…