24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2025级博士研究生招生报考通知
查看: 4057  |  回复: 8

jiqiang

木虫 (正式写手)

[求助] origin 非线性自定义拟合问题~~方程组编写及运行~~

小弟专业是有机化学,现在课题设计到一个用origin进行非线性拟合的问题~~挣扎了很久也不会~~数学程序底子薄~~急求帮助~~目前只知道应该在origin里进行自定义编辑公式~~可是这个公式就是编不了,请高手帮忙~~里面的β是我要求的量,里面的T(z)、Z是我的实验测得的数据量,其他的都为已知的量,其中L eff和L是近似相等的,可以当做一个量。还有公式里面有积分,是不是还要把要将公式进行一番推导变换呢?帮我看看~~还有这个公式怎么才能编辑出来~~用origin C 语言怎么表示?如能帮小弟大忙,感激不尽~~如果来北京~~小弟请客~~
公式见附图中公式(1)、(2)、(3)~~
origin 非线性自定义拟合问题~~方程组编写及运行~~
计算截图.JPG
回复此楼

» 猜你喜欢

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

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

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
jiqiang: 金币+20, 请求帮助~~最好能是origin拟合~~小弟是学化学的,常用是的origin软件~~其他的软件更不会了 2013-05-30 23:22:47
csgt0: 金币+1, 谢谢 2013-05-31 11:41:20
你把需要拟合的数据也发上来吧。
常用的最强大的三款曲线拟合软件:1stopt,MATLAB,Origin应该都能解决你的问题。
1stopt就拟合效果而言,几乎是最强大的,可以直接拟合带积分项的公式。
MATLAB自己写个小程序,就能把积分项包含进拟合公式中,或者考虑用MATLAB自带的cftool工具箱。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2013-05-30 08:52:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jiqiang

木虫 (正式写手)

引用回帖:
2楼: Originally posted by 月只蓝 at 2013-05-30 08:52:41
你把需要拟合的数据也发上来吧。
常用的最强大的三款曲线拟合软件:1stopt,MATLAB,Origin应该都能解决你的问题。
1stopt就拟合效果而言,几乎是最强大的,可以直接拟合带积分项的公式。
MATLAB自己写个小程序, ...

我把数据文件发上来了~~帮我看看能不能弄~~谢过了~~
3楼2013-05-30 23:17:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jiqiang

木虫 (正式写手)

这是要用的数据文件~~

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 计算数据信息.doc
  • 2013-05-30 23:20:38, 70 K
  • 附件 2 : 数据1.xls
  • 2013-05-30 23:20:39, 9.5 K
  • 附件 3 : 数据2.xls
  • 2013-05-30 23:20:41, 10.5 K
  • 附件 4 : 数据3.xls
  • 2013-05-30 23:20:42, 9.5 K
4楼2013-05-30 23:20:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
4楼: Originally posted by jiqiang at 2013-05-30 23:20:52
这是要用的数据文件~~

Z0=πω0^2/λ=4.2764*10^-16,是不是算错了?
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
5楼2013-05-31 09:26:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
4楼: Originally posted by jiqiang at 2013-05-30 23:20:52
这是要用的数据文件~~

你的式子Z0=πω0^2/λ,表示是除以波长,你计算的结果却是按乘以波长计算得到的。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
6楼2013-05-31 09:28:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
jiqiang: 金币+50, 有帮助, 还是很谢谢你~~~ 2013-05-31 23:11:14
csgt0: 金币+2, 谢谢 2013-06-03 14:39:36
对于第一组数据,按z0= 0.0015117处理
参数 Beta = 0.0000013251423784
各常数数值都很大,初值不好给出,MATLAB程序列如下,仅供参考,高版本的1stopt跑出来效果应该会好很多。
%--------------------------------------------------------------------------------------------------
function feixianxingnihe314
%clear all;clc
format long

