当前位置: 首页 > news >正文

纯C++做多项式拟合

一、多项式拟合用途

当前有一组对应的x、y数据,希望通过这些数据点做出近似的多项式曲线:Y=···+nX^2+mX+c
其中多项式最高次数可调,返回各个参数及曲线的拟合度R^2

二、函数实现

参数中的order为设置的多项式最高次次数,coefficients为各次的系数

double polynomialFit(vector<double>& x, vector<double>& y, unsigned char order, vector<double>& coefficients){if (x.size() <= order || y.size() <= order) {return 0;}// 构建矩阵A和向量bint m = x.size();int n = order + 1;vector<vector<double>> A(n, vector<double>(n, 0));vector<double> b(n, 0);for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {for (int k = 0; k < m; k++) {A[i][j] += pow(x[k], i+j);}}for (int k = 0; k < m; k++) {b[i] += y[k] * pow(x[k], i);}}n = A.size();for (int i = 0; i < n; i++) {// 列主元素消去int maxRow = i;double maxVal = fabs(A[i][i]);for (int k = i + 1; k < n; k++) {if (fabs(A[k][i]) > maxVal) {maxVal = fabs(A[k][i]);maxRow = k;}}if (maxRow != i) {std::swap(A[i], A[maxRow]);std::swap(b[i], b[maxRow]);}// 消元过程for (int k = i + 1; k < n; k++) {double factor = A[k][i] / A[i][i];for (int j = i; j < n; j++) {A[k][j] -= factor * A[i][j];}b[k] -= factor * b[i];}}// 回代求解vector<double> result(n, 0);for (int i = n - 1; i >= 0; i--) {double temp = b[i];for (int j = i + 1; j < n; j++) {temp -= A[i][j] * result[j];}result[i] = temp / A[i][i];}coefficients = result;double SSR=0;double SST=0;double sumY = std::accumulate(std::begin(y),std::end(y),0.0);double avgY = sumY/y.size();for(uint16_t i=0;i<y.size();i++){double actY=0;for(unsigned char j=0;j<=order;j++){actY+=pow(x[i],j)*result[j];}SSR += pow(actY-y[i],2);SST += pow(y[i]-avgY,2);}double R = 1-SSR/SST;return R;
}

三、函数调用

vector<double> xs{0,0,0,0};
vector<double> selectX;
vector<double> selectY;
selectX.push_back(..);
...
selectY.push_back(..);
...
double R = polynomialFit(selectX,selectY,3,xs);

相关文章:

纯C++做多项式拟合

一、多项式拟合用途 当前有一组对应的x、y数据&#xff0c;希望通过这些数据点做出近似的多项式曲线&#xff1a;YnX^2mXc 其中多项式最高次数可调&#xff0c;返回各个参数及曲线的拟合度R^2 二、函数实现 参数中的order为设置的多项式最高次次数&#xff0c;coefficients为…...

vulnhub靶场之FunBox-9

一.环境搭建 1.靶场描述 Its a box for beginners, but not easy. Gather careful !!! Hint: Dont waste your time ! Every BruteForce-Attack at all ports can be stopped after 1500 trys per account. Enjoy the game and WYSIWYG ! This works better with VirtualBox…...

C# 变量与参数详解

在C#编程中&#xff0c;变量和参数是构建程序逻辑的基础。本篇博客将深入探讨C#中的变量作用域、参数传递方式、以及一些高级特性&#xff0c;如in、ref、out参数&#xff0c;params修饰符&#xff0c;可选参数和命名参数等。 变量作用域 在C#中&#xff0c;变量的作用域分为…...

CentOS7.9部署安装OpenGauss 5.0.2企业版

1、更新系统: yum update -y 2、更改主机名&#xff1a; hostnamectl set-hostname opendb01 3、关闭透明页&#xff1a; echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag# 加入开机自启动 echo …...

java基础-chapter15(io流)

io流&#xff1a;存储和读取数据的解决方案 I:input O:output io流的作用&#xff1a;用于读写数据&#xff08;本地文件,网络&#xff09; io流按照流向可以分为&#xff1a; 输出流&#xff1a;程序->文件 输入流&#xff1a;文件->程序 io流按照操作文件…...

mysql去除重复数据

需求描述 doc表有很多重复的title,想去除掉重复的记录 表结构 CREATE TABLE doc (id INT PRIMARY KEY,title VARCHAR(255),content TEXT );去重SQL -- 创建临时表 CREATE TEMPORARY TABLE temp_doc AS SELECT * FROM doc WHERE 10;-- 插入唯一的记录&#xff08;每个title最…...

MySQL基础索引知识【索引创建删除 | MyISAM InnoDB引擎原理认识】

博客主页&#xff1a;花果山~程序猿-CSDN博客 文章分栏&#xff1a;MySQL之旅_花果山~程序猿的博客-CSDN博客 关注我一起学习&#xff0c;一起进步&#xff0c;一起探索编程的无限可能吧&#xff01;让我们一起努力&#xff0c;一起成长&#xff01; 目录 一&#xff0c;索引用…...

SJ601-II垂直法阻燃性能测试仪

