matlab自定义函数拟合散点

article/2025/9/21 4:09:25

假若现在我们有如下的二维散点:

x=1:10;        
y=[99.999 50.499 20.333 10.788 4.8111 2.7500 1.2322 0.4861 0.29501 0.1113498];

在了解这些散点的大致分布之后,我们可以自己定义和其有相同单调性的函数来对散点进行拟合。

看其分布有点像对数函数,也有点像反函数,我们可以自定义函数:

y = a*log(x)+b/x+c;

 两个在(0,+∞)递减的函数加上一个常数,其中散点在x较小的时候比较像对数log,x较大的时候比较像1/x。对于两个函数的系数(即权重),可以通过代码运行得到。

以下为拟合散点的步骤:

函数文件:(beta为三个需要拟合的系数)

function y = volum(beta,x)y = beta(1)*log(x)+beta(2)./x+beta(3);end

m文件:

clc;clear
x=1:10;        
y=[99.999 50.499 20.333 10.788 4.8111 2.7500 1.2322 0.4861 0.29501 0.1113498];
beta=nlinfit(x,y,'volum',[0,0,0])

m文件生成了三个数,就是对应的beta的值

我们尝试一下把生成的自定义函数和散点画到一个图,看看拟合效果

clc;clear
x=1:10;        
y=[99.999 50.499 20.333 10.788 4.8111 2.7500 1.2322 0.4861 0.29501 0.1113498];
beta=nlinfit(x,y,'volum',[0,0,0])
x0 = 0:0.1:10;
y0 =  3.1053*exp(-x0)+123.9659./x0-21.8691;
plot(x0,y0,'b')
hold on
plot(x,y,'*')
xlabel('x')
ylabel('y')

 拟合效果看起来还不错(由于数值太大,容易过拟合)

以上是我所举的一个小例子,介绍了自定义函数拟合有分布规律的离散点的方法


http://chatgpt.dhexx.cn/article/gTC1D50y.shtml

相关文章

如何用matlab拟合二元函数,matlab二元函数拟合怎么设计函数。

matlab二元函数拟合怎么设计函数。 mip版 关注:169 答案:2 悬赏:20 解决时间 2021-01-24 19:12 已解决 2021-01-24 01:01 下面是数据,要求拟合一个二元函数,自变量为a,b。请问在非线性拟合之前怎么设计函数,使其拟合误差最小。很急,请大家帮帮忙。 a\b6.187.58.710.812…

matlab拟合函数 自定义,MATLAB 自定义函数拟合

