博文

工欲善其事,必先利其器 一些类库和资源 C++(转)(2007-07-13 16:26:00)

摘要:  工欲善其事,必先利其器 一些类库和资源(zz) C++  1,前言   无数次听到“我要开始学习C++!”的呐喊,无数次听到“C++太复杂了,我真的学不会”的无奈。Stan Lippman先生曾在《C++ Primer》一书中指出“C++是最为难学的高级程序设计语言一”,人们常将“之一”去掉以表达自己对C++的敬畏。诚然,C++程序设计语言对于学习者的确有很多难以逾越的鸿沟,体系结构的庞大,应接不暇并不断扩充的特性……除此之外,参考资料之多与冗杂使它的学习者望而却步,欲求深入者苦不堪言。希望这一份不完全导引能够成为您C++学习之路上的引路灯。   撰写本文的初衷并不打算带领大家体验古老的C++历史,如果你想了解C++的历史与其前期发展中诸多技术的演变,你应当去参考Bjarne的《The Design and Evolution of C++》。当然也不打算给大家一个无所不包的宝典(并非不想:其一是因水平有限,其二无奈C++之博大精深),所给出的仅仅是一些我们认为对于想学习C++的广大读者来说最重要并且触手可及的开发与学习资源。   本文介绍并分析了一些编译器,开发环境,库,少量的书籍以及参考网站,并且尽可能尝试着给出一个利用这些资源的导引,望对如同我们一样的初学者能够有所裨益。 ------------------------------------------------------------------------   2,编译器   在C++之外的任何语言中,编译器都从来没有受到过如此之重视。因为C++是一门相当复杂的语言,所以编译器也难于构建。直到最近我们才开始能够使用上完全符合C++标准的编译器(哦,你可能会责怪那些编译器厂商不能尽早的提供符合标准的编译器,这只能怪他们各自维系着自身的一套别人不愿接受的标准)。什么?你说这无关紧要?哦,不,你所需要的是和标准化C++高度兼容的编译环境。长远来看,只有这样的编译器对C++开发人员来说才是最有意义的工具,尤其是对于程序设计语言的学习者。一至性让代码具备可移植性,并让一门语言及其库的应用更为广泛。嗯,是的,我们这里只打算介绍一些公认的优秀编译器。   2.1 Borland C++  ......

阅读全文(8523) | 评论:5

1.wxWidgets初步 (手把手有限元编程)(2007-06-17 23:36:00)

