采用MATLAB、Python对数据拟合时(函数形式如y=1-c*exp(k*x^t)),程序有时能够完美运行,给出你想要的结果,然而有时候竟然报错,运行不出结果,或者给出的结果明显不对,让你时常怀疑电脑是不是中病毒了,,为什么交给电脑同样的任务(拟合求参数),电脑还需要根据自身心情来决定是否给你想要的结果?
昨天,硕士好友王博士同样也遇见这个问题,现分析其具体原因?于此同时,针对疲劳裂纹扩展具体的工程问题,对最小二乘法拟合(疲劳裂纹扩展速率以及应力强度因子)实验数据的基本过程进行简要介绍,具体如下:
1、修改初始点位置:限制指数 n 的范围可以大大改善该问题
2、添加方程参数(还未能解释为何添加的参数会改善拟合效果,甚至最后发现添加的参数对拟合函数值基本没影响)
基于线弹性断裂力学,Paris等学者将疲劳裂纹扩展速率da/dN与裂纹尖端的应力强度因子幅值ΔK联系了起来,例如著名的Walker模型形式为:
其中,m、b和Cf是需要确定的模型参数,根据实验数据确定模型参数的基本过程为:
对方程两边取对数可得:
方程左右两边误差的平方和 I 可以定义为:
其中 n 是试验数据数,根据最小二乘法定义,误差的平方和 I 取最小值时,下式成立:
即:
进而可以求解方程组得到参数u, v和w,实现实验数据的拟合。