%自定义拟合函数f(t)a*cos(k*t)*exp(w*t) clc,clear syms t x[0;0.4;1.2;2;2.8;3.6;4.4;5.2;6;7.2;8;9.2;10.4;11.6;12.4;13.6;14.4;15];%列向量 y[1;0.85;0.29;-0.27;-0.53;-0.4;-0.12;0.17;0.28;0.15;-0.03;-0.15;-0.071;0.059;0.08;0.032;-0.015;-0.02]; ffittype(a*cos(k*t…

false函数matlab,ISNUMBER函数使用表达式说明表 matlab拟合函数表达式

ISNUMBER函数使用表达式说明表 matlab拟合函数表达式,【excel助手】今天为大家分享一篇干货知识,如何设置matlab拟合函数表达式,今天的分享角度是从工作中常用的角度谈的,正如标题提到的“ISNUMBER函数使用表达式说明表 matlab拟合函数表达式…

Matlab-函数拟合

文章目录 0. 评价指标1. 工具箱拟合——cftool2. 万能拟合 ——nlinfit3. 多项式拟合 ——polyfit参考 0. 评价指标 一、SSE(和方差) 该统计参数计算的是拟合数据和原始数据对应点的误差的平方和,计算公式如下 SSE越接近于0,说明模型选择和拟合更好&…

MATLAB函数拟合使用

1 函数命令拟合 最常用的函数拟合命令为fit,语法为| [拟合结果 拟合精度]=fit(X数据,Y数据,‘拟合类型’) 其中,具体的拟合类型可以参看帮助文档,也可以使用fittype来自定义新的函数…

MATLAB函数拟合指令,MATLAB拟合函数使用说明

(由于不方便上传公式,有部分直接截图) 2. Polyval函数 对应多项式拟合,多项式求值函数也相当重要,可以通过设定向量,快速定义如下多项式 据此,可以大概猜测到polyval调用的形式了 y = polyval(p,x) 如上所述 [y,delta] = polyval(p,x,S) S即为polyfit函数返回的误差估计,…

基于MATLAB的函数拟合

资源下载地址:https://download.csdn.net/download/sheziqiong/86763950 资源下载地址:https://download.csdn.net/download/sheziqiong/86763950 函数拟合 整体思路 将给定的坐标点分为 6 段部分,即左、左下、下、右、右上、上&#xff0…

【Matlab基础】数据拟合

目录 一、线性拟合 1. 常用辅助函数 2. 多元线性拟合 例子: 二、多项式拟合 三、lsqcurvefit函数 例子1: 例子2: 四、nlinfit非线性拟合 例子1: 例子2: 五、其他拟合函数 lsqnonlin fittype 一、线性拟合…

matlab 简单函数拟合(全)

学习笔记 对数据进行函数拟合有四种方式具体见连接 方法一:多项式拟合polyfit 方法二:工具箱拟合cftool 方法三:指定函数拟合 连接:matlab拟合函数的三种方法_Bily_on的博客-CSDN博客_matlab数据拟合 方法四是而利用regress函…

matlab拟合函数的三种方法

文章目录 方法一:多项式拟合polyfit方法二:工具箱拟合cftool方法三:指定函数拟合 方法一:多项式拟合polyfit x[1 2 3 4 5 6 7 8 9];y[9 7 6 3 -1 2 5 7 20]; P polyfit(x, y, 3) %三阶多项式拟合xi0:.2:10; yi polyval(P, xi)…

获取当前时间戳

获取当前时间戳 //方法 一 System.currentTimeMillis(); //方法 二 Calendar.getInstance().getTimeInMillis(); //方法 三 new Date().getTime(); 获取当前时间 SimpleDateFormat df new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 String date df.…

C# 获取当前时间戳(正确版)

https://www.cnblogs.com/yinmu/p/11228196.html 第一种&#xff1a; /// <summary>/// 获取时间戳/// </summary>/// <returns></returns>public string GetTimeStamp(){TimeSpan ts DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0);return Co…

SQLserver 获取当前时间戳

SQLserver 获取当前时间戳&#xff1a; SELECT DATEDIFF(S,1970-01-01 00:00:00, GETUTCDATE()) SELECT DATEDIFF(S,‘1970-01-01 00:00:00’,GETDATE()) select SYSDATETIME() select GETDATE() select GETUTCDATE() 1.GETUTCDATE是获取格林尼治时间函数 2.GETDATE是获取北…

小程序获取当前时间戳

使用Date.parse(new Date())默认生成的时间戳是以毫秒为单位的。 可以根据业务需求&#xff0c;通过除以1000&#xff0c;来转化为秒。因为生成的时间戳末尾是000&#xff0c;所以不用担心不是整除。 控制台打印 可在js中引用以下代码 var timeStamp Date.parse(new Date()…

LocalDateTime获取当前时间戳

以上都是获取当前时间的时间戳。而要想使用localdateTime获取当前时间&#xff0c;只需要LocalDateTime.now()即可。 输出结果如下&#xff1a;

python获取当前时间戳_python 获取当前时间戳

原博文 2019-01-04 10:42 − #!/usr/bin/python # -*- coding: UTF-8 -*- import time; # 引入time模块 ticks = time.time() print("当前时间戳为:", ticks) 输出: 当前时间戳为: 1459994552.51 &nbsp... 相关推荐 2019-12-06 10:29 − 1.获取当前时间的时…

JS获取当前时间戳与时间戳转日期时间格式

一、获取当前时间的时间戳(三种方式) const t1 new Date().valueOf() // 第一种&#xff0c;推荐 const t2 new Date().getTime() // 第二种&#xff0c;推荐 const t3 Date.parse(new Date()) // 第三种&#xff0c;不推荐&#xff0c;精度差一些注&#xff1a; new Date(…

前端获取当前时间戳的3+2+1种方法

首先说下&#xff0c;三种比较常见的方法 1.Date.parse(new Date()) Date.parse(new Date()) 1656038612000 2.new Date().getTime() new Date().getTime() 1656038636915 3.new Date().valueOf() new Date().valueOf() 1656038660413 两种不常见的方法 1.Date.now() //i…

js获取当前时间、获取当前时间戳、时间与时间戳互转。

1、 JavaScript 获取当前时间戳&#xff1a; 第一种&#xff1a; var timestamp Date.parse(new Date()); console.log(timestamp); // 1622427159000第二种&#xff1a; var timestamp (new Date()).valueOf(); console.log(timestamp); // 1622427218359第三种&#xff1…

Python中tqdm模块的用法

参考 python的Tqdm模块 - 云社区 - 腾讯云 一、简介 tqdm是Python中专门用于进度条美化的模块&#xff0c;通过在非while的循环体内嵌入tqdm&#xff0c;可以得到一个能更好展现程序运行过程的提示进度条&#xff0c;本文就将针对tqdm的基本用法进行介绍。 二、基本用法 tqd…