当前位置:   article > 正文

matlab分段函数最优值,分段函数非线性拟合求最优分段点

分段拟合散点,如何自动找到最佳的分段点

小弟在物料加载-卸载试验中得到物料力-位移离散点(附件1),现已知该离散点群可以通过三个函数分别表示(分界点a1是唯一待求系数), 欲通过最小二乘法拟合求a1使得拟合偏差最小。求大神指点,谢谢!

M函数:

function  F  = fun( a,xdata )

x(1,:)=xdata(1,:);% x(1,:)为位移量

x(2,:)=xdata(2,:); % x(2,:)为加载/卸载标记量,分别用+1和-1表示

if x(1,:)<=a(1)&&x(2,:)>=0.0

F= 4.0/3.0*6.9e8*sqrt(0.005)*x(1,:).^1.5; %第一阶段

else if x(1,:)>a(1)&&x(2,:)>=0.0

F=4.0/3.0*6.9e8*sqrt(0.005)*a(1)^1.5+2.0*6.9e8*sqrt(0.005*a(1))*(x(1,:)- a(1)); %第二阶段

else

F_Yield= 4.0/3.0*6.9e8*sqrt(0.005)*a(1)^1.5;

F_MAX=F_Yield+2.0*6.9e8*sqrt(0.005*a(1))*(0.0002- a(1));

F_EMAX=4.0/3.0*6.9e8*sqrt(0.005)*0.0002;

R_p=4.0*6.9e8/3.0/F_MAX*((2.0*F_EMAX+F_Yield)/(4.0*6.9e8*sqrt(a(1)/0.005)))^1.5;

X_residual=0.0002-(3.0*F_EMAX/4.0/6.9e8/sqrt(R_p))^1.5;

F=(4.0/3.0*6.9e8*sqrt(R_p)*(x(1,:)-X_residual)).^1.5; %第三阶段

end

end

end

命令:

x1=[…]; %附件

x2=[…]; %附件

ydata=[…]; %附件

xdata=[x1;x2];

a0=0.00005;

[a,resnorm]=lsqcurvefit('fun',a0,xdata,ydata);

图1.png

(29.31 KB, 下载次数: 3)

2017-9-19 09:18 上传

442a53943febe9465fc072b4fbe10813.gif

b2a5a3e0dcc7d508e00275fe42fce1b5.gif

力-位移曲线

1c661161fb8e1367952e49e3f544a5c2.png

5724a1379ceb16a514510c7aa4f77048.gif

2017-9-19 09:20 上传

点击文件名下载附件

11.22 KB, 下载次数: 2

源数据

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/90256
推荐阅读
相关标签
  

闽ICP备14008679号