24小时热门版块排行榜    

查看: 23515  |  回复: 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 ]
回复此楼

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

matlab典型案例及小技巧 宝贵经验 Polyflow反应模拟 分子动力学
程序 第一性原理杂 研究僧 生物试验统计分析
动力学拟合 技术贴 考博 科学计算tool疑难问题
软件

» 猜你喜欢

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

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

梦落在草地上

新虫 (小有名气)

引用回帖:
7楼: Originally posted by 月只蓝 at 2013-11-05 14:09:49
(1) MATLAB代码及结果

function fit_nonl
clear all;clc
format long

data=;
xspan=data(:,2);    %x的数据,在此输入
Texp=data(:,1);    %T的数据,在此输入

k0=;
lb=-*1e9;
ub=*1e9;


%--- ...

能不能请您也帮我用最小二乘法拟合下我的三元二次多项式回归方程?公式请见附件照片当然授人以鱼不如授人以渔,如果能知道编程命令,更是求之不得。可是作为MATLAB盲,命令可能一时半会儿也学不会,数据先发您好吗?谢谢!
matlab非线性拟合模型参数,大神你在哪!
QQ图片20150120163713.png


matlab非线性拟合模型参数,大神你在哪!-1
QQ截图20150120161540.png

13楼2015-01-20 16:40:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
14楼: Originally posted by 月只蓝 at 2015-01-20 17:10:07
请把公式和数据以文本的形式给出,数据点很多,一个一个地敲比较麻烦。...

好的:
自变量X1=[45 45 40 40 35 35 30 30 25 25 20 20 15 15]
         X2=[4 5 6 7 8 9 10 4 5 6 7 8 9 10]
         X3=[125 75 25 150 100 50 0 150 100 50 0 125 75 50]
因变量Y=[20.8 3.8 41.2 4.51 6.33 45.9 36.2 53.3 62.6 8.74 34.2 63 32.5 30.8]
公式Y=bo+b1*X1+b2*X2+b3*X3+b4*X1*X2+b5*X1*X3+b6*X2*X3+b7*X1^2+X2^2+X3^2
请您教我命令代码 同时给出回归方程结果成吗?多谢!
15楼2015-01-20 18:12:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
16楼: Originally posted by 月只蓝 at 2015-01-21 09:01:30
用1stopt软件做比较方便,该软件参见:http://muchong.com/bbs/viewthread.php?tid=4586018&fpage=1&target=blank

求解该问题的代码:
Parameters b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
Variable X1,X2,X3,Y ...

您好,谢谢您的解答。同时请问matlab程序代码是怎样的啊?很复杂还是?
17楼2015-01-21 09:13:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
16楼: Originally posted by 月只蓝 at 2015-01-21 09:01:30
用1stopt软件做比较方便,该软件参见:http://muchong.com/bbs/viewthread.php?tid=4586018&fpage=1&target=blank

求解该问题的代码:
Parameters b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
Variable X1,X2,X3,Y ...

你好,当我复制粘贴上您的代码后是这样的,然后什么步骤能得到计算结果、参数等等呢?
matlab非线性拟合模型参数,大神你在哪!-2
1.jpg

18楼2015-01-21 09:54:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
20楼: Originally posted by 月只蓝 at 2015-01-21 10:07:31
管理员身份运行 1stopt 软件。
删除代码中所有的 “//”,其实你的代码如果完全复制我16楼给出的,也不会出错。...

您好,刚刚我用1stopt软件迭代计算了文献中一组数据。可是结果却和我软件处理结果不一致。您看是不是计算设置需要有些什么设置需要改动还是什么原因?图2是文献结果;图3是我输入的代码;图4是软件输出结果。
matlab非线性拟合模型参数,大神你在哪!-3
2.png


matlab非线性拟合模型参数,大神你在哪!-4
3.jpg


matlab非线性拟合模型参数,大神你在哪!-5
4.jpg

21楼2015-01-21 10:28:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
22楼: Originally posted by 月只蓝 at 2015-01-21 10:54:22
你的1stopt Function中定义的公式 和 文献中用的公式 不一样,所以结果不会相同。...