摘要:手把手有限元编程系列,给大家讲解如何利用c++语言,借助wxWidgets和opengl构建有限元程序.... 第一篇, wxWidgets初步 开发交互软件首先必须有界面, wxWidgets是很不错的界面库,由于wxWidgets的教材很少,所以本篇先介绍如何分离wxWidgets基本框架的几个类, 首先,MVApp类是主应用程序类, /***********************
MVApp.h
************************/
#ifndef MV_APP_H
#define MV_APP_H
#pragma warning (disable: 4018)
#include "wx_pch.h"
#include "MVFrame.h"
class MVApp: public wxApp
{
public:
    bool OnInit();
 MVFrame * GetFrame(void);
private:
 MVFrame * frame;
};
DECLARE_APP(MVApp);
#endif // #ifndef MV_APP_H /*************************************
MVApp.cpp
**************************************/
#include "MVApp.h"
IMPLEMENT_APP(MVApp)
//Main program (equivalent)
bool MVApp::OnInit()
{
    // Create the main frame window
    frame = new MVFrame(NULL, wxT("MV Post"),wxDefaultPosition, wxSize(650, 600));
    // Show the frame
    fra......

阅读全文(15719) | 评论:5

圆弧拟合的方法及程序(2007-06-17 16:56:00)

摘要:以前学数值计算经常要拟合曲线,昨天突然收到一医院朋友的求助, 要将颈椎椎体的样点拟合为圆弧曲线,如下图, 具体问题如下: 1、测量方法:从C2椎体齿状突后上缘A点至C7椎体后下缘B点,将每一颈椎椎体后上缘和后下缘坐标定点,记录相应的像素位置,然后输入专门设计的软件程序连接各标点并优化成弧线c?,连接A、B两点成直线a,测量弦a和弧c的长度。 2、计算方法:将数据输入公式,解二元一次方程c=2πr/360,sin(α/2)=a/2/r(r为模拟圆的半径,α为弧c所对的圆心角),自动求得人体颈椎正常的生理曲度α。 开始求解: 首先,就想到了最小二乘法,  根据题意, 该圆必然通过两个端点,圆心位置就在大弦的垂直平分线上, 为了节省搜索时间,采用下述方法: 1.首先求除端点外剩余点的中心点, 2.然后,通过两端点和中心点确定一圆 3.求大弦的垂直平分线,并求圆心到大弦中点的距离H 4.从圆心出发,沿着大弦的垂直平分线往两边以0.01H为单位往两边搜索,利用最小二乘原理确定最合理值。 程序附后,结果如下,验证合理: 数据点个数为 12
相应坐标为:
   1:     6.440   3.600
   2:     6.380   2.610
   3:     6.400   2.340
   4:     6.480   2.020
   5:     6.540   1.800
   6:     6.670   1.450
   7:     6.720   1.260
   8:......

阅读全文(7811) | 评论:3

算法的力量(摘)(2007-06-17 13:18:00)

摘要: 评论: 虽行业不同,但思路相通。提高计算效率,节省资源是编程人员共同的目的。   算法的力量 ( 李开复) 

         算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实大家都被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在“开复学生网”上,有位同学生动地把这些基础课程比拟为“内功”,把新的语言、技术、标准比拟为“外功”。整天赶时髦的人最后只懂得招式,没有功力,是不可能成为高手的。

         算法与我

         当我在1980年转入计算机科学系时,还没有多少人的专业方向是计算机科学。有许多其他系的人嘲笑我们说:“知道为什么只有你们系要加一个‘科学’,而没有‘物理科学系’或‘化学科学系’吗?因为人家是真的科学,不需要画蛇添足,而你们自己心虚,生怕不‘科学’,才这样欲盖弥彰。”其实,这点他们彻底弄错了。真正学懂计算机的人(不只是“编程匠”)都对数学有相当的造诣,既能用科学家的严谨思维来求证,也能用工程师的务实手段来解决问题——而这种思维和手段的最佳演绎就是“算法”。

         记得我读博时写的Othello对弈软件获得了世界冠军。当时,得第二名的人认为我是靠侥幸才打赢他,不服气地问我的程序平均每秒能搜索多少步棋,当他发现我的软件在搜索效率上比他快60多倍时,才彻底服输......

阅读全文(12324) | 评论:1

跨世纪的中国计算力学(摘)(2007-06-17 13:07:00)

摘要: 推荐:     钟万勰程耿东是中国有限元理论及软件的开拓者,是有限元编程的老前辈。本文对20世纪中国有限元的发展作了概述, 是一篇很值得一看的文章。另外,本文提及人物均为中国有限元名人,或在理论方面,或在应用方面,都是耳熟皆知的人物。 跨世纪的中国计算力学 钟万勰  程耿东
一、我国计算机力学的形成和发展       随着计算机的发展,计算机技术、计算数学和力学交叉而产生了一个新的学科分支,这就是计算力学。计算力学致力于研究采用计算机技术求解工程和科学中的力学及与力学有关的耦合问题的理论、算法和软件。计算机技术提供的可能性和来自工业和其他科学部门的需求推动着计算力学的飞速发展,而计算力学已经取得的成就,使得在这世纪之交,计算已经和实验及理论分析成为力学工作者解决工程和科学中的力学问题的三大支往,在推动力学学科自身发展中也起着越来越重要的作用。钱学森最近指出,“总起来一句话:今日的力学要充分利用计算机和现代计算技术去回答一切宏观的实际科学技术问题,计算方法非常重要;另一个辅助手段是巧妙设计的实验”。对于力学工作者来说,今天的计算力学已经成为他们通向工程的桥梁,为国民经济建设和国防建设服务的不可缺少的手段,也是力学学科和高新技术的结合点。
  计算力学从60年代初开始登上国际力学界的舞台,并马上得到了飞速的发展。50年代中期Martin,Tuner,Clough,Todd等人提出了有限元方法的基本思想和方法,这个方法特别适合于计算机上使用,对求解各类力学问题表现出广泛的适用性。由于商品化计算机的出现,特别是编程语言的出现,这种方法立即受到广泛的注意。经过Zienkiewicz等的发展,在工业应用需求的强大推动下,有限元方法的发展十分迅速,在不到10年的时间里构造了一大批单元,吸引了一大批数学工作者参加进来,和力学工作者一起逐步建立起有限元方法的数学理论,建立了通用的求解方法和程序段。在传统的力学中,结构力学和固体力学的各类问题,如杆系、板、壳、块体,其基本方程和求解方法都有明显的差别,归属于不同的研究领域,现在,在计算力学这一新工具方法面前统一了起来,力学界在......

阅读全文(7441) | 评论:3

有限元分析的发展趋势(摘)(2007-06-17 12:54:00)

摘要: 推荐: 泛泛讲解,方向把握明确!                     有限元分析的发展趋势 吴 维      1965年“有限元”这个名词第一次出现,到今天有限元在工程上得到广泛应用,经历了三十多年的发展历史,理论和算法都已经日趋完善。有限元的核心思想是结构的离散化,就是将实际结构假想地离散为有限数目的规则单元组合体,实际结构的物理性能可以通过对离散体进行分析,得出满足工程精度的近似结果来替代对实际结构的分析,这样可以解决很多实际工程需要解决而理论分析又无法解决的复杂问题。      近年来随着计算机技术的普及和计算速度的不断提高,有限元分析在工程设计和分析中得到了越来越广泛的重视,已经成为解决复杂的工程分析计算问题的有效途径,现在从汽车到航天飞机几乎所有的设计制造都已离不开有限元分析计算,其在机械制造、材料加工、航空航天、汽车、土木建筑、电子电器,国防军工,船舶,铁道,石化,能源,科学研究等各个领域的广泛使用已使设计水平发生了质的飞跃,主要表现在以下几个方面:      增加产品和工程的可靠性;      在产品的设计阶段发现潜在的问题;      经过分析计算,采用优化设计方案,降低原材料成本;      缩短产品投向市场的时间;      模拟试验方案,减少试验次数,从而减少试验经费。      国际上早在60年代初就开始投入大量的人力和物力开发有限元分析程序,但真正的CAE软件是诞生于70年代初期,而近15年则是CAE软件商品化的发展阶段,C......

阅读全文(22268) | 评论:4

我国计算力学软件的现状与思考(摘)(2007-06-17 12:49:00)

摘要: 我国计算力学软件的现状与思考 袁明武 北京大学力学与工程科学系,北京,100871 摘要:本文从国际、国内以有限元方法为基础的计算力学软件的现状和对比出发,探讨了我国在开发、营销、维护等诸多环节中的若干问题,进行了一些思考,提出了为发展我国的计算力学软件的若干参考性的意见。  关键词:有限元、计算力学软件  1 国际上计算力学软件的现状  从1965年第一次出现“有限元”这个名词,到70年代美国第一个有限元结构分析系统SAP问世,到今天已有25年的时间。整整一代人在这一方面做了艰苦卓绝的努力,已经形成了若干国际上著名的大型计算力学系统,解决了成千上万个工程实际课题,为科学技术的发展和工程应用做出了不可磨灭的贡献。目前这些系统已经相当成熟,在国际市场上拥有大量的用户。  美国MSC-NASTRAN系统以最早期的主要用于航空航天方面的线性有限元分析系统为基础,兼并了以前后处理闻名全球的PDA公司的PATRAN,以及以有限元建模著名的ARIS,又在以冲击、接触为特长的DYNA3D的基础上组织开发了流体、固体相互作用的非线性程序DYTRAN,同时又与国际上著名的非线性有限元分析程序ABAQUS联手,推出了MSC-ABAQUS,从而形成了集国际上最优秀的有限元分析系统之大成的规模最大的有限元分析系统,它突出的显示了在计算力学方面深厚、先进的科学基础,杰出的经营、管理思想和现代集成化的做法,在短时间内以兼并为主要手段把世界上最好的技术集中起来为我所用,形成了国际上规模最大、功能最全、质量最好的大型集成化计算力学软件系统。美国ANSYS系统是长期独立开发的大型线性、非线性有限元分析系统,他的强大的功能、灵活方便的用户界面博得了世界上数千家用户的钟爱,美国非线性有限元分析系统ABAQUS由三位年轻人以两千美元起家在自己的汽车库里开始写程序,到今天发展成为国际上著名的能求解高难度非线性问题的通用有限元程序系统,经历了艰苦的开发、应用、经营的路程,达到了巨大的成功。  为什么这么多著名的、重要的有限元程序系统都集中在美国得以实现,以个人的见解主要有以下原因: 1)美国的科学界、工程界非常重视把科学研究的成果转化为生产力;  ......

