Matlab数据处理:用离散数据根据自定义多变量非线性方程拟合解析方程求取参数

这篇具有很好参考价值的文章主要介绍了Matlab数据处理:用离散数据根据自定义多变量非线性方程拟合解析方程求取参数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题:已知xlsx表格[X,Y,Z]的离散取值,希望用Matlab数据处理:用离散数据根据自定义多变量非线性方程拟合解析方程求取参数 来拟合,用matlab求得[C1,C2,C3,C5,C6]的值

解答:

clc;
clear;
close all;
%加载数据(注意为方便读取,data.xlsx数据已经手动处理)
data = xlsread('modify_data.xlsx');
%x为时间h,y为压强Mpa,z=%
x=data(:,1);y=data(:,2);z=data(:,3);
%采用匿名函数按照离散数据以给定函数形式拟合解析式,x、y自变量,y因变量,Ci为参数
myfit=fittype( @(C1,C2,C3,C5,C6,x,y) C1.*(y.^C2).*(x.^C3)+C5.*(y.^C6).*x, ...
        'independent', {'x', 'y'}, ...
        'dependent', 'z' );
%拟合数据,特别注意'StartPoint'需要适当选取[C1,...,C6]否则不收敛,
%利用curvefittingtool工具箱不断调整得出参数起始点可取[-0.0700,0.2750,0.5450,-3.9575,0.9949],使得拟合收敛
[coe,gof] = fit([x,y],z,myfit,'StartPoint',[-0.0700,0.2750,0.5450,-3.9575,0.9949]);
coe
gof
%绘图
plot(coe, [x y], z);:

运行结果:

General model:
     coe(x,y) = C1.*(y.^C2).*(x.^C3)+C5.*(y.^C6).*x
     Coefficients (with 95% confidence bounds):
       C1 =   2.402e-06  (-9.316e-07, 5.736e-06)
       C2 =       1.915  (1.705, 2.125)
       C3 =     0.08906  (0.06933, 0.1088)
       C5 =  -9.081e-08  (-2.133e-06, 1.952e-06)
       C6 =      0.9633  (-2.509, 4.436)


gof = 

  包含以下字段的 struct:

           sse: 2.4940
       rsquare: 0.8668
           dfe: 199
    adjrsquare: 0.8641
          rmse: 0.1119

Matlab数据处理:用离散数据根据自定义多变量非线性方程拟合解析方程求取参数

 备注:

1.rsquare=0.8668认为接近1,拟合效果不错

2.fill函数的startpoint如何设置[C1,...C6]得到一个收敛点?(我找了没找到什么设置startpoint好方法,摸索用如下方法找到了一个还可接受结果)

利用curvefitting工具箱里的custom equtation,在fit options手动改变C1到C6数值(二分法思想:先很大正数后很大负数,初步判定Ci的正负,然后除2选择中间值或再除2,观察拟合趋势决定找寻方向),观察拟合效果,并观察左边是否converge收敛和warning警告rsquare为正,差不多到收敛和requare到0.6左右之后停止手动操作。接下来可以编写循环微调参数步长,筛选出更大的rsquare,类似这样:文章来源地址https://www.toymoban.com/news/detail-509873.html

for i=1:100
    [coe,gof] = fit([x,y],z,myfit,'StartPoint',[0.001664,0.0231+0.0001*i,-0.007028,-0.9979,-0.0068,-0.5807,-1.013,-0.08-3.5852e-04]);
    if gof.rsquare>0.6
        fprintf('i=%d,gof.requare=%f\n',i,gof.rsquare);
    end
    
end

