24小时热门版块排行榜    

查看: 23534  |  回复: 73
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

dshuanger

木虫 (小有名气)

[求助] matlab非线性拟合模型参数,大神你在哪!

本人非计算模拟专业,小白一枚,但最近需要模拟参数,不知如何运用matlab求参数,顾求助各位大神。     
        模型表达式:
      y=a/E1 +a/E2[1-exp(-x/t)]+a*x/E3            
      其中:x=[2,5,10,15,30,60,120,200,300,550,700];
                 y=[8.66667,10,10.66667,12.66667,13.33333,15,15.33333, 16.66667,17.33333,18.33333,20];
                 a=2
       未知参数:E1,E2,t,E3     
不知道能否通过matlab拟合参数
请各位大神能鼎力相助,最好能给出代码或者计算方法,谢谢大家!

[ Last edited by dshuanger on 2013-11-5 at 11:06 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
30楼: Originally posted by 月只蓝 at 2015-01-21 17:00:31
以下面的数组为例:
X1=;
X2=;
X3=;
Y=;

代码:

X1=;
X2=;
X3=;
Y=;
for i=1:length(Y)
if Y(i)>10 & Y(i)<50
YY(i)=Y(i);
else YY(i)=max(Y);
end
end
j=find(YY==min(YY));
Y_m ...

您好,对于30楼的代码我有2个疑问:
1.能不能根据回归方程计算得出Y1最小值,而并非像筛选出Y1最小的数据。
2.如果同时Y1=[...(同楼上)...],同时Y2=[...],如何确定一个同时较优的值以及区间呢?
33楼2015-01-21 17:19:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
34楼: Originally posted by 月只蓝 at 2015-01-21 17:21:06
这就是最优化问题了。
用1stopt方便一些,参见1stopt下载链接中的help手册,关键词 MinFunction...

好的,晚上我自己再试下。如果失败,明儿麻烦您。
35楼2015-01-21 17:42:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
34楼: Originally posted by 月只蓝 at 2015-01-21 17:21:06
这就是最优化问题了。
用1stopt方便一些,参见1stopt下载链接中的help手册,关键词 MinFunction...

我自己尝试了下单方程最优化:Parameters X1[1,7], X2[1,7], X3[1,7];
Variable X1,X2,X3,Y;
Minimum = Y;
Function Y=355.45-38.35*X1-13.99*X2-85.78*X3+0.825*X1*X2+6.234*X1*X3+1.959*X2*X3+1.278*X1^2+0.272*X2^2+6.59*X3^2;
Data;
    1        2        4                 96.15
    1        4        7                89.07
    2        6        3                95.44
    2        1        7                96.08
    3        3        3                95.42
    3        5        6                96.37
    4        7        2                92.66
    4        1        6                96.49
    5        3        2                95.73
    5        5        5                93.93
    6        7        1                92.53
    6        2        5                95.68
    7        4        1                95.37
    7        6        4                93.97

得到X1 X2 X3最佳估算 没有Y值
请问这样准确吗?
36楼2015-01-21 22:00:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
37楼: Originally posted by 月只蓝 at 2015-01-22 08:55:28
你想求Y的最小值,就不需要用 Data 给出数据了。

Parameters X1, X2, X3;
Minimum = Y;
Function Y=355.45-38.35*X1-13.99*X2-85.78*X3+0.825*X1*X2+6.234*X1*X3+1.959*X2*X3+1.278*X1^2+0.272*X2^2+6.59*X3^ ...

Paprameters X1[1,7], X2[1,7], X3[1,7];
Maximum = Y;
Function Y=355.46-38.35*X1-13.99*X2-85.78*X3+0.825*X1*X2+6.234*X1*X3+1.959*X2*X3+1.278*X1^2+0.272*X2^2+6.59*X3^2;
函数表达式: 355.46-38.35*x1-13.99*x2-85.78*x3+0.825*x1*x2+6.234*x1*x3+1.959*x2*x3+1.278*x1^2+0.272*x2^2+6.59*x3^
          2
目标函数值(最大): 1.79769313486232E308
x1: -6.15439475617334E153
x2: -5.52301057071188E153
x3: -1.5922467021636E153

很诡异的结果(X1、X2、X3、Y均不在区间)..而且每F9一次结果就会变化一次。.这是怎么回事啊?
38楼2015-01-22 10:00:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
37楼: Originally posted by 月只蓝 at 2015-01-22 08:55:28
你想求Y的最小值,就不需要用 Data 给出数据了。

Parameters X1, X2, X3;
Minimum = Y;
Function Y=355.45-38.35*X1-13.99*X2-85.78*X3+0.825*X1*X2+6.234*X1*X3+1.959*X2*X3+1.278*X1^2+0.272*X2^2+6.59*X3^ ...

忽略38楼:
重启程序重新运行了下:
Parameters X1[1,7], X2[1,7], X3[1,7], Y[1,100];
Maximum = Y;
Function Y=355.45-38.35*X1-13.99*X2-85.78*X3+0.825*X1*X2+6.234*X1*X3+1.959*X2*X3+1.278*X1^2+0.272*X2^2+6.59*X3^2;

在Parameters多加了一个Y[1,100]后,就没法运行了,您看下怎么限制Y值最大且X1 X2 X3 Y都在制定区间内?
39楼2015-01-22 10:11:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
41楼: Originally posted by 月只蓝 at 2015-01-22 10:20:36
Y本身是目标函数,限定Y在,又求Y的最大值,那Y最大值不就是100么?
那么,不就等于是 求
Y=355.45-38.35*X1-13.99*X2-85.78*X3+0.825*X1*X2+6.234*X1*X3+1.959*X2*X3+1.278*X1^2+0.272*X2^2+6.59*X3^2=100
这个 ...

我理解您意思了,三元二次方程的确有很多解,但如果就三个三元二次方程的最优呢?
Y1=(29.9+22.1*X1+11.6*X2-1.5*X1*X2+1.2*X1*X3-2.5*X1^2-0.6*X2^2-0.7*X3^2)
Y2=(-45.3+35.6*X1+24.6*X2+8.2*X3-1.1*X1*X2-4.0*X1^2-2.4*X2^2-1.3*X3^2)
Y3=(-15.3-4.0*X1+24.4*X2+22.4*X3+1.0*X1*X2+0.8*X1*X3-2.4*X2*X3-0.4*X1^2-2.4*X2^2-1.8*X3^2)
同时X1[1,7] X2[1,7] X3[1,7]

能得到一个综合方程,然后再求解最优吗?
42楼2015-01-22 10:55:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

送红花一朵
引用回帖:
41楼: Originally posted by 月只蓝 at 2015-01-22 10:20:36
Y本身是目标函数,限定Y在,又求Y的最大值,那Y最大值不就是100么?
那么,不就等于是 求
Y=355.45-38.35*X1-13.99*X2-85.78*X3+0.825*X1*X2+6.234*X1*X3+1.959*X2*X3+1.278*X1^2+0.272*X2^2+6.59*X3^2=100
这个 ...

您好,感激您一直给我回帖,也帮我增加了matlab语言对化学数据的非线性拟合的认识。然而,化学数据处理不是纯粹的数学计算,有很多条件限制,所以似乎目前为止,还没有真正解决我自己的问题。现想最后求助下您:
1.对于Parameters b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
Variable X1,X2,X3,Y;
Function Y=b0+b1*X1+b2*X2+b3*X3+b4*X1*X2+b5*X1*X3+b6*X2*X3+b7*X1^2+b8*X2^2+b9*X3^2;
Data;
    1          2        4       76.84
    1          4        7        77.85
    2          6        3        62.19
    2          1        7        70.77
    3          3        3        73.30
    3          5        6        66.23
    4          7        2        10.66
    4          1        6        79.36
    5          3        2        79.87
    5          5        5        77.34
    6          7         1        21.77
    6          2        5        74.82
    7          4        1        74.31
    7          6        4        58.65
所拟合的方程前,可不可以再限制下区间X1[1,7]X2[1,7]X3[1,7]Y[0,100],使得最后直接最优化值是落在各个区间的某个极小值,且不是边界值。比如高中数学学过,极值不一定不等于最值。
44楼2015-01-22 21:52:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
44楼: Originally posted by 梦落在草地上 at 2015-01-22 21:52:02
您好,感激您一直给我回帖,也帮我增加了matlab语言对化学数据的非线性拟合的认识。然而,化学数据处理不是纯粹的数学计算,有很多条件限制,所以似乎目前为止,还没有真正解决我自己的问题。现想最后求助下您:
...

主要是拟合方程时限制区间为Y[1,100]下的拟合曲线方程(X限制好像没有意义)
45楼2015-01-22 21:55:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
46楼: Originally posted by 月只蓝 at 2015-01-22 22:14:31
那我建议你先拟合出方程,然后对该方程求偏导数,令偏导数=0,求得极值点。
1stopt求得的都是最值(限制参数范围,求得的也是该范围内的最值)。...

请问不以求极值为目的的情况下,拟合方程时能不能限制Y区间在0-100之间呢?
47楼2015-01-23 08:46:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
48楼: Originally posted by 月只蓝 at 2015-01-23 09:16:14
运行代码:
Parameters b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
Variable X1,X2,X3,Y;
Function Y=b0+b1*X1+b2*X2+b3*X3+b4*X1*X2+b5*X1*X3+b6*X2*X3+b7*X1^2+b8*X2^2+b9*X3^2;
Data;
    1          2        4     ...

可是拟合的方程在自变量区间内,Y值却不在[0,100]之间了。因此最大值远超过100.而拟合方程后再限定区间内最大值100,毫无意义。所以在拟合出方程前就需要限定Y取值范围0-100再求最优值才行。
49楼2015-01-23 09:30:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dshuanger 的主题更新
信息提示
请填处理意见