zspan=[-40
-37.9375
-35.875
-33.8125
-31.75
-29.6875
-27.625
-25.5625
-23.5
-21.4375
-19.375
-17.3125
-15.25
-13.1875
-11.125
-9.0625
-7
-4.9375
-2.875
-0.8125
1.25
3.3125
5.375
7.4375
9.5
11.5625
13.625
15.6875
17.75
19.8125
21.875
23.9375
26
28.0625
30.125
32.1875
34.25
36.3125
38.375
40.4375

];   
Texp=[
0.99345
0.99
0.98806
0.98477
0.98216
0.98184
0.97636
0.97683
0.96763
0.96138
0.9594
0.9472
0.92474
0.89896
0.8736
0.85005
0.80012
0.7539
0.74086
0.678
0.60586
0.68747
0.7964
0.85913
0.89399
0.90719
0.93361
0.95553
0.96915
0.97888
0.98453
0.98644
0.98746
0.98978
0.99194
0.99773
0.99861
1.00266
1.00016
1.00033
];    %E的数据,在此输入

k0=1e-6;
lb=0;
ub=inf;


%-------------------------------------------------------------------------

% 使用函数lsqnonlin()进行参数估计

OPTIONS=optimset('MaxFunEvals',1000);
[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...
    lsqnonlin(@ObjFunc,k0,lb,ub,OPTIONS,Texp);

%ci = nlparci(k,residual,jacobian);
%residual;
fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n')
fprintf('\n\t参数 D = %.16f',k(1))

y=KineticsEqs(k);
R2=1-sum((Texp-y').^2)./sum((Texp'-mean(y)).^2);
fprintf('\n\t相关系数之平方R^2 = %.16f',R2);
figure
plot(zspan,KineticsEqs(k),'b',zspan,Texp,'or'),legend('计算值','实验值','Location','Best')


%-------------------------------------------------------------------------

function f = ObjFunc(k,Texp)
f=KineticsEqs(k)'-Texp;

%------------------------------------------------------------------------
function xt = KineticsEqs(k)
zspan=[-40
-37.9375
-35.875
-33.8125
-31.75
-29.6875
-27.625
-25.5625
-23.5
-21.4375
-19.375
-17.3125
-15.25
-13.1875
-11.125
-9.0625
-7
-4.9375
-2.875
-0.8125
1.25
3.3125
5.375
7.4375
9.5
11.5625
13.625
15.6875
17.75
19.8125
21.875
23.9375
26
28.0625
30.125
32.1875
34.25
36.3125
38.375
40.4375
];


I0=1.492e12;
Leff=1;

z0= 0.0015117;
%z0=4.2764e-16;

%q0=k(1)*I0*Leff./(1+zspan.^2./(z0^2));
n=length(zspan);
for i=1:n;
q0=k(1)*I0*Leff./(1+zspan(i).^2./(z0^2));
fun=@(x)  log(1+q0.*exp(-x.^2));
integ(i)=quad(fun,-1e5,1e5);
xt(i)=1./sqrt(pi)./q0.* integ(i);
end
origin 非线性自定义拟合问题~~方程组编写及运行~~-1
附图1.jpg

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
7楼2013-05-31 15:25:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jiqiang

木虫 (正式写手)

引用回帖:
7楼: Originally posted by 月只蓝 at 2013-05-31 15:25:44
对于第一组数据,按z0= 0.0015117处理
参数 Beta = 0.0000013251423784
各常数数值都很大,初值不好给出,MATLAB程序列如下,仅供参考,高版本的1stopt跑出来效果应该会好很多。
%----------------------------- ...

这个模拟看不懂~~而且模拟的偏差有点大~~太感谢了~~辛苦了~~今天又看了一篇文献,发现思路想错了~~用的一个泰勒级数展开~~现在已经会了~~要有不懂的,希望还能向你请教~~
8楼2013-05-31 23:10:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wyliu_as

铁杆木虫 (著名写手)

引用回帖:
3楼: Originally posted by jiqiang at 2013-05-30 23:17:52
我把数据文件发上来了~~帮我看看能不能弄~~谢过了~~...

3#的头像很搞啊,稀饭啊
请大家去我的版面看看,正在收集开源期刊,http://emuch.net/bbs/myf.php?ffid=282
9楼2013-12-15 10:37:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jiqiang 的主题更新
信息提示
请填处理意见