纯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数据,希望通过这些数据点做出近似的多项式曲线:YnX^2mXc 其中多项式最高次数可调,返回各个参数及曲线的拟合度R^2 二、函数实现 参数中的order为设置的多项式最高次次数,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#编程中,变量和参数是构建程序逻辑的基础。本篇博客将深入探讨C#中的变量作用域、参数传递方式、以及一些高级特性,如in、ref、out参数,params修饰符,可选参数和命名参数等。 变量作用域 在C#中,变量的作用域分为…...
CentOS7.9部署安装OpenGauss 5.0.2企业版
1、更新系统: yum update -y 2、更改主机名: hostnamectl set-hostname opendb01 3、关闭透明页: echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag# 加入开机自启动 echo …...
java基础-chapter15(io流)
io流:存储和读取数据的解决方案 I:input O:output io流的作用:用于读写数据(本地文件,网络) io流按照流向可以分为: 输出流:程序->文件 输入流:文件->程序 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;-- 插入唯一的记录(每个title最…...
MySQL基础索引知识【索引创建删除 | MyISAM InnoDB引擎原理认识】
博客主页:花果山~程序猿-CSDN博客 文章分栏:MySQL之旅_花果山~程序猿的博客-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 一,索引用…...
SJ601-II垂直法阻燃性能测试仪
一、主要用途 主要用于有阻燃要求的纺织品如机织物、针织物、涂层产品、层压产品、服装织物、装饰织物、帐篷织物、窗帘幕布、建材装饰织物等材料阻燃性能的测定。并用于窗帘幕布阻燃等级的测定和防火封堵材料的型式过证。 二、仪器特征 1、脉冲自动点火,安全可靠…...
瑞吉外卖项目学习笔记(二)后台系统的员工管理业务开发
一、完善登录功能 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 模型外描边效果
效果展示: 下载链接...
CRLF注入漏洞
1.CRLF注入漏洞原理 Nginx会将 $uri进行解码,导致传入%0a%0d即可引入换行符,造成CRLF注入漏洞。 执行xss语句 2.漏洞扩展 CRLF 指的是回车符(CR,ASCII 13,\r,%0d) 和换行符(LF,ASCII 10,\n&am…...
理解接口回调及其在 RabbitMQ 中的实际运用
介绍 接口回调是一种常见的编程模式,它在异步编程中发挥着重要作用。本文将通过一个简单的示例介绍接口回调的概念和原理,并探讨它在 RabbitMQ 中的实际应用。 接口回调的概念 接口回调是一种编程模式,用于在异步编程中实现回调机制。它允许…...
大模型日报2024-05-31
大模型日报 2024-05-31 大模型资讯 Anthropic揭示Claude大语言模型的内部机制 摘要: 研究人员将大语言模型的活动模式与特定概念关联起来,并展示了他们可以通过调整这些模式来控制AI模型的行为。 Mistral AI开源新款代码语言模型Codestral 摘要: 人工智能初创公司Mi…...
HarmonyOS 鸿蒙DevEco:导入无法运行提示Sync failed
场景:导入官网下载的案例后导入发现无法运行模拟机,Notifications提示Sync failed... 解决:查看Cause发现是版本问题,通过修改相关内容来解决该问题 1、打开案例地址找到hvigor文件夹 2、打开hvigor-config.json5,将&…...
kafka的安装
windows下kafka的安装 【Kafka】Windows下安装Kafka(图文记录详细步骤)_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站热血编程系列,主要是复习双指针sum写法、重载比较运算符 class Solution {public: vec…...
springboot+vue 社区养老服务系统
Springbootvue社区居家养老服务系统,数据库mysql,mybatis框架,有可视化页面。 功能: 用户管理 养老服务管理 护理人员管理 服务类型管理 健康状况管理 社区管理 服务区管理 娱乐资讯管理 咨询分类管理 反馈建议 系统简历管理 轮播…...
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流解码,并推送给前端实现播放实时流,可以使用一些流媒体处理库,比如JavaCV或者FFmpeg等。以下是一个简单的示例代码: 1.控制层方面的 根据视频rtsp流链接打开转换,通过响应写出流到前台使用flvjs播…...
OpenClaw自动化测试框架:百川2-13B驱动的CI/CD辅助方案
OpenClaw自动化测试框架:百川2-13B驱动的CI/CD辅助方案 1. 为什么选择OpenClaw做测试自动化 去年我在重构一个中型前端项目时,遇到了测试覆盖率不足的老问题。手动补测试用例不仅耗时,还经常遗漏边界条件。当我尝试用传统测试生成工具时&am…...
Vue 2 中文文档:跨越语言鸿沟的技术民主化之旅
Vue 2 中文文档:跨越语言鸿沟的技术民主化之旅 【免费下载链接】v2.cn.vuejs.org 🇨🇳 Chinese translation for v2.vuejs.org 项目地址: https://gitcode.com/gh_mirrors/v2c/v2.cn.vuejs.org 你是否曾因语言障碍而错失了优秀技术框架…...
洛谷 P1833:樱花 ← 混合背包(01 + 完全 + 多重)
【题目来源】 https://www.luogu.com.cn/problem/P1833 【题目描述】 爱与愁大神后院里种了 n 棵樱花树,每棵都有美学值 Ci(0<Ci≤200)。爱与愁大神在每天上学前都会来赏花。爱与愁大神可是生物学霸,他懂得如何欣赏樱花:一种樱花树看一遍…...
告别手推雅可比!用Ceres自动求导搞定SLAM中的BA优化(附完整代码)
告别手推雅可比!用Ceres自动求导搞定SLAM中的BA优化(附完整代码) 在视觉SLAM系统的开发中,Bundle Adjustment(BA)优化是提升定位与建图精度的关键环节。传统实现需要手动推导复杂的雅可比矩阵,不…...
如何用SVGnest提升材料利用率:从问题到解决方案的完整指南
如何用SVGnest提升材料利用率:从问题到解决方案的完整指南 【免费下载链接】SVGnest An open source vector nesting tool 项目地址: https://gitcode.com/gh_mirrors/sv/SVGnest 制造业材料浪费的隐形成本:您的企业是否正在损失30%利润ÿ…...
别再只盯着GNSS了!用移远EC20模组实现基站定位的完整配置流程(含免费Token申请)
移远EC20模组基站定位实战:从零配置到室内场景精准落地 在物联网设备定位领域,GNSS卫星定位长期占据主导地位,但鲜为人知的是,像移远EC20这样的LTE模组还隐藏着一个被低估的功能——基站定位。当你的智能水表安装在地下室、共享设…...
深度解析DiffSinger:基于扩散模型的AI歌声合成技术革命
深度解析DiffSinger:基于扩散模型的AI歌声合成技术革命 【免费下载链接】DiffSinger 项目地址: https://gitcode.com/gh_mirrors/dif/DiffSinger 在当今AI音乐创作领域,DiffSinger歌声合成技术正引领着一场声音生成的技术革命。这个由OpenVPI维护…...
AR.js实战指南:如何在Web浏览器中构建高效增强现实应用
AR.js实战指南:如何在Web浏览器中构建高效增强现实应用 【免费下载链接】AR.js Image tracking, Location Based AR, Marker tracking. All on the Web. 项目地址: https://gitcode.com/gh_mirrors/arj/AR.js 在移动设备普及的今天,增强现实&…...
OpenClaw安全加固:Qwen3.5-9B操作权限的4层防护
OpenClaw安全加固:Qwen3.5-9B操作权限的4层防护 1. 为什么需要安全加固? 上周我在用OpenClaw自动处理一份包含客户联系方式的Excel表格时,突然意识到一个问题:如果AI助手误操作删除了关键文件怎么办?更可怕的是&…...
**发散创新:用Python + ROS2实现多机器人协同路径规划与避障控制**在现代机器人系统中,**
发散创新:用Python ROS2实现多机器人协同路径规划与避障控制 在现代机器人系统中,多机器人协同控制已成为智能仓储、物流配送和工业自动化的核心技术之一。本文将带你深入一个真实可运行的案例——使用 Python 语言结合ROS2(Robot Operating…...
