24小时热门版块排行榜    

查看: 1227  |  回复: 4

zyq19911118

新虫 (初入文坛)

[求助] ln(1+r*(1-x)/x)=rh(1/T-1/484.898) 知道一组T和对应的x值,需要拟合得到r和h的值 已有1人参与

原公式为ln(1+r*(1-x)/x)=rh(1/T-1/484.898),也即x=r/(exp(r*h*(1/T-1/484.898))+r-1),一组对应的T和x值分别为
  T              X
293.15        0.000126
298.15        0.00016
303.15        0.000205
308.15        0.000253
313.15        0.000315
318.15        0.000385
323.15        0.000466
这个应该可以用Matlab程序编辑计算,输入T和相应的x值,计算得到r和h的值,
这组数据 拟合得到的r值应该很小,在0.008附近,h值很大,在350000附近。
拟合得到的r和h值,代入T得到的相应x计算值与x实际值偏差小于2%。
急求,跪求  希望大神指点。。。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
zyq19911118(pippi6代发): 金币+30 2015-05-29 21:51:36
参数        最佳估算
----------        -------------
r                  0.0337841231633771
h                  122839.17638377

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

No        实测值x        计算值x
1        0.000126        0.0001256
2        0.00016        0.0001594
3        0.000205        0.0002008
4        0.000253        0.0002511
5        0.000315        0.0003119
6        0.000385        0.0003849
7        0.000466        0.0004722
--------------------
你那个区间限定似乎不妥,误差超出。
2楼2015-05-29 17:09:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyq19911118

新虫 (初入文坛)

pippi6: 帮你发了30。如想多发,请告知。 2015-05-29 23:00:21
引用回帖:
2楼: Originally posted by feixiaolin at 2015-05-29 17:09:51
参数        最佳估算
----------        -------------
r                  0.0337841231633771
h                  122839.17638377

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

No        实测值x        计算值x
1        0.000126        0.0001256
2        0.00016        0.0001594
3        0.000 ...

师兄,您好 我怎么发不了金币呢,您那边可能需要应助 我才能发放的吧。另外,您编写的Matlab程序可以给我一下参考吗,我之后数据处理可能还会用到,多谢 师兄
3楼2015-05-29 21:43:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wurongjun

专家顾问 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
zyq19911118(feixiaolin代发): 金币+40 2015-05-30 11:05:17
程序:
function nihrh
Data=[
293.15        0.000126
298.15        0.00016
303.15        0.000205
308.15        0.000253
313.15        0.000315
318.15        0.000385
323.15        0.000466];
a0=[0.008,350000]%初值
b=nlinfit(Data(:,1),Data(:,2),@frh,a0);
X=frh(b,Data(:,1));
disp(['最优值r=',num2str(b(1),6),',最优值h='num2str(b(2),6)])
disp(['拟合值:'])
disp([num2str(X,6)])
function x=frh(a,T)
x=a(1)./(exp(a(1)*a(2)*(1./T-1/484.898))+a(1)-1);
运行:
>> nihrh
a0 =
  1.0e+005 *
    0.0000    3.5000
最优值r=0.00840754,最优值h=350000
拟合值:
0.000161801
0.000192137
0.000227013
0.000266957
0.000312548
0.000364426
0.000423294
善恶到头终有报,人间正道是沧桑.
4楼2015-05-30 10:43:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

引用回帖:
3楼: Originally posted by zyq19911118 at 2015-05-29 21:43:51
师兄,您好 我怎么发不了金币呢,您那边可能需要应助 我才能发放的吧。另外,您编写的Matlab程序可以给我一下参考吗,我之后数据处理可能还会用到,多谢 师兄...

我是1stop整的,代码如下

Parameters   h, r;
Variable  T, X;
Function  x=r/(exp(r*h*(1/T-1/484.898))+r-1);
data;
//  T              X
293.15        0.000126
298.15        0.00016
303.15        0.000205
308.15        0.000253
313.15        0.000315
318.15        0.000385
323.15        0.000466
ln(1+r*(1-x)/x)=rh(1/T-1/484.898) 知道一组T和对应的x值,需要拟合得到r和h的值
1.PNG
5楼2015-05-30 11:03:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zyq19911118 的主题更新
信息提示
请填处理意见