24小时热门版块排行榜    

查看: 7925  |  回复: 20
本帖产生 1 个 计算强帖 ,点击这里进行查看

glazio

铁虫 (小有名气)

[求助] 求教origin拟合简单的渗流方程(又称逾渗方程),做复合材料的应该会遇到吧

自己试了好多次,origin还是给出无法拟合的结果,因此在此求教高人们。

1. 公式
渗流公式为y=A*(x-xc)^p
其中x为自变量,y为因变量,A、xc和p均为常数。

2. 数据
为了测试模拟,设定A=18.5,xc=0.095,p=-2.3,得到以下数据

x                y
------------------------------
0.1001        3.5E+06
0.1002        3.3E+06
0.11        2.9E+05
0.12        9.0E+04
0.15        1.5E+04
0.2        3.3E+03
0.3        7.1E+02
0.4        2.8E+02
0.5        1.5E+02
0.6        8.9E+01

3. 我的origin(Pro V8.5)拟合过程
选取Nonlinear Curve Fit,Category选取Power,Function选取Power1,该方程形式为y=A|x-xc|^p。
在参数bounds中设定p<0,0
考虑到y值变动较大,又在NLCF-Settings-Data Selection中将y值权重设为“Variance~y^2”后,显示Chi-Square为1.42513,现在执行“1 Iteration”,但系统仍然显示“Fit did not converge - reason unknown.”



以上为问题和步骤陈述,请问我的拟合问题在哪里,如何解决呢?

[ Last edited by glazio on 2011-11-25 at 09:33 ]
回复此楼

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

感兴趣的问题 文献 写作辅助

» 猜你喜欢

» 本主题相关商家推荐: (我也要在这里推广)

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

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

seaharrier

铁杆木虫 (知名作家)

帝国空军中将

【答案】应助回帖

我也不会,
试了一下,选择Power2可以拟合,但是系数跟你给的不一样,
可以参考一下看看是否可行。
Patienceisbitter,butitsfruitissweet.
2楼2011-11-25 13:02:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★
cenwanglai(金币+3): ~~ 2011-12-22 20:07:18
origin不常用,matlab可以拟合出较好的结果
代码如下
CODE:
A=[0.1001       3.5e06
0.1002       3.3e06
0.11         2.9e05
0.12        9.0e04
0.15        1.5e04
0.2        3.3e03
0.3        7.1e02
0.4        2.8e02
0.5        1.5e02
0.6        8.9e01];
x=A(:,1);y=A(:,2);
st_ = [18.5 0.095 -2.3];
ft_ = fittype('A*(x-xc).^p','dependent',{'y'},'independent',{'x'},'coefficients',{'A', 'xc','p'});
[cf_,good]= fit(x,y,ft_ ,'Startpoint',st_)
h_ = plot(cf_,'fit',0.95);
legend off;  % turn off legend from plot method call
set(h_(1),'Color',[1 0 0],...
     'LineStyle','-', 'LineWidth',2,...
     'Marker','none', 'MarkerSize',6);
hold on,plot(x,y,'*')

cf_ =

     General model:
     cf_(x) = A*(x-xc).^p
     Coefficients (with 95% confidence bounds):
       A =       111.5  (11.4, 211.6)
       xc =     0.09683  (0.09604, 0.09762)
       p =      -1.809  (-2.04, -1.578)

good =

           sse: 3.8499e+008
       rsquare: 1.0000
           dfe: 7
    adjrsquare: 1.0000
          rmse: 7.4161e+003
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
3楼2011-11-25 20:14:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

图如下


The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
4楼2011-11-25 20:18:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

glazio

铁虫 (小有名气)

引用回帖:
2楼: Originally posted by seaharrier at 2011-11-25 13:02:45:
我也不会,
试了一下,选择Power2可以拟合,但是系数跟你给的不一样,
可以参考一下看看是否可行。

好的,我再去试一下power类里其他函数的拟合,看看能不能解决。谢谢你的建议。
5楼2011-11-25 20:40:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

glazio

铁虫 (小有名气)

引用回帖:
3楼: Originally posted by dbb627 at 2011-11-25 20:14:26:
origin不常用,matlab可以拟合出较好的结果
代码如下
[code]


