关注公众号

关注公众号

手机扫码查看

手机查看

喜欢作者

打赏方式

微信支付微信支付
支付宝支付支付宝支付
×

如何用matlab拟合级配曲线顺便求出中值粒径

2022.11.21

如何用matlab拟合级配曲线?分析了题主给出的数据,其数据能够较好的符合Richards模型,所以该系数拟合问题可以来处理。

1、p系数的初值。

由于该模型表达式为y=p1*(1-p2*exp(-p3*x))^(1/(1-p4)),所以p系数的初值应这样来确定,即p0=[1.01 -0.01 0.01 1.01]

2、自定义Richards模型函数,即

func=inline('p(1)*(1-p(2)*exp(-p(3)*x)).^(1/(1-p(4)))','p','x');

3、使用nlinfit函数,求解p系数。即

[p,R,J] = nlinfit(x,y,func,p0)

4、使用nlparci函数计算参数置信区间。即

ci=nlparci(p,R,J)

5、计算拟合值,即

y1=func(p,x)

6、计算统计量,如R-square、SSE、RMSE

7、使用plot函数,绘制原始数据与拟合数据的对比图。即

plot(x,y,'rs',x,y1,'b')

xlabel("对应占比");ylabel("颗粒直径");

8、计算y1=50时d的值。计算结果为0.045956

9、完善代码运行可以得到如下结果。

1c950a7b02087bf439478296e2d3572c11dfcf22?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto


推荐
关闭