加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

如何在Origin Lab中编写和调用C语言程序及复杂公式拟合

(2015-07-22 16:06:41)
标签:

it

分类: 理论与计算化学
前两天一朋友问我如何在Origin Lab中编写和调用C语言程序,我也没搞过,于是利用软件自带的Help说明(Programming->OriginC),捣鼓了两天,结果成功了,总结如下(我用的Origin 8.0):

1. 新建一个Project,点击工具栏的Code Builder按钮(齿轮)http://s6/mw690/001eQZVxzy6U2kmnuRv15&690Lab中编写和调用C语言程序及复杂公式拟合" TITLE="如何在Origin Lab中编写和调用C语言程序及复杂公式拟合" />

2. 进入Code Builder界面,同样新建,选择第一个C Filehttp://s16/mw690/001eQZVxzy6U2kvbzEbdf&690Lab中编写和调用C语言程序及复杂公式拟合" TITLE="如何在Origin Lab中编写和调用C语言程序及复杂公式拟合" />

3. 在程序区域编写所需代码,例如如下的程序就是利用二分法(bisection method)求解w tan(w/2) = x
http://s6/mw690/001eQZVxgy6U2kEI5wN25&690Lab中编写和调用C语言程序及复杂公式拟合" TITLE="如何在Origin Lab中编写和调用C语言程序及复杂公式拟合" />

4. 点击Bulid按钮进行编译
http://s13/mw690/001eQZVxgy6U2kQM3VOcc&690Lab中编写和调用C语言程序及复杂公式拟合" TITLE="如何在Origin Lab中编写和调用C语言程序及复杂公式拟合" />

 
5. 在LabTalk Console窗口中输入程序的名称及参数,如wx(1),就能运行程序并查看结果http://s13/mw690/001eQZVxgy6U2laXGLqcc&690Lab中编写和调用C语言程序及复杂公式拟合" TITLE="如何在Origin Lab中编写和调用C语言程序及复杂公式拟合" />

 
至此一个C程序搞定,如需将其导入拟合公式,则需要使用如下语句:
#include
其中F:\Softwares\OriginDataStroe\是wx.c的绝对路径

 

 
第二部分是如何在Origin中进行复杂公式,即无法直接写成y=f(x)形式的公式,比如中间需要求解上述w tan(w/2) = x方程得到参数w的情况,这时可以进行如下操作:

 
1. 进入Analysis->Non Liner Curve Fit->Fitting Function Organizer,参数如下,点击红框按钮进入Function编辑
http://s13/mw690/001eQZVxzy6U2mocyYY2c&690Lab中编写和调用C语言程序及复杂公式拟合" />

2. 以文献Inorg. Chem. 2014, 53, 10291中Page 10295中的公式为例,函数形式如下,其中x对应于1/T,也对应于Ln(tauL),用z替换了wx中的x:

#include
double ksi, z, w, f, tauInf, tauL;
//double wx(x);
ksi = 0.5*exp(Dksi*x);  
z = L/ksi;
// w tan(w/2)=z   solution  -> w(z)
w = wx(z);
f = 1.0/(1.0+w*w/(z*z));
tauInf = 0.5*tau1*exp(Dtau1*x);
tauL = tauInf*f;
y = ln(tauL);

OK,下面就是常规的给初值拟合,后面有空会继续学习Origin的其他功能。



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有