那您看下,文献里的这个公式和我们的不是一样的意义吗?如果程序里这样输入,结果会不同吗?
matlab非线性拟合模型参数,大神你在哪!-6
QQ截图20150120161540.png

23楼2015-01-21 11:00:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
24楼: Originally posted by 月只蓝 at 2015-01-21 11:12:41
请给出21楼的完整代码和计算结果...

我自己实验数据的拟合代码:
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;
   0.0000      8.0000     7.0000      63.9
   0.0000      24.0000   11.5000    56.9
   350.0000    40.0000   5.5000    95.4
   350.0000    0.0000    11.5000   54.3
   700.0000    16.0000   5.5000    92.7
   700.0000    32.0000   10.000    92.9000
   1050.0000   48.0000   4.0        95.80
   1050.0000   0.0000    10.000   87.8
   1400.0000   16.0000   4.0000   92.6000
   1400.0000   32.0000   8.5000   98.700
   1750.0000   48.0000   2.5        71.2000
   1750.0000   8.0000    8.5000    95.1000
   2100.0000   24.0000   2.5000    64.8000
   2100.0000   40.0000   7.0000    67.2000

拟合数据结果:
均方差(RMSE): 1.54658329060161
残差平方和(SSE): 33.4868782467533
相关系数(R): 0.995247203455277
相关系数之平方(R^2): 0.990516995985549
决定系数(DC): 0.990516995985549
卡方系数(Chi-Square): 0.228909500020559
F统计(F-Statistic): 1253.42179901157

参数        最佳估算
----------        -------------
b0                 37.0459960300393
b1                 0.0487926069483363
b2                 1.50487196705523
b3                 5.5454028094221
b4                 -0.000558451632571275
b5                 0.00153209146092655
b6                 -0.0281388598195167
b7                 -2.10419568056527E-5
b8                 -0.0122539097071058
b9                 -0.492832403832336

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

No        实测值y        计算值y
1        63.9        61.3939773
2        56.9        56.9333928
3        95.4        96.6663312
4        54.3        56.3074838
5        92.7        94.5904221
6        92.9        91.8798377
7        95.8        96.2627759
8        87.8        87.3372240
9        92.6        93.6201624
10        98.7        96.8095779
11        71.2        69.1925163
12        95.1        93.8336688
13        64.8        64.7666071
14        67.2        69.7060227

和文献里的不一致。文献的二次型多项式见21楼图1:
25楼2015-01-21 14:15:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
24楼: Originally posted by 月只蓝 at 2015-01-21 11:12:41
请给出21楼的完整代码和计算结果...

抱歉 后来查证文献 代码值为:
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    63.9
   1   4   7    56.9
   2   6   3    95.4
   2   1   7    54.3
   3   3   3    92.7
   3   5   6    92.9
   4   7   2    95.8
   4   1   6    87.8
   5   3   2    92.6
   5   5   5    98.7
   6   7   1    71.2
   6   2   5    95.1
   7   4   1    64.8
   7   6   4    67.2
26楼2015-01-21 15:25:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
28楼: Originally posted by 月只蓝 at 2015-01-21 15:35:34
我在19楼中还给出了MATLAB代码,你也可以用来检验计算结果。...

您好,我明白了您刚刚提出的几种不一致的可能。我现在如果想得到在0<Y<100区间内的最小值,且对应X1,X2,X3值。请问在matlab里怎么实现它呢?
29楼2015-01-21 16:23:42
已阅   回复此楼   关注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 ...

有3个疑问:
1.代码中if Y(i)>10 & Y(i)<50是指Y在区间[10,50]的最优吗?
2.我想得到的Y最小值,不是为了筛选出数据中的最优,而是根据回归方程推算出的最优而已。
3.如果想同时实现Y1和Y2=[1.39 1.329 2.269 1.754 1.602 2.026 5.361 1.238 1.208 1.359 4.694 1.511 1.541 2.481]同时最小最优时对应的X值,怎么处理?
32楼2015-01-21 17:13:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dshuanger 的主题更新
信息提示
请填处理意见