24小时热门版块排行榜    

查看: 1663  |  回复: 6

mathislhc

新虫 (正式写手)

[求助] 求大神告知Matlab最小二乘法拟合分布函数 已有2人参与

看一篇文献

其中,腐蚀损伤数据的常见分布函数有:对数正态、极值I型Gumbel分布和三参数威布尔分布;

现在只知道以上三种分布函数F(x)和腐蚀深度x

然后通过最小二乘法可以估计参数(位置参数、尺度参数和形状参数)

但小白不知道F(x)是多少啊?

Matlab 怎么拟合呢???

直接用webfit 拟合腐蚀深度,估计的参数也和文献不一样啊...

求指导!!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

FMStation

至尊木虫 (知名作家)

【答案】应助回帖

感谢参与,应助指数 +1
https://www.mathworks.com/exampl ... ng-the-fit-function
Fit Exponential Models Using the fit Function

https://www.mathworks.com/examples/curvefitting
Curve Fitting Toolbox
2楼2016-11-16 10:39:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mathislhc

新虫 (正式写手)

引用回帖:
2楼: Originally posted by FMStation at 2016-11-16 10:39:08
https://www.mathworks.com/examples/curvefitting/mw/curvefit-ex72685292-fit-exponential-models-using-the-fit-function
Fit Exponential Models Using the fit Function

https://www.mathworks.com/exampl ...

感谢!!

发自小木虫IOS客户端
3楼2016-11-16 12:14:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mathislhc

新虫 (正式写手)

引用回帖:
2楼: Originally posted by FMStation at 2016-11-16 10:39:08
https://www.mathworks.com/examples/curvefitting/mw/curvefit-ex72685292-fit-exponential-models-using-the-fit-function
Fit Exponential Models Using the fit Function

https://www.mathworks.com/exampl ...

大神!不知道F(x) 也就是不知道(x,F(x))

怎么拟合呢??
4楼2016-11-16 19:48:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mathislhc

新虫 (正式写手)

不知道F(x)怎么拟合???
5楼2016-11-18 19:35:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huab1984666

新虫 (著名写手)

【答案】应助回帖

以对正态分布为例
以一种情况:损伤系数X与一个自标量(例如温度T)
目标函数:Mifit.m
function f=Myfit(beta)
    data=load('XX.txt');
    T=data(:,1);
    x=data(:,2);
%%
mu=beta(1);
sigma=beta(2)
FX=lognpdf(T,mu,sigma)
PX=(FX-x).^2
MT= sum(PX);
%% F-test检验参数
f=MT./(length(T)-2); %2为未知参数的个数;

优化拟合工具:以模式搜索法patternsearch为例
lb=[0 0]; %未知参数mu和sigma最小估计
ub=[inf inf];%未知参数mu和sigma最大估计
options =  psoptimset('Display','Iter','MaxIter',500,'TolFun',1e-6,'TolX',1e-6,'CompleteSearch','on');
beta0=[0.76];
[beta,fval,exitflag,output] = patternsearch(@Mifit,beta0,[],[],[],[],lb,ub,options );
beta0=beta;
[beta,fval,exitflag,output] = patternsearch(@Mifit,beta0,[],[],[],[],lb,ub,options );
%%
mu=beta(1);
sigma=beta(2);
%%
data=load('XX.txt');
    T=data(:,1);
    x=data(:,2);
FX=lognpdf(T,mu,sigma)
plot(T,data,'r.',T,FX,'k-');


第二种情况:之检验损伤系数X的最佳分布;X的数据做图为Y轴
以log-normal分布为例

   你用“”help lognfit“” 就知道怎么用了

parmhat = lognfit(data)
[parmhat,parmci] = lognfit(data)
[parmhat,parmci] = lognfit(data,alpha)
[...] = lognfit(data,alpha,censoring)
[...] = lognfit(data,alpha,censoring,freq)
[...] = lognfit(data,alpha,censoring,freq,options);
其中data就是你的X值,alpha就是代表置信的α值
春风又绿江南岸,明月何时照我还。
6楼2016-11-21 09:28:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huab1984666

新虫 (著名写手)

ub=[inf inf];%未知参数mu和sigma最大估计
options =  psoptimset('Display','Iter','MaxIter',500,'TolFun',1e-6,'TolX',1e-6,'CompleteSearch','on');
beta0=[0.76];
这里的beta0是迭代处置
例如beta0=[1.8 0.02]
春风又绿江南岸,明月何时照我还。
7楼2016-11-21 09:30:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 mathislhc 的主题更新
信息提示
请填处理意见