数学建模--非多项式拟合法的Python实现

目录

  1.算法异同区别

  2.算法核心步骤

  3.算法核心代码

  4.算法效果展示


1.算法异同区别

#*************************************************************************************************************#
方法区别探究
1.对于多项式拟合你需要大致知道这些点的分布,有的时候点比较多就很难进行进一步的联想
2.如果我们采用非多项式拟合的话,我们可以采用最小二乘法的关系来进行进一步的逼近和拟合,最终获得比较合适 的函数的系数即可
#*************************************************************************************************************#

  2.算法核心步骤

#继续研究非多项式拟合方法,我们采用的是scipy中的curve_fit函数来来进行拟合
#curve_fit的函数用法
#curve_fit(fun,x,y)
#其中fun是需要拟合而成的函数模板,x和y分别是拟合数据
#比如给出的点呈现于指数函数的变化方式,所以我们就设定指数函数#具体的算法步骤如下所示:
#1.指数拟合的函数设模板
#2.导入需要拟合的数据
#3.利用curve_fit进行多项式的拟合的
#4.计算拟合函数的y值
#5.进行可视化绘图比较

  3.算法核心代码

#*************************************************************************************************************#
#方法区别探究
#1.对于多项式拟合你需要大致知道这些点的分布,有的时候点比较多就很难进行进一步的联想
#2.如果我们采用非多项式拟合的话,我们可以采用最小二乘法的关系来进行进一步的逼近和拟合,最终获得比较合适的函数的系数即可
#继续研究非多项式拟合方法,我们采用的是scipy中的curve_fit函数来来进行拟合
#curve_fit的函数用法
#curve_fit(fun,x,y)
#其中fun是需要拟合而成的函数模板,x和y分别是拟合数据
#比如给出的点呈现于指数函数的变化方式,所以我们就设定一下函数
#*************************************************************************************************************##**********************************************#
#首先将需要的库和函数进行导入
import sys
import os
import numpy as np
import pylab as plb
import matplotlib as plt
from scipy.optimize import curve_fit
#**********************************************##**********************************************#
#curve_fit的函数用法
#curve_fit(fun,x,y)
#其中fun是需要拟合而成的函数模板,x和y分别是拟合数据
#**********************************************##*************************************************************************************************************#
#1.指数拟合的函数设模板
def fited_fun(x,a,b,c):return np.power(a,x)*b+c
#2.导入需要拟合的数据
x = np.arange(1, 31, 1)
y = np.array([20, 23, 26, 29, 32, 35, 38, 45, 53, 62, 73, 86, 101, 118, 138, 161, 188, 220, 257, 300, 350, 409, 478, 558, 651, 760, 887, 1035, 1208, 1410])
#3.利用curve_fit进行多项式的拟合的
p_xishu,p1=curve_fit(fited_fun,x,y)#p_xishu表示拟合返回的list数组中a,b,c的值#4.计算拟合函数的y值
y_new=[fited_fun(i,p_xishu[0],p_xishu[1],p_xishu[2])for i in x]#5.进行可视化绘图比较
ax0=plb.plot(x,y,'o--',label='OLD VALUES')
ax1=plb.plot(x,y,'*--',label='FITED VALUES')
plb.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0.875))
plb.title('Non-Polynomial Fitting Curve',color='r')
plb.xlabel('x value range',color='r')
plb.ylabel('y value range',color='r')
plb.savefig('C:/Users/Zeng Zhong Yan/Desktop/Non-Polynomial Fitting Curve.png', dpi=200, bbox_inches='tight')
plb.show()
#*************************************************************************************************************#

  4.算法效果展示

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

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

相关文章

Dubbo 接口测试原理及多种方法实践总结

1、什么是 Dubbo? Dubbo 最开始是应用于淘宝网,由阿里巴巴开源的一款优秀的高性能服务框架,由 Java 开发,后来贡献给了 Apache 开源基金会组织。 下面以官网的一个说明来了解一下架构的演变过程,从而了解 Dubbo 的诞…

如何使用SQL系列 之 如何在SQL中使用WHERE条件语句

引言 在结构化查询语言 (SQL)语句中,WHERE子句限制了给定操作会影响哪些行。它们通过定义特定的条件(称为搜索条件)来实现这一点,每一行都必须满足这些条件才能受到操作的影响。 本指南将介绍WHERE子句中使用的通用语法。它还将概述如何在单个WHERE子句…

开了抖店后就可以直播带货了吗?想在抖音带货的,建议认真看完!

我是王路飞。 关于抖店和直播带货的关系,其实很多人经常搞不清楚。 不然的话,也不会有这个问题的出现了:开了抖店后就可以直播带货了吗? 在我看来,这个问题很简单,但在不了解抖音电商和直播带货其中门道…

LeetCode——和为K的子数组(中等)

题目 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的连续子数组的个数 。 示例 1: 输入:nums [1,1,1], k 2 输出:2示例 2: 输入:nums [1,2,3], k 3 输出:2 题解 …

