幂函数拟合报错及解决办法(matlab工具箱)

发布于:2022-11-04 ⋅ 阅读:(466) ⋅ 点赞:(0)

问题描述

  采用MATLAB、Python对数据拟合时(函数形式如y=1-c*exp(k*x^t)),程序有时能够完美运行,给出你想要的结果,然而有时候竟然报错,运行不出结果,或者给出的结果明显不对,让你时常怀疑电脑是不是中病毒了,😅,为什么交给电脑同样的任务(拟合求参数),电脑还需要根据自身心情来决定是否给你想要的结果?

  昨天,硕士好友王博士同样也遇见这个问题,现分析其具体原因?于此同时,针对疲劳裂纹扩展具体的工程问题,对最小二乘法拟合(疲劳裂纹扩展速率以及应力强度因子)实验数据的基本过程进行简要介绍,具体如下:

拟合结果明显有问题:图中黑色点点为数据点,蓝色为MATLAB工具箱拟合结果

解决办法

  1、修改初始点位置:限制指数 n 的范围可以大大改善该问题


  2、添加方程参数(还未能解释为何添加的参数会改善拟合效果,甚至最后发现添加的参数对拟合函数值基本没影响)

最小二乘法拟合的基本过程

  基于线弹性断裂力学,Paris等学者将疲劳裂纹扩展速率da/dN与裂纹尖端的应力强度因子幅值ΔK联系了起来,例如著名的Walker模型形式为:

  其中,m、b和Cf是需要确定的模型参数,根据实验数据确定模型参数的基本过程为:

  对方程两边取对数可得:


定义如下参数:

方程左右两边误差的平方和 I 可以定义为:

其中 n 是试验数据数,根据最小二乘法定义,误差的平方和 I 取最小值时,下式成立:

即:

进而可以求解方程组得到参数u, v和w,实现实验数据的拟合。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到