一、主要用途 主要用于有阻燃要求的纺织品如机织物、针织物、涂层产品、层压产品、服装织物、装饰织物、帐篷织物、窗帘幕布、建材装饰织物等材料阻燃性能的测定。并用于窗帘幕布阻燃等级的测定和防火封堵材料的型式过证。 二、仪器特征 1、脉冲自动点火&#xff0c;安全可靠…...

瑞吉外卖项目学习笔记(二)后台系统的员工管理业务开发

一、完善登录功能 1.1 问题分析 1.2 代码实现 package com.itheima.reggie.filter;//这是一个过滤器类 //登录检查过滤器import com.alibaba.fastjson.JSON; import com.itheima.reggie.common.R; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf…...

Unity OutLine 模型外描边效果

效果展示&#xff1a; 下载链接...

CRLF注入漏洞

1.CRLF注入漏洞原理 Nginx会将 $uri进行解码&#xff0c;导致传入%0a%0d即可引入换行符&#xff0c;造成CRLF注入漏洞。 执行xss语句 2.漏洞扩展 CRLF 指的是回车符(CR&#xff0c;ASCII 13&#xff0c;\r&#xff0c;%0d) 和换行符(LF&#xff0c;ASCII 10&#xff0c;\n&am…...

理解接口回调及其在 RabbitMQ 中的实际运用

介绍 接口回调是一种常见的编程模式&#xff0c;它在异步编程中发挥着重要作用。本文将通过一个简单的示例介绍接口回调的概念和原理&#xff0c;并探讨它在 RabbitMQ 中的实际应用。 接口回调的概念 接口回调是一种编程模式&#xff0c;用于在异步编程中实现回调机制。它允许…...

大模型日报2024-05-31

大模型日报 2024-05-31 大模型资讯 Anthropic揭示Claude大语言模型的内部机制 摘要: 研究人员将大语言模型的活动模式与特定概念关联起来&#xff0c;并展示了他们可以通过调整这些模式来控制AI模型的行为。 Mistral AI开源新款代码语言模型Codestral 摘要: 人工智能初创公司Mi…...

HarmonyOS 鸿蒙DevEco:导入无法运行提示Sync failed

场景&#xff1a;导入官网下载的案例后导入发现无法运行模拟机&#xff0c;Notifications提示Sync failed... 解决&#xff1a;查看Cause发现是版本问题&#xff0c;通过修改相关内容来解决该问题 1、打开案例地址找到hvigor文件夹 2、打开hvigor-config.json5&#xff0c;将&…...

kafka的安装

windows下kafka的安装 【Kafka】Windows下安装Kafka&#xff08;图文记录详细步骤&#xff09;_windows安装kafka-CSDN博客 kafka生产消息 kafka消费消息...

代码随想录算法训练营第36期DAY45

DAY45 1两数之和 [https://www.bilibili.com/video/BV1pt421u7qG/?spm_id_from333.880.my_history.page.click&vd_sourcebaa5f3043be10f96febc0c68c5983df5] 出自B站热血编程系列&#xff0c;主要是复习双指针sum写法、重载比较运算符 class Solution {public: vec…...

springboot+vue 社区养老服务系统

Springbootvue社区居家养老服务系统&#xff0c;数据库mysql&#xff0c;mybatis框架&#xff0c;有可视化页面。 功能&#xff1a; 用户管理 养老服务管理 护理人员管理 服务类型管理 健康状况管理 社区管理 服务区管理 娱乐资讯管理 咨询分类管理 反馈建议 系统简历管理 轮播…...

AI 赋能前端 -- 文本内容概要生成

幸福不在于你获得了什么,而在于你比他人多获得了什么 是比较出来的 大家好,我是柒八九。一个专注于前端开发技术/Rust及AI应用知识分享的Coder 此篇文章所涉及到的技术有 OpenAILangChainRust/WebAssemblyWeb Workerreact+ts+vite配置环境变量(env)因为,行文字数所限,有些概…...

orin部署tensorrt、cuda、cudnn、pytorch、onnx

绝大部分参考https://blog.csdn.net/qq_41336087/article/details/129661850 非orin可以参考https://blog.csdn.net/JineD/article/details/131201121 报错显卡驱动安装535没法安装、原始是和l4t-cuda的部分文件冲突 Options marked [*] produce a lot of output - pipe it t…...

使用javacv对摄像头视频转码并实现播放

要实现Java接受RTSP流解码&#xff0c;并推送给前端实现播放实时流&#xff0c;可以使用一些流媒体处理库&#xff0c;比如JavaCV或者FFmpeg等。以下是一个简单的示例代码&#xff1a; 1.控制层方面的 根据视频rtsp流链接打开转换&#xff0c;通过响应写出流到前台使用flvjs播…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题&#xff0c;说是客户的导入文件模版想支持部分导入内容的下拉选&#xff0c;于是我就找了easyexcel官网寻找解决方案&#xff0c;并没有找到合适的方案&#xff0c;没办法只能自己动手并分享出来&#xff0c;针对Java生成Excel下拉菜单时因选项过多导…...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时&#xff0c;需要使用外部低速晶振...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...