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

源数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值