阅读全文(13081) | 评论:1

Sfea软件开发路线和现有功能介绍(2007-06-15 16:33:00)

摘要:点击查看:面向对象有限元软件Sfea介绍 1.Sfea开发路线(红色字体为已完成部分)  平面静力分析    平面渗流分析  平面固结分析  平面动力分析  平面固结动力分析(预计07年9月份完成)  三维静动力分析  三维渗流分析  三维固结分析  三维固结动力分析 2.Sfea现有功能 静力固结程序:
单元采用四边形等参单元 本构模型: 弹性模型、邓肯~张模型 实例分析: (1) 密云水库大坝渗流孔隙压力场计算 大坝断面如图所示,   (2) 某均质坝固结计算 原始网格
采用渗流程序调整后的网格
采用BIOT固结程序计算稳定渗流后的孔压图

稳定渗流后竖向位移
稳定渗流后横向位移
稳定渗流后孔隙压力
......

阅读全文(5741) | 评论:4

灵魂不死 (摘)(2007-06-08 19:42:00)

摘要:灵魂不死:对话录
  斯诺思麦可士(简称斯):   斐拉里西斯(简称斐):   斯:现在请用一个字来告诉我,我死后会成什么?请你说得简洁一些。   斐:全部和无。   斯:想来就是这样。我给你提出一个问题,而你却用自相矛盾的方法来解决了它,这样的把戏并不新鲜。   斐:是的,你提出了一个先验的问题,却要让我仅用能表达内在知识的语言来回答,矛盾显然会接踵而来,这是没有任何疑问的。   斯:先验的问题和内在的知识怎么讲呢?当然,我以前也听到过这些说法,对于我来说,这也是老生常谈的事了,康德偏爱于这种说法,但也只是用来表述上帝的,并不以此来谈论其他的东西,这是十分正确和适宜的。他这样来论证:如果上帝在人世间,他便是意识之内的,如果不是在人世间而是在其之外的,这样他就是先验的了,这点是最清楚不过的了,你当然明白,你现在是尘世上呢还是超乎其外的,可是,这种康德式的胡言乱语再也没有什么作用了,它已经过时了,不适应现代的观点,而且在我们德国学问中都会有,已有了一些名流之士。   斐:(旁白)他指的是德国骗子。   斯:举例来说,像伟大非凡的施莱尔马赫和大智大慧的黑格尔。不过现在,我们已经抛弃了这种无谓之说。更确切地说,它与我们现在的思想格格不入,以致我们不能再忍受了,这样的话,还有什么作用和意义可言呢?   斐:先验的知识是超出可能的经验范围的,力求确定事物本身性质的一种知识。但是内在的知识却完全是限制在经验范围之内的。所以,除了实际的现象而外,它并不适用于其他事物。你只是一个个体,所以,死亡便是你的归宿,可是你的个性并不是你真实内在的存在,仅仅是存在的表面形式而已;个性也不是自在之物,而只是在时间的形式中表现出来的现象,才会有始有终。但是,你真正的存在根本意识不到时间也意识不到开始或是终结,更意识不到一个特定个体的有限性。真正的存在无处不有、无人不有。没有了它,谁也难以生存。因此,一旦死亡来临,你一方面作为个体是消失了,而另一方面,你却依然存在于整个世界之中,这,就是我前面说的,在你死后你会成为全部和无的真实意思。要想寻找出一个更准确、更简要的答案是十分困难的。我得承认,这种回答是自相矛盾的,这仅仅是因为你的生命是有限而你那不朽的成分却又是永恒的。你也许会说了,人的不朽成分也会应人的死亡而被毁灭掉的呀,这么说,你就又陷入到另一个矛盾之中......