The WebSocket session [x] has been closed and no method (apart from close())

在向客户端发送消息时,session关闭了。 不管是单客户端发送消息还是多客户端发送消息,在发送消息之前判断session 是否关闭 使用 isOpen() 方法

Mysql-DML(数据处理语言)

-- 插入数据 insert into member values(1,张三,21,5000); insert into member(id,name) values(2,李四); insert into member values(3,王五,23,3000) ,(4,纪六,24,4000) ,(5,查七,25,5000); -- 更新(修改数据) 不加限制条件 该字段全部修改 update member set age…

python .gitignore文件配置

logs/ venv/ *.log .idea/ dist/test.py注意:.gitignore最好放在根目录中。如果gitignore放在被忽略的父目录中,那忽略文件就无法生效。 .gitignore规则 .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中&…

Elasticsearch 8.X 可以按照数组下标取数据吗?

1、线上环境问题 老师、同学们,有人遇到过这个问题么,索引中有一个 integer 数组字段,然后通过脚本获取数组下标为1的值作为运行时字段,发现返回的值是乱的,并不是下标为1的值, 具体如下: DELETE my_index …

sql:SQL优化知识点记录(六)

(1)索引优化1 查看一下有没有建立索引: 用到索引中的一个:type中的ref决定访问性能 用到索引中的两个:通过key_len的长度可以看出来,比第一个大一点。或者通过ref:中用到了两个常量const 用到了…

【Android Framework系列】第14章 Fragment核心原理(AndroidX版本)

1 简介 Fragment是一个历史悠久的组件,从API 11引入至今,已经成为Android开发中最常用的组件之一。 Fragment表示应用界面中可重复使用的一部分。Fragment定义和管理自己的布局,具有自己的生命周期,并且可以处理自己的输入事件。…

线程池使用不规范导致线程数大以及@Async的规范使用

文章详细内容来自:线程数突增!领导:谁再这么写就滚蛋! 下面是看完后文章的,一个总结 线程池的使用不规范,导致程序中线程数不下降,线程数量大。 临时变量的接口,通过下面简单的线…

如何合并为pdf文件?合并为pdf文件的方法

在数字化时代,人们越来越依赖电子文档进行信息交流和存储。合并为PDF成为一种常见需求,它能将多个文档合而为一,方便共享和管理。无论是合并多个单页文档,还是将多页文档合并,操作都变得简单高效。那么。如何合并为pdf…

ESP-C3入门24. 使用中断监控GPIO口

ESP-C3入门24. 使用中断监控GPIO口 一、ESP IDF中断概念1. 一些关键概念:2. GPIO 触发方式 二、ESP32 IDF 使用中断来处理 GPIO 输入的步骤1. 引入 ESP32 IDF 头文件:2. 配置 GPIO 引脚:3. 定义中断处理函数:4. 初始化 GPIO 引脚5…

移除链表元素_每日一题

“路虽远,行则将至” ❤️主页:小赛毛 ☕今日份刷题:移除链表元素 题目描述: 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例1&…

真香:Alibaba开源GitHub星标100K微服务架构全彩进阶手册

前言: 微服务架构作为一种高效灵活的应用架构,正在成为企业级应用开发的主流选择。在众多的微服务架构指南中,阿里巴巴开源的GitHub微服务架构全彩进阶手册备受瞩目,其100star更是证明了其在开发者社区中的重要地位。 这本手册汇…

【Yolov5+Deepsort】训练自己的数据集(3)| 目标检测追踪 | 轨迹绘制 | 报错分析解决

📢前言:本篇是关于如何使用YoloV5Deepsort训练自己的数据集,从而实现目标检测与目标追踪,并绘制出物体的运动轨迹。本章讲解的为第三部分内容:数据集的制作、Deepsort模型的训练以及动物运动轨迹的绘制。本文中用到的数…

PHP旅游管理系统Dreamweaver开发mysql数据库web结构php编程计算机网页

一、源码特点 PHP 旅游管理系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 PHP 旅游管理系统 源码下载地址: https://download.csdn.net/download/qq_41…

2.4 Vector<T> 动态数组(随机访问迭代器)

C自学精简教程 目录(必读) 该 Vector 版本特点 这里的版本主要是使用模板实现、支持随机访问迭代器&#xff0c;支持std::sort等所有STL算法。(本文对随机迭代器的支持参考了 复旦大学 大一公共基础课C语言的一次作业) 随机访问迭代器的实现主要是继承std::iterator<std:…

LeetCode 46题:全排列

题目 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2&#xff1a; 输入&#xff1a;…

容器技术简介

引言 随着云计算、大数据、人工智能等技术的不断发展&#xff0c;容器技术作为一种新兴的虚拟化技术&#xff0c;正逐渐成为IT领域的热点。容器技术可以帮助开发者更好地管理、部署和扩展应用程序&#xff0c;提高开发效率和应用程序的可靠性。本文将深入探讨容器技术的概念、…