24小时热门版块排行榜    

查看: 1550  |  回复: 22

津津爱睡觉

金虫 (小有名气)

引用回帖:
9楼: Originally posted by 月只蓝 at 2015-07-20 14:23:09
1stOpt软件代码:
Variable  x,y ;
Function x=1/(x2*49.005^2)*(ln((y/x1)*((x1-49.005)/(y-49.005)))-49.005*(1/y-1./x1));
Data;
         0   83.9499
    0.2500   69.1806
    0.5000   63.7801
     ...

clear,clc
x=[0,0.25,0.5,0.75,1,1.25,1.5,1.75,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5]';
y=[83.94986152,69.18056238,63.78006779,62.16487246,60.65377495,59.89822619,58.46520206,57.7096533,56.95410455,55.769572,54.95441885,53.89832959,53.14278084,52.14041949,51.64595481,51.34373531,51.11791018,50.85514711]';
plot(x,y,'k+');
hold on
X=[x,y];n=length(X);
fx=@(b,X)(1/(b(2)*49.005^2)).*[log((X(:,2)./b(1)).*((b(1)-49.005)./(X(:,2)-49.005)))-49.005.*(1./X(:,2)-1./b(1))]-X(:,1);
b=[83.94986152,0.000124];
for l=1:1
    b=lsqcurvefit(fx,b,X,y);
   
end
b
fx=@(b,x,y)(1/(b(2)*49.005^2)).*[log((y./b(1)).*((b(1)-49.005)./(y-49.005)))-49.005.*(1./y-1./b(1))]-x
y1=fx(b,x,y);
plot(x,y1,'r');
hold on
c=corrcoef(y,y1)
版主能帮我看这个拟合代码哪里有错误吗?你发的那个链接我有些地方看不懂
有梦一起追
11楼2015-07-20 14:39:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
7楼: Originally posted by 月只蓝 at 2015-07-20 12:42:34
先拟合出:
x2   =              0.000124354608284474
x1     =            71.0611809557734

相关系数(R): 0.99453642822085
相关系数之平方(R^2): 0.989102707058286
决定系数(DC): 0.989102707058287

代入之后用MA ...

function fit_nonl
clear all;clc
format long

data=[ 83.94986152    0
       69.18056238    0.25   
       63.78006779    0.5
       62.16487246    0.75
       60.65377495    1
       59.89822619    1.25
       58.46520206    1.5
       57.7096533     1.75
       56.95410455    2
       55.769572      2.5
       54.95441885    3
       53.89832959    3.5
       53.14278084    4
       52.14041949    4.5
       51.64595481    5
       51.34373531    5.5
       51.11791018    6
       50.85514711    6.5
];
xspan=data(:,2);    %x的数据,在此输入
Texp=data(:,1);    %T的数据,在此输入

k0=[83.94986152 0.0001];
lb=[];
ub=[];
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参数 E1 = %.16f',k(1))
fprintf('\n\t参数 E2 = %.16f',k(2))

y=KineticsEqs(xspan,k);
R2=1-sum((Texp-y).^2)./sum((Texp-mean(y)).^2);
fprintf('\n\tR^2 = %.16f',R2);
figure
plot(xspan,KineticsEqs(xspan,k),'b',xspan,Texp,'or'),legend('计算值','实验值','Location','Best')
function f = ObjFunc(k,xspan,Texp)
f=KineticsEqs(xspan,k)-Texp;

