24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2147  |  回复: 5

qs秦秦

新虫 (小有名气)

[求助] MATLAB拟合土壤水分特征曲线已有1人参与

想实现这篇论文的程序,但是老是出现错误,刚接触这个东西,不知道怎么去改,求会matlab的虫友们帮帮忙,谢谢了!

MATLAB拟合土壤水分特征曲线
AFEHPDQU}Q[FF~5F7$TC@{Q.jpg


MATLAB拟合土壤水分特征曲线-1
A9X4]%_4K~6{NCQF)4U5UGJ.jpg
回复此楼

» 收录本帖的淘帖专辑推荐

程序

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

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

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
qs秦秦: 金币+5, ★★★★★最佳答案 2014-08-09 15:37:14
一下所有程序复制进一个m文件,点击运行即可。
CODE:
function feixianxingnihe_3
clear all;clc
format long


xdata=[0 50.65 293.77 790.14 992.74 5065 10130 15195];
ydata=[0.5650 0.4013 0.2502 0.2324 0.2307 0.1926 0.1812 0.1730];
xspan=xdata;    %x的数据,在此输入
Texp=ydata;    %T的数据,在此输入

x0=[0.1 0.1 0.1 1];
k0=x0;
lb=-[1 1 1 1]*1e9;
ub=[1 1 1 1]*1e9;


%-------------------------------------------------------------------------

% 使用函数lsqnonlin()进行参数估计

OPTIONS=optimset('MaxFunEvals',1000);
[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...
    lsqnonlin(@ObjFunc,k0,lb,ub,OPTIONS,xspan,Texp);

ci = nlparci(k,residual,jacobian);
%residual;
fprintf('\n\n拟合结果:\n')
fprintf('\n\t参数 c1 = %.16f',k(1))
fprintf('\n\t参数 c2 = %.16f',k(2))
fprintf('\n\t参数 c3 = %.16f',k(3))
fprintf('\n\t参数 c4 = %.16f',k(4))
fprintf('\n\t残差平方和 = %.6e',resnorm)
y=KineticsEqs(xspan,k);
R2=1-sum((Texp-y).^2)./sum((Texp-mean(y)).^2);
%fprintf('\n\t相关系数之平方R^2 = %.6e',R2);

mm=max(xspan)-min(xspan);
xspan1=min(xspan):0.01:max(xspan)+0.05*mm;
figure(3)
plot(xspan1,KineticsEqs(xspan1,k),'b',xspan,Texp,'or'),legend('拟合曲线','实验数据','Location','Best'),...
    axis([-10 16000 0.1 0.6])


%-------------------------------------------------------------------------

function f = ObjFunc(k,xspan,Texp)
f=KineticsEqs(xspan,k)-Texp;

%------------------------------------------------------------------------
function xt = KineticsEqs(x,n)
k1=n(1);
k2=n(2);
k3=n(3);
k4=n(4);
xt=k1+(k2-k1)./(1+(k3*x).^k4).^(1-1/k4);

计算结果:
拟合结果:

        参数 c1 = 0.1674744224584986
        参数 c2 = 0.5653038321277274
        参数 c3 = 0.0475760372012390
        参数 c4 = 1.5279673014244484
        残差平方和 = 4.767805e-004>>
MATLAB拟合土壤水分特征曲线-2
附图1.png

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2014-07-28 20:00:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

需要指出的是,截图中的计算步骤,在输入y1=... 时,”1./1.5003“这一项的点除是多余的。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
3楼2014-07-28 20:03:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qs秦秦

新虫 (小有名气)

引用回帖:
3楼: Originally posted by 月只蓝 at 2014-07-28 20:03:15
需要指出的是,截图中的计算步骤,在输入y1=... 时,”1./1.5003“这一项的点除是多余的。

多谢啦
4楼2014-08-09 15:36:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yuanbeichuan

新虫 (初入文坛)

大神你好。
请问 请问怎样用excel 拟合。
用matlab水平不高
5楼2016-09-07 11:39:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qs秦秦

新虫 (小有名气)

引用回帖:
5楼: Originally posted by yuanbeichuan at 2016-09-07 11:39:41
大神你好。
请问 请问怎样用excel 拟合。
用matlab水平不高

没用过excel拟合
6楼2016-10-07 11:15:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 qs秦秦 的主题更新
信息提示
请填处理意见