土木在线论坛 \ 水利工程 \ 水利软件 \ 开放式计算程序OpenFC V3.0,欢迎试用!

开放式计算程序OpenFC V3.0,欢迎试用!

发布于:2006-03-21 12:53:21 来自:水利工程/水利软件 [复制转发]

我的软件“开放式计算程序OpenFC V3.0”,适合各种工程计算。
在网站不能升级,请在这里下载。
欢迎试用,提出宝贵意见!

申明:内容来自用户上传,著作权归原作者所有,如涉及侵权问题,请点击此处联系,我们将及时处理!

全部回复(2 )

只看楼主 我来说两句抢地板
  • wanglu
    wanglu 沙发
    OpenFC 与 MATLAB 7.0 的运行速度比较

    部分内容摘自中国仿真互动(http://www.simwe.com/)论坛上原先进行比较的源代码,然后进行改写,再次感谢当时blast等帮助测试!

    ================================================================================

    该程序段用C++描述为:

    s=0.0;
    for(x=0.0;x<=1.0;x=x+0.0011)
    {
    for(y=1.0;y<=2.0;y=y+0.0009)
    s=s+cos(1-sin(1.2*x^(y/2)+cos(1-sin(1.2*y^(x/2)))));
    }
    //输出s的值和运行时间。

    --------------------------------------------------------------------------------

    用OpenFC计算的源程序为:

    (:x,y,s)=
    {
    s=0,x=0,
    SetRunTime(), //计时开始;
    while{
    x<=1, //while循环算法;
    y=1,
    while{
    y<=2,
    s=s+cos(1-sin(1.2*x^(y/2)+cos(1-sin(1.2*y^(x/2))))),
    y=y+0.0009
    },
    x=x+0.0011
    },
    outstr["\013\010结果:"],out ,
    outstr[" 时间:"],out[GetRunTime()], //计时结束;
    outstr["\013\010"]
    };

    f(x,y)=cos(1-sin(1.2*x^(y/2)+cos(1-sin(1.2*y^(x/2))))); //函数定义;

    (:s)=
    {
    SetRunTime(), //计时开始;
    s=sum[#f,0,1,0.0011,1,2,0.0009], //用sum函数计算;
    outstr["\013\010结果:"],out ,
    outstr[" 时间:"],out[GetRunTime()], //计时结束;
    outstr["\013\010"]
    };

    用OpenFC的计算输出:

    结果:1008606.649474411 时间:1.933

    2.
    结果:1008606.64947441 时间:1.722

    5.

    --------------------------------------------------------------------------------

    用MATLAB 7.0的for循环和采用向量化方法用sum函数计算
    作者:blast

    %============================
    %循环方法
    t1=cputime;
    s=0.0;
    for x=0.0:0.0011:1.0;
    for y=1.0:0.0009:2.0;
    s=s+cos(1-sin(1.2*x^(y/2)+cos(1-sin(1.2*y^(x/2)))));
    end
    end
    t1=cputime-t1
    answer1=s
    %======================
    %半向量法
    t2=cputime;
    s=0.0;
    x=0.0:0.0011:1.0;
    y=1.0:0.0009:2.0;
    for i=1:910
    for j=1:1112
    s=s+cos(1-sin(1.2*x(i)^(y(j)/2)+cos(1-sin(1.2*y(j)^(x(i)/2)))));
    end
    end
    t2=cputime-t2
    answer2=s
    %=========================
    %向量法
    t3=cputime;
    x=zeros(910,1112);
    y=zeros(910,1112);
    x1=0.0:0.0011:1.0;
    y1=1.0:0.0009:2.0;
    for i=1:910
    x(i,: )=x1(i);
    end
    for i=1:1112
    y(:,i)=y1(i);
    end
    s=cos(1-sin(1.2.*x.^(y./2)+cos(1-sin(1.2.*y.^(x./2)))));
    a=sum(sum(s));
    t3=cputime-t3
    answer3=a
    %============================

    用 MATLAB 的计算输出:

    t1 =

    12.3578


    answer1 =

    1.0086e+006

    t2 =

    14.5209

    answer2 =

    1.0086e+006


    t3 =

    5.1975

    answer3 =

    1.0086e+006

    ================================================================================

    用一元函数比较 OpenFC 与 MATLAB 7.0 的运行速度

    --------------------------------------------------------------------------------

    我的OpenFC程序如下:

    (:x,y,s)=
    {
    s=0,x=0,
    SetRunTime(), //计时开始;
    while{
    x<=1234, //while循环算法;
    s=s+cos(1-sin(1.2*x^(0.12/2)+cos(1-sin(1.2*0.12^(x/2))))),
    x=x+0.0011
    },
    outstr["\013\010结果:"],out ,
    outstr[" 时间:"],out[GetRunTime()], //计时结束;
    outstr["\013\010"]
    };

    f(x)=cos(1-sin(1.2*x^(0.12/2)+cos(1-sin(1.2*0.12^(x/2))))); //函数定义;

    (:s)=
    {
    SetRunTime(), //计时开始;
    s=sum[#f,0,1234,0.0011], //用sum函数计算;
    outstr["\013\010结果:"],out ,
    outstr[" 时间:"],out[GetRunTime()], //计时结束;
    outstr["\013\010"]
    };

    OpenFC运行结果如下:

    结果:1087309.11281616 时间:2.534

    2.
    结果:1087309.112815978 时间:2.253

    5.

    --------------------------------------------------------------------------------

    用MATLAB 7.0的for循环和采用向量化方法用sum函数计算

    %============================
    %循环方法
    t1=cputime;
    s=0.0;
    for x=0.0:0.0011:1234;
    s=s+cos(1-sin(1.2*x^(0.12/2)+cos(1-sin(1.2*0.12^(x/2)))));
    end
    t1=cputime-t1
    answer1=s
    %======================
    %半向量法
    t2=cputime;
    s=0.0;
    x=0.0:0.0011:1234.0;
    for i=1:1121819
    s=s+cos(1-sin(1.2*x(i)^(0.12/2)+cos(1-sin(1.2*0.12^(x(i)/2)))));
    end
    t2=cputime-t2
    answer2=s
    %=========================
    %向量法
    t3=cputime;
    x=0.0:0.0011:1234.0;
    s=cos(1-sin(1.2.*x.^(0.12/2)+cos(1-sin(1.2*0.12.^(x./2)))));
    a=sum(s);
    t3=cputime-t3
    answer3=a
    %============================

    用 MATLAB 的计算输出:

    t1 =

    13.7297

    answer1 =

    1.0873e+006

    t2 =

    15.2920

    answer2 =

    1.0873e+006

    t3 =

    5.6581

    answer3 =

    1.0873e+006

    --------------------------------------------------------------------------------

    我不太会用 MATLAB ,是不是将以上代码写成M函数,速度会更快一些?blast的测试结果比我的测试结果快好多(OpenFC 约比MATLAB 快2倍),但我没用过M函数,请大家测试一下!
    欢迎大家用其他的表达式进行测试!
    2006-03-26 21:49:26

    回复 举报
    赞同0
  • wanglu
    wanglu 板凳
    开放式计算程序OpenFc
    内容简介:

    OpenFC是一个开放式的数值计算程序,由OpenForcal.dll和Forcal.dll提供支持。
    OpenFC能够编译运行具有固定格式的源程序(字符串表达式),源程序中可以使用C++风格的注释。源程序中可以使用的运算符有+、-、*、/、^、>、>=、<、<=、==、!=、&、|、!、++、--等等,具有数值计算、逻辑运算、关系运算、字符数据处理、流程控制、函数调用等许多的可编程功能。
    OpenFC是开放式的,很容易进行功能扩展。OpenFC通过加载OpenForcal或OForcal扩展动态库进行功能扩展,这些库可以用VC、Delphi或者Fortran等高级语言进行编写。
    OpenFc可以对源程序进行模块化编译,可以打开多个文件同时进行操作,提高了运行效率。
    OpenFC允许用户将常用的计算定义为命令,通过命令菜单执行计算。命令菜单是OpenFC提倡的计算方式。
    在OpenFC中,用户也可以自定义窗口,用户在窗口中可以使用编辑框、静态文本、普通按钮、单选按钮、复选框、组框、位图等控件。用户自定义命令和用户自定义窗口改善了人机界面,强烈推荐使用。
    用户可通过环境文件对OpenFc的工作环境进行配置,如设置需要加载的扩展动态库、设置模块、设置命令、设置常量等等,一切可按照自己的喜好和实际工作需要进行配置。
    目前,通过OpenForcal或OForcal扩展动态库为OpenFC增加的功能有:解非线性方程(组)、多元积分、微分方程求解、函数图形绘制(由OpenGL图形库提供支持,可以绘制精美的二维和三维数学函数图形)等等。

    天空软件站下载:http://www.skycn.com/soft/14414.html
    华军软件园下载:http://www.onlinedown.net/soft/33731.htm
    我的主页:forcal.yeah.net
    2006-03-26 21:45:26

    回复 举报
    赞同0
这个家伙什么也没有留下。。。

水利软件

返回版块

13.32 万条内容 · 203 人订阅

猜你喜欢

阅读下一篇

重装Winodws XP系统的一些经验和技巧2

如果你的硬盘的文件系统是NTFS或者你不想格式化硬盘的,或者已经格式化完了,你必须把你的COMS设置为光驱为第一引导启动。 CMOS设置:(以Award主板为例,其它主板亦基本相同) 启动电脑按DEL键(有的电脑是F2键),进入CMOS设置,进入BIOS FEATURES SETUP,再进入Boot Sequence按上下键选CD-ROM,C,A,再按ESC键、F10键、Y、回车即可,手动关机或放入安装光盘后按reset键。(安装光盘最好是有自启动功能的)

回帖成功

经验值 +10