%------------------------------------------------------------------------
function xt = KineticsEqs(x,k)
E1=k(1);E2=k(2);
xt=1/(E2*49.005^2).*[log((x./E1).*((E1-49.005)./(x-49.005))-49.005.*(1./x-1/E1)];
版主版主,照你告诉的我的网址改了下代码,还是有错。。帮我看看哪里错了好不好
有梦一起追
12楼2015-07-20 15:13:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
9楼: Originally posted by 月只蓝 at 2015-07-20 14:23:09
1stOpt软件代码:
Variable  x,y ;
Function x=1/(x2*49.005^2)*(ln((y/x1)*((x1-49.005)/(y-49.005)))-49.005*(1/y-1./x1));
Data;
         0   83.9499
    0.2500   69.1806
    0.5000   63.7801
     ...

为啥我照着你那个在1sOpt中输的,得到完全不同的结果啊。。拟合参数都是零点几。。都要改哪些条件吗。。求版主帮忙
有梦一起追
13楼2015-07-20 15:53:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
13楼: Originally posted by 津津爱睡觉 at 2015-07-20 15:53:10
为啥我照着你那个在1sOpt中输的,得到完全不同的结果啊。。拟合参数都是零点几。。都要改哪些条件吗。。求版主帮忙...

把拟合结果贴出来。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
14楼2015-07-20 16:13:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
9楼: Originally posted by 月只蓝 at 2015-07-20 14:23:09
1stOpt软件代码:
Variable  x,y ;
Function x=1/(x2*49.005^2)*(ln((y/x1)*((x1-49.005)/(y-49.005)))-49.005*(1/y-1./x1));
Data;
         0   83.9499
    0.2500   69.1806
    0.5000   63.7801
     ...

Variable  x,y ;
Function x=1/(x2*89.005^2)*(ln((y/x1)*((x1-89.005)/(y-89.005)))-89.005*(1/y-1./x1));
Data;
         0   241.2453915
    0.2500   183.3464975
    0.5000   155.1400864
    0.7500    144.0572731
    1.0000   130.1157019
    1.2500   123.8167847
    1.5000   119.6818387
    1.7500   114.7628452
    2.0000   112.2128814
    2.2500   109.1828393
    2.5000   107.8005032
    3.0000   103.5545843
    3.5000   101.0962938
    4.0000   97.44383853
    4.5000   96.25691121
    5.0000   93.11348376
    5.5000   91.75768466
    6.0000   91.33309277
    6.5000   90.457372
月只蓝,帮我看看换个方程怎么做不出来了,是什么样的原因呢?麻烦你啦
有梦一起追
15楼2015-07-20 17:29:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
15楼: Originally posted by 津津爱睡觉 at 2015-07-20 17:29:16
Variable  x,y ;
Function x=1/(x2*89.005^2)*(ln((y/x1)*((x1-89.005)/(y-89.005)))-89.005*(1/y-1./x1));
Data;
         0   241.2453915
    0.2500   183.3464975
    0.5000   155.1400864
    0.7500 ...

方程 形式不对 不用点除

[ 发自小木虫客户端 ]
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
16楼2015-07-20 17:45:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
16楼: Originally posted by 月只蓝 at 2015-07-20 17:45:21
方程 形式不对 不用点除
...

把点删了也不对的,只有一条线。。R2什么都没有
有梦一起追
17楼2015-07-20 19:19:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
14楼: Originally posted by 月只蓝 at 2015-07-20 16:13:22
把拟合结果贴出来。...

??? Error: File: fit_nonl.m Line: 51 Column: 82
Unbalanced or unexpected parenthesis or bracket.
只有这一句。。因为我方程是隐函数,所以不太会弄。。之前的显函数都可以做出来。。这个怎么也不行
有梦一起追
18楼2015-07-20 19:24:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
14楼: Originally posted by 月只蓝 at 2015-07-20 16:13:22
把拟合结果贴出来。...

迭代数: 16
计算用时(时:分:秒:微秒): 00:00:00:431
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
计算结束原因: 达到收敛判断标准
均方差(RMSE): 3.36438388822804
残差平方和(SSE): 215.0625
相关系数(R): 0
相关系数之平方(R^2): 0
决定系数(DC): -1.90186418109188
卡方系数(Chi-Square): 51.75
F统计(F-Statistic): 0

参数        最佳估算
----------        -------------
x2                 0.063293183920905
x1                 0.320298498496413

====== 结果输出 =====

No        实测值x        计算值x
1        0        0.0000000
2        0.25        0.0000000
3        0.5        0.0000000
4        0.75        0.0000000
5        1        0.0000000
6        1.25        0.0000000
7        1.5        0.0000000
8        1.75        0.0000000
9        2        0.0000000
10        2.25        0.0000000
11        2.5        0.0000000
12        3        0.0000000
13        3.5        0.0000000
14        4        0.0000000
15        4.5        0.0000000
16        5        0.0000000
17        5.5        0.0000000
18        6        0.0000000
19        6.5        0.0000000
有梦一起追
19楼2015-07-20 19:25:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
14楼: Originally posted by 月只蓝 at 2015-07-20 16:13:22
把拟合结果贴出来。...

之前不知道要改算法。。改完算法可以了。。谢谢你。。麻烦你了一下午。。感谢感谢。。帮了我大忙
有梦一起追
20楼2015-07-20 19:32:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 津津爱睡觉 的主题更新
信息提示
请填处理意见