24小时热门版块排行榜     意得辑论文润色下单送200JD卡

查看: 1000  |  回复: 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的回帖
回帖置顶 ( 共有1个 )

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

glazio(金币+10): dbb627版主不愧是matlab神人,所有问题都得到回答,非常感谢! 2011-11-30 08:57:21
cenwanglai(计算强帖+1): 你的回复都挺好。不过我不熟悉,没有仔细看明白。就这里给一个EPI吧~ 2011-12-22 20:09:16
引用回帖:
13楼: Originally posted by glazio at 2011-11-29 22:38:41:
你给的帖子里的情况好像并不是我说的共享参数拟合。下面举个例子说明一下。

假如说在数据图中有两组实验数据集Y1和Y2,可以用某个含有三个参数a,b,c的方程y=f(x)描述。普通的拟合一般是用F(x)对数据集Y1和Y2 ...

这个没有问题
matlab可以做的
见下面的例子
CODE:
x=rand(1,7);
y1=2*x+3*sin(x)+6*x.^2;
y2=2*x+3*cos(x)+2*x.^2;%参数 2 3 6 2前面2 3共用
F=@(p,x)[p(1)*x+p(2)*sin(x)+p(3)*x.^2;p(1)*x+p(2)*cos(x)+p(4)*x.^2];
p = lsqcurvefit(F, [1 1 1 1], x,[y1;y2])

Local minimum found.

Optimization completed because the size of the gradient is less than
the default value of the function tolerance.




p =

    2.0000    3.0000    6.0000    2.0000
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.
14楼2011-11-30 00:26:50
已阅   回复此楼   关注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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 一年一度一基金申请 +4 yulijia1 2022-01-24 4/200 2022-01-24 14:37 by gaofeiyizi
[教师之家] 四十出头的海飘还能回国找到工作吗? +35 robininuk 2022-01-19 83/4150 2022-01-24 12:49 by phy1
[公派出国] 2022csc简章还出不出了 +3 远远仔仔 2022-01-22 3/150 2022-01-24 11:17 by fu138578
[论文投稿] 两轮小修还要送review它正常吗 +7 四楼的蜗牛壳 2022-01-21 15/750 2022-01-24 10:05 by 四楼的蜗牛壳
[论文投稿] 责任编辑是专业人士吗?为什么如此无礼? +9 执子之手2266 2022-01-23 11/550 2022-01-24 08:55 by 1591099
[教师之家] 国内访问学者 +7 流年往事 2022-01-22 16/800 2022-01-24 08:24 by yan5127
[基金申请] 研究基础的论文标注通讯作者吗 +6 张春生 2022-01-21 14/700 2022-01-23 11:21 by zju2000
[教师之家] 破五唯下某高校数学期刊高质量部分榜单 +7 xxc549 2022-01-21 9/450 2022-01-23 10:31 by 海田01
[考博] 如何找博导啊 +7 薄荷糖06 2022-01-22 20/1000 2022-01-23 08:33 by 五仁居士
[博后之家] 哈工大郑州研究院-新能源半导体材料团队诚聘研究员、副研究员和博士后 +3 18846090417 2022-01-22 6/300 2022-01-23 07:49 by 18846183967
[考研] 一志愿华中农290食安求调剂 +3 zhoutao146 2022-01-17 8/400 2022-01-22 23:15 by zhoutao146
[考研] 考研数学 +6 20221225 2022-01-20 11/550 2022-01-22 09:09 by 奋斗史者
[无机非金属] 我在做二氧化硅玻璃陶瓷,粉体结块了,如何研磨 5+4 贴满幸福 2022-01-20 4/200 2022-01-21 21:36 by sxll
[论文投稿] JPCC 和Nanoscale和Environmental Science: Nano哪个好 10+3 甜甜小布丁 2022-01-20 20/1000 2022-01-21 17:26 by 甜甜小布丁
[论文投稿] 投了Discrete Dynamics in Nature and Society 遇到了奇葩事件 绝了 +3 赝覆vgqp 2022-01-20 3/150 2022-01-21 08:11 by 国际科学编辑
[公派出国] 求往年CSCer帮拿捏一下! +8 myc1995 2022-01-20 17/850 2022-01-21 00:22 by JiaoyiQu
[硕博家园] 真心找对象 +5 leyu2022 2022-01-18 5/250 2022-01-19 12:23 by 斯文赫
[论文投稿] 关于爱思唯尔投稿的问题,大神们帮忙解释一下 20+3 DADA2301 2022-01-18 7/350 2022-01-19 11:55 by jackyu2014
[教师之家] 事业编制 | 安徽科技学院最新招聘信息 +11 千才汇 2022-01-17 14/700 2022-01-18 07:35 by rubing100
[基金申请] 今年申报 +3 zhangjxnu 2022-01-17 3/150 2022-01-17 21:05 by otani
信息提示
请填处理意见