到了这里,关于Matlab数据处理:用离散数据根据自定义多变量非线性方程拟合解析方程求取参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据预处理matlab matlab数据的获取、预处理、统计、可视化、降维

    1.1 从Excel中获取 使用readtable() 例1: 使用 spreadsheetImportOptions(Name,Value) 初步确定导入信息, 再用 opts.Name=Value 的格式添加。 例2: 先初始化 spreadsheetImportOptions 对象, 再用 opts.Name=Value 的格式逐个添加。 例3: 将导入信息存到变量里, 再使用 spreadsheetImportOptions(Name,Value)

    2024年02月15日
    浏览(56)
  • 数据预处理 matlab & 数据质量评估

    知乎 数据类型转换等 Mathworks 数据预处理 概念辨析 配对是 同一批样本的前后 比较,独立是 两批不同样本 的的比较 独立样本是指我们得到的样本是相互独立的。配对样本就是一个样本中的数据与另一个样本中的数据相对应的两个样本。配对样本可以消除由于样本指定的不公

    2024年01月20日
    浏览(52)
  • Matlab学习(一)数据处理

    Matlab学习(一)数据处理 最近写论文可能会需要用到matlab,所以刚刚开始学习,记录一下。 matlab是一种高级技术计算语言和交互式环境,广泛用于工程、科学和金融等领域。matlab可以进行数值计算、可视化和编程等操作,并且拥有许多预先编写好的工具箱,方便用户快速完

    2024年02月06日
    浏览(43)
  • MatLab简单数据处理拟合

    简单回归方程拟合与数据处理 方法一使用曲线拟合器拟合(可以看到更多数据) 1Exell表格输入数据/工作区创建变量自行输入x,y(只需简单右键点击) 2点开APP曲线拟合器,选择数据后软件自动拟合曲线,可以选择多项式,指数,高斯,傅里叶类型拟合 自动生成拟合曲线 将参数

    2024年02月15日
    浏览(43)
  • 数据预处理matlab

    1.1 从Excel中获取 使用readtable() 例1: 使用 spreadsheetImportOptions(Name,Value) 初步确定导入信息, 再用 opts.Name=Value 的格式添加。 例2: 先初始化 spreadsheetImportOptions 对象, 再用 opts.Name=Value 的格式逐个添加。 例3: 将导入信息存到变量里, 再使用 spreadsheetImportOptions(Name,Value)

    2024年02月07日
    浏览(54)
  • 数据处理 | Matlab实现Lichtenberg算法的机器学习数据选择

    效果一览 基本介绍 Matlab实现Lichtenberg算法的机器学习数据选择 Lichtenberg算法适用于回归和分类数据集,并根据数量和最大覆盖范围选择最佳算法。Lichtenberg算法(Lichtenberg algorithm,LA)是由Pereira等人于2021年提出的一种新型智能优化算法,它是受闪电传播这一物理现象启发而产

    2024年02月16日
    浏览(51)
  • MATLAB与大数据:如何应对海量数据的处理和分析

      在当今数字化时代,大数据已经成为了各行各业的核心资源之一。海量的数据源源不断地涌现,如何高效地处理和分析这些数据已经成为了许多企业和研究机构面临的重要挑战。作为一种功能强大的数学软件工具,MATLAB为我们提供了一种高效、灵活的方式来处理和分析大数

    2024年02月09日
    浏览(47)
  • Matlab:如何读取并处理txt数据?

    Matlab:如何读取并处理txt数据? 在Matlab中,读取和处理文本文件是非常常见的任务。txt文件是最常见的文本文件格式之一,可以包含各种类型的数据。此处介绍在Matlab中如何读取和处理txt文件。 导入txt文件 Matlab提供了多种方法来导入txt文件,其中最常用的方法是使用textsc

    2024年02月07日
    浏览(55)
  • 使用ETLCloud强大的自定义规则实现自定义数据处理算法

    实时数据处理规则有什么作用 ? 在大数据中的实时数据采集、ETL批量数据传输过程中很多数据处理过程以及数据质量都希望实时进行处理和检测并把不符合要求的脏数据过滤掉或者进行实时的数据质量告警等。 在数据仓库建设过程中,每家企业的数据处理过程中肯定会有一

    2024年02月08日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包