注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Mr.Right

不顾一切的去想,于是我们有了梦想。脚踏实地的去做,于是梦想成了现实。

 
 
 

日志

 
 
关于我

人生一年又一年,只要每年都有所积累,有所成长,都有那么一次自己认为满意的花开时刻就好。即使一时不顺,也要敞开胸怀。生命的荣枯并不是简单的重复,一时的得失不是成败的尺度。花开不是荣耀,而是一个美丽的结束,花谢也不是耻辱,而是一个低调的开始。

网易考拉推荐

Numerical Recipes in C++ 3rd 使用范例  

2012-04-06 23:27:31|  分类: 学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

即以此功德,庄严佛净土。上报四重恩,下济三途苦。惟愿见闻者,悉发菩提心。在世富贵全,往生极乐国。

1)Demo 1

#include <iostream>
#include "D:\sources\code\nr3.h"
#include "D:\sources\code\calendar.h"

int main()
{
int month, day, year;
cout << "Enter mm dd yyyy: ";
while (cin >> month >> day >> year) {
int julDay = julday(month, day, year);
cout << "For " << month
<< "/" << day
<< "/" << year
<< ", the Julian Day is " << julDay
<< endl;

int calmonth, calday, calyear;
caldat(julDay, calmonth, calday, calyear);
cout << "For julDay = " << julDay <<", caldat yields "
<< calmonth << "/" << calday << "/" << calyear << endl;

cout << endl << "Enter mm dd yyyy: ";
}
cout << endl << "Goodbye for now." << endl;
return 0;
}

编译链接: g++ -Wall -W demo1.cpp -o demo1

执行输入:

Enter mm dd yyyy: 04 06 2012
For 4/6/2012, the Julian Day is 2456024
For julDay = 2456024, caldat yields 4/6/2012

Enter mm dd yyyy: kkk

Goodbye for now.


2) Demo 2

#include <iostream>
#include "D:\sources\code\nr3.h"
#include "D:\sources\code\bessel.h"

/* Driver for routine bessjy */

int main()
{
/*
The Bessjy struct is defined in code/bessel.h
Since it's C++, the struct definition is automatically
a typedef.
*/
Bessjy bessjy;
int n;
int i;

for (n = 1; n <= 3; n++) {
for (i = 0; i < 5; i++ ) {
double x = i+1;
double z = bessjy.jn(n,x);
printf("Bessjy.jn(%d, %.1f) = %+f\n",n, x, z);
}
printf("\n");
}

return 0;
}

编译链接: g++ -Wall -W demo2.cpp -o demo2

3)demo3 --- NR 3 C++ 非线性函数求极值

#include <iostream>
#include "D:\sources\code\nr3.h"
#include "D:\sources\code\mins.h"


// 下面的struct 换成 class 也可以
struct Ftor_s{
  double operator()(const double x) {
      return x*(x-1);
    }
};
int main(){
    Ftor_s ftor_s;
    Golden golden;
    double xmin;
    golden.bracket(1,2, ftor_s ); // 1, 2 提供两个初值,猜想最小值点在次区间中,
    //这里的猜测就不对,但是不会影响最后算出正确的结果
    //这个函数就是在求一个正确的区间
    xmin=golden.minimize(ftor_s); // 求最小值   

    cout<<"xmin = "<<xmin<<endl;

    return 0;
}

编译链接:g++ -o bracket.out bracket.cpp

  评论这张
 
阅读(874)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016