阅读全文(23392) | 评论:3

程序员写诗 初恋-人生(2007-06-08 18:59:00)

摘要:初恋-人生   1、云飞扬(高中时代)
你是湖面的涟漪轻轻荡漾,
你是七色的云彩高高飘扬,
你是清晨的露珠微微闪亮,
你是美丽的鲜花淡淡开放。   我要采一缕阳光放在你的脸上,
我要那轻暇的风儿伴你一起飞扬,
我要美丽的小草为你摇荡,
我要青春的歌儿为你吟唱。   我要夜空的星光同你一样闪亮,
带着轻暇的风儿,来到我的身旁;
我要绚丽的青春伴你一起飞翔,
变为七色的云彩,化作我的新娘。
2、轻舞飞扬(大学时代)   美丽的鲜花淡淡开放,
我把思念高高挂在天上。
你唱着青春的歌谣高高飘扬,
化作他人的绚丽的衣裳。   歌声在阴霾的天空游荡,
带着我的忧伤飞翔;
梦想的船在黑夜里巡航,
载着我心中的彷徨。   时光悄悄划过我的身旁,
清风唤醒我沉睡的梦想。
我愿化作逝去的清风飞扬,
来世依偎在你的身旁。
3、你是我的天堂(研究生时代)   孤独的夜星光一样闪亮,
青春的歌儿依然在耳边荡漾。
我飞过青春绚丽的花房,
随意摘下一朵美丽的花儿飞扬,   我轻轻的飞翔,
带着绚丽的衣裳,
歌声轻轻的游荡,
我心依旧停留在你的天堂。   我轻轻的飞翔,
任阳光撕裂我的心房,
凭鲜血迸出我的胸腔,
映红你美丽的天堂。   4、美丽的天堂没有忧伤(老年时代)
美丽的鲜花依然开放,
青春的歌儿不再荡漾。
我站在离去的路边上,
垂恋记忆天堂中你高高的飘扬。   你是湖面的涟漪轻轻荡漾,
你是七色的云彩高高飞翔,
你是清晨的露珠微微闪亮,
你是美丽的鲜花淡淡开放。   你带着美丽的夕阳,
悄悄守侯在我的墓旁。
我化作逝去的清风飞扬,
依偎在你的身旁。......

阅读全文(3543) | 评论:8