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

问题描述

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

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

幂函数拟合报错及解决办法(matlab工具箱)_第1张图片

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

解决办法

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

幂函数拟合报错及解决办法(matlab工具箱)_第2张图片
  2、添加方程参数(还未能解释为何添加的参数会改善拟合效果,甚至最后发现添加的参数对拟合函数值基本没影响)

幂函数拟合报错及解决办法(matlab工具箱)_第3张图片

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

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

幂函数拟合报错及解决办法(matlab工具箱)_第4张图片

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

  对方程两边取对数可得:


定义如下参数:

幂函数拟合报错及解决办法(matlab工具箱)_第5张图片

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

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

幂函数拟合报错及解决办法(matlab工具箱)_第6张图片

即:

幂函数拟合报错及解决办法(matlab工具箱)_第7张图片

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

你可能感兴趣的:(力学所期间的工作内容,西工大期间的工作内容,matlab,数据拟合,matlab工具箱)