A=[0.1001       3.5e06
0.1002       3.3e06
0.11         2.9e05
0.12        9.0e04
0.15        1.5e04
0.2        3.3e03
0.3     ...

Dbb627版主的Matlab拟合代码很详细,我用你拟合得到的参数[A, xc, p] = [111.5 0.09683 -1.809 ]带入公式y=A*(x-xc)^p计算出的结果(Fitted),和原始数据(Data)一起作semilog图如下。将Fitted和Data对比可见,可能在拟合的过程中没有采用权重w_i=1/y_i^2,所以拟合对sse的控制只集中在较大的y_i数据部分,而在较小的y_i却偏离开了。对于这个问题我以前尝试将公式两边取对数后再做Matlab拟合,这样的效果的确较好。另外我想可以也许采取权重w_i=1/y_i^2的方法吧,但没试过不清楚。

此前我是用Matlab的Cftool拟合(为了拟合才粗浅的学了点Matlab),由于现在需要用一个方程对多组数据拟合,这就需要采用拟合参数共享的方法了,即origin所宣称的Global Nonlinear Curve Fitting

在次想请教Dbb627版主,
1. 我的目的是解决拟合参数共享的问题,才投入Origin的怀抱的。请问Matlab目前有解决这个问题的方案么?如果有的话请提示一二。
2. 接下来采用的方程不可能太简单,所以直接去对数这条路不能一直走到黑。因此若直接用Matlab对y=A*(x-xc)^p原方程拟合过程中,采用权重w_i=1/y_i^2可以有效提高拟合精度么?Matlab支持(代码方式或Cftool方式)这种权重吗?

Dbb627版的Matlab拟合结果

6楼2011-11-25 21:39:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

是可以改善的
CODE:
A=[0.1001   3.5e06
0.1002      3.3e06
0.11        2.9e05
0.12        9.0e04
0.15        1.5e04
0.2        3.3e03
0.3        7.1e02
0.4        2.8e02
0.5        1.5e02
0.6        8.9e01];
x=A(:,1);y=A(:,2);
w=1./y;
opts=fitoptions('method','NonlinearLeastSquares','Weights',w.^2,'Lower',[-Inf 0  -Inf],'Upper',[Inf 1 0]);
opts.StartPoint= [10 0.095 -2.3];
ft_ = fittype('A*(x-xc).^p','dependent',{'y'},'independent',{'x'},'coefficients',{'A', 'xc','p'},'options',opts);
[cf_,good]= fit(x,y,ft_)
plot(x,log(cf_(x)),'or-',x, log(y), '* ');
legend('拟合图','原始数据')

cf_ =

     General model:
     cf_(x) = A*(x-xc).^p
     Coefficients (with 95% confidence bounds):
       A =       18.46  (18.03, 18.88)
       xc =     0.09496  (0.09485, 0.09508)
       p =      -2.304  (-2.315, -2.292)

good =

           sse: 0.0010
       rsquare: 0.9999
           dfe: 7
    adjrsquare: 0.9998
          rmse: 0.0121
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
7楼2011-11-25 23:22:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

cenwanglai: ~~ 2011-12-22 20:08:01
拟合结果见图


The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
8楼2011-11-25 23:24:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wypjyq

木虫 (正式写手)

引用回帖:
3楼: Originally posted by dbb627 at 2011-11-25 20:14:26:
origin不常用,matlab可以拟合出较好的结果
代码如下
[code]


A=[0.1001       3.5e06
0.1002       3.3e06
0.11         2.9e05
0.12        9.0e04
0.15        1.5e04
0.2        3.3e03
0.3     ...

斑竹,问下你在平时做计算的时候怎么确定参数的初值(st)的,我每次都要调试很久才能收敛掉。
9楼2011-11-26 22:08:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

这个一般如果这个式子有明确实际意义,就根据实际定范围,如果没有的话,看能不能变成线性的在求参数的范围,还有个方法就是用些随机全局优化算法确定初值,如遗传算法,退火算法等
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
10楼2011-11-26 23:35:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 glazio 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 中青基了要发朋友圈吗? +7 349506619 2026-08-28 7/350 2026-08-31 13:39 by 冼亮淀粉酶
[基金申请] 29号明天会评吗 +4 笨笨唐 2026-08-28 4/200 2026-08-31 09:30 by huixian257
[基金申请] 基金不中,共勉 +12 eulota 2026-08-26 12/600 2026-08-31 08:42 by ZJTJZ
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +6 gdd2018 2026-08-28 11/550 2026-08-30 08:58 by 超级无敌华子
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 11/550 2026-08-30 07:57 by gouxfjh
[基金申请] 国自然评审意见 +13 wangmingqi 2026-08-28 19/950 2026-08-29 10:22 by Poppy1104
[基金申请] 2026年叶企孙基金 +4 bud_bud 2026-08-27 7/350 2026-08-29 07:23 by foolishmani
[基金申请] 为什么资助数各大高校都创新高,自己申请怎么就这么难 +12 Kittylucky 2026-08-27 13/650 2026-08-29 00:04 by superceng
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[基金申请] 面上合作单位盖章 +5 ssyjh 2026-08-27 5/250 2026-08-27 20:50 by gdfollow
[基金申请] 基金未中,这种答复是模板吗? +5 zhaosm1982 2026-08-27 6/300 2026-08-27 16:00 by lfy8008
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[基金申请] 怎么看青基中了没有啊 +5 叶九微 2026-08-26 5/250 2026-08-27 10:35 by l_zh2008
[基金申请] 为什么 国际(地区)合作与交流项目 没有放榜? 10+3 majunge000 2026-08-26 11/550 2026-08-27 08:42 by 北京莱茵编辑
[基金申请] 我不理解! +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 国际合作可查了,中了面上 (EPI+1)(金币+50) +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[基金申请] 牛来!米来!面来! +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
信息提示
请填处理意见