易达公文网

易达公文网 > 范文大全 > 公文范文 > / 正文

政治素质,思想品行,社会形象方面现实表现范文6篇

2022-11-29 18:50:07

篇一:政治素质,思想品行,社会形象方面现实表现范文

  关于领导干部军训心得体会

  这次的军训的确是我人生中的一次难得的考验和磨励军训不但 培养人有吃苦耐劳的精神而且能磨练人的坚强意志下面是学习啦小 编给大家整理的领导干部军训心得体会希望你喜欢

  *月 25 至*月 28 日我们参加了为期四天的封闭式军训虽然只有 短短的四天但给我留下了太多的美好绿色的军装嘹亮的歌声整齐的 步伐矫健的军姿……同时军训还锻炼了我的体魄增进了与其他学员 之间的友谊更重要的是军训让我磨练了意志强化了规则意识培养了 团队精神……军训让我收获匪浅

  军训的内容丰富多彩包含基本军姿训练、体能训练、齐步走和 跑步走等多方面内容四天的生活有声有色有苦有乐教官对我们要求 很严格每个动作都一丝不苟尤其是站军姿“抬头挺胸收腹重心前 移……”长时间保持同一个姿势有时候真有点坚持不住秋天的太阳虽 然不太火辣但长时间在太阳底下晒的滋味不太好受这时候才感觉到 坐在宽敞明亮的办公室内上班其实还是很幸福的训练是漫长的是苦 涩的但有时候也是快乐的训练的空隙在教官的统一组织下我们展开 了歌喉唱起了军歌在嘹亮的歌声中我感觉自己充满了活力一下子年 轻了几岁仿佛又回到了大学时代

  记得刚踏进大学校门时作为一名新生我参加了一次军训那次军 训给了我刻骨铭心的记忆那时的我刚刚离开父母远赴他乡求学那时 对于军训的感觉如同温室里的花草第一次见识大自然的风吹雨打、电 闪雷鸣或是初生的牛犊艰难地迈出漫长人生中的第一步……它让我

   尝到了酸甜苦辣它带给了我全新的体验让我走向成熟但这次军训带 给我更多的是深层次的人生感悟现在的我已经成立家庭在工作岗位 上勤勤恳恳工作多年人生道路上也经历了风风雨雨对于困难我不再 选择逃避对于挑战我乐意接受现在对于军训的感觉如同重逢久未谋 面的老朋友充满了亲切又或是茁壮成长的大树遇上久旱的甘霖它促 使我更快地成长如果说大学期间的军训培养了我吃苦耐劳的精神培 养了我的生活自理能力那么这次军训更多的是提升了我的世界观和 人生观它让我更加坚强更加理性此外我还从中体会到不少领导艺术

  军训更加磨练我的坚强意志由于平时工作比较忙缺乏锻炼这次 军训过程中有时候感觉到比较吃力特别是跑步几圈下来就气喘吁吁 了是继续跑?还是停下来休息?不我一定要战胜自己超越自己我在心 里暗暗给自己打气于是咬咬牙继续跑有人说过其实坚强的定义很简 单就是在自己快支撑不住的时候还能再坚持一秒就是一种毅力一种 坚韧不怕困难坚强不屈是一种人生态度跑步的时候是这样在工作、生 活中也是这样人生的厉练靠的就是坚强的意志来支撑对于一名领导 干部来说坚强的意志尤为可贵当今中国正处于社会转型时期社会结 构发生迅速变化各种社会矛盾纷繁呈现领导干部必须具备坚强的意 志去克服一切困难要有迎难而上的勇气和百折不挠的毅力

  军训更加强化了我的规则意识没有规矩不成方圆军训中我们穿 统一的服装按照统一的作息时间休息有秩序地进行就餐、洗浴……表 面上看来一些规则没有必要如不穿统一的衣服也照样可以进行军事 训练但是仔细一琢磨统一服装与随意穿着效果就是不一样穿上统一

   的迷彩服大家立即显得精神焕发而且这种精神面貌互相影响很快就 形成一个严谨高效的军事氛围作为一名领导干部要强化规则意识一 个有完备的规章制度并严格遵守的集体必定是一个团结向上充满活 力的集体反之若一个集体中的成员可以随意根据自己的意愿行事没 有规章可寻或者领导干部对于违反规则的下属睁一只眼闭一只眼那 么久而久之这个集体必然是一盘散沙

  军训更加培养了我的团队精神团队精神体现在团队内各成员之 间的配合与协作军训中没有每个人的努力和配合就不可能有一条整 齐的队列更不能走出一致的步伐无论是站方队还是喊口号或者是齐 步走都需要每个人之间的互相配合与协作在整个方队中只要一个人 掉队了整个集体都要受到影响冰心曾说过这么一句话:一朵孤芳自赏 的花只是美丽一片互相依偎着而怒放的锦绣才会灿烂我们生活在一 个集体里唯有团结才能为团队增光为自己加彩才能促成灿烂的锦绣 作为一名领导干部不仅仅自己要具备团队合作意识更重要的是要培 养下属的团队精神只有将所有成员团结起来心往一处想劲往一处使 才能取得事业的成功正是那首歌所唱的“团结就是力量这力量是铁这 力量是钢……”

  军训确实很苦很累但这是一种人生体验是战胜自我锻炼意志的 最佳良机军训如一杯浓茶入口时是苦涩的喝过之后才知道回味无穷 我享受军训就像享受茶的清香与悠远我喜欢军训的朴素宽大的迷彩 服简单的解放鞋脱去所有人的装饰真正的素面朝天亲切的绿色更让 人有种回归自然的感觉如品一杯茶风清云淡从自然的精华中去汲取

   自然的灵魂更似乎是一场灵魂与自然的对话没有喧噪没有萎靡拥有 的只是生命的活力与潜力

  按照市委的安排*年*月*日至*月*日我在*省预备役步兵师炮兵 团进行了军事训练这期间我认真按照市委的要求端正态度转换角色 遵守纪律勤学苦练认真锤炼自己的思想和作风较好地完成了军训任 务

  一端正态度摆正位置当好普通一兵 这次军训是市委为了加强后备干部的国防教育、增强国防观念 对我们锤炼作风、磨练意志、增强体魄、提高综合素质、培养大局意 识、团队精神、提高办事效率而进行的一次训练在整个训练期间我按 照任务要求始终把自己当作一名普通战士严格要求进行了认真的学 习和刻苦的训练 在纪律方面严格执行了军训纪律和部队训练条例做到了不缺席、 不迟到、不早退坚持上好每一天的训练课完成好每一堂的训练任务 在训练中始终端正态度坚持刻苦训练领导干部军训心得体会范 文领导干部军训心得体会范文在站姿的训练中严格按照动作要领做 到痒了不挠汗流不揩纹丝不动;在动作训练上从一个迈步、一个转身、 一个臂弯、一个踢腿开始认真体会动作要领反复训练规范每一个动作 军体拳打了一遍不行就再打一遍直到自己满意为止最终进入了 64 人 军体拳汇报表演方阵的行列;在轻武器的训练上认真按照射击要求反 复体会动作要领在实弹射击中取得了 5 发子弹全部命中总环数 37 环 的好成绩

   时下中国正处于一场剧烈的社会转型过程价值体系多元各种利 益格局消长、变化在人文化浪潮方兴未艾、高涨不已的今天青年人总 会时时面对激动与困惑进取和消沉艰难与忧患等等极具冲击性的矛 盾情绪而与我们一墙之隔的和平的守望者和保卫者——军人这个特 殊的群体他们有着怎样的思想?是否还象儿时记忆中的模样?是否和 影视、文学作品中描写的一般?我们之间的差异性到底在里?他们的精 神、作风他们的工作模式和方法有些值得我们借鉴和学习的地方?带 着满脑子的疑问和憧憬身为“6331”工程的一名锻炼干部我怀着探秘 和学习的心理走进了军营

  

篇二:政治素质,思想品行,社会形象方面现实表现范文

  办公室党建年度工作计划范文 党建全年工作计 划

  为切实履行机构编制管理的职能,更好地发挥党支部的战斗堡垒作用和党员 的先锋模范作用,为实现县委、县政府提出的 全力打造新城区,实现三年大变样 的宏伟目标做出积极贡献,特制订 20 年度机关党建工作计划。

  一、指导思想 20 年机关党支部工作指导思想是:以邓小平理论和 重要思想为指导,认真 贯彻党的大、届四中、五中及六中全会精神,坚持机构编制工作为全县经济建设和 社会各项事业发展服务的思想,扎实开展机关党组织建设工作,积极开展和谐机关 创建活动,切实加强党的领导班子建设、组织队伍建设及基层党组织建设,促进机 构编制各项工作任务的全面完成。

  二、具体措施 1、切实加强机关党组织建设基础工作,推动机关党建工作顺利开展 一是建立健全党建工作制度。完善《县编委办党建工作制度》,包括党费收 缴、党员发展、党的会议、理论学习等制度。

  二是按时报送党建工作计划、总结,安排好学习室。

  三是按制度按要求开展机关党建工作。认真做好党员发展、党员教育、党员 组织关系转移、党建信息报送工作,按要求组织召开每季一次的支委会和支部大 会、每半年一次的党员民主生活会,按要求开展机关支部委员会换届选举工作。

  四是按照要求开展党务公开工作。

  2、切实加强党员队伍建设,提高机关党员队伍综合素质 一是积极开展党员教育,提高全体党员干部的政治理论素养,全年集中理论 学习六次。组织党员干部集中学习 两会 精神、党的届六中全会精神、届中纪委六 次全会精神、廉政准则、《机构编制违纪行为适用〈中国共产党纪律处分条例〉若 干问题的解释》及机构编制工作相关会议精神。

  第1页共2页

   二是积极发展党员。今年计划发展一名预备党员转正为正式党员,按时按质 报送相关材料。

  三是积极开展支部活动,如开展七一活动等。

  三、全面开展机关党建特色工作,促进机关党建工作开展 一是积极开展创先争优和 双优 创建活动。

  二是与乔口镇荷叶湖村党支部深入开展基层党组织结对共建活动。

  三是积极开展干部结对帮扶活动,副科级以上领导干部按照区委、区政府的 部署积极结对帮扶,资助困难群众。

  四是做好关协、工会工作和各种中心工作、活动。

  四、以党建工作促中心工作,推动机构编制工作科学发展 我办以科学发展观为指导,以党建工作促机构编制中心工作。

  一是要统筹全局,圆满完成政府机构改革。严格审核各单位 三定 规定,全 面完成区政府机构改革。

  二是认真部署,积极推进乡镇机构改革。搞好调研、方案的制定等准备工 作。

  三是服务大局,积极配合撤县设区工作。

  四是认真履职,切实发挥机构编制管理职能作用。按照法律法规、政策制度 规定,合理调整单位职能职责,设置机构,配备人员编制、核定领导职数,为全区 经济社会发展服务。

  五是强化服务,认真开展各项中心工作。如相关人事人才工作等。六是规范 操作,不断提高事业单位登记管理水平。精心组织事业单位法人年度审核工作。

  第2页共2页

  

篇三:政治素质,思想品行,社会形象方面现实表现范文

  建立民主评议制度纪委委员述职制度履职考评制度询问质询制度等健全完善纪委委员履行职能职责情况目标责任考核体系确定纪委委员完成年度目标责任考核的等次在一定范围内通报考核结果表彰先进鞭策后进促使纪委委员主动发挥职能优势自觉参与党风廉政建设

  对如何充分发挥纪委委员职能作用的几点意见 20160906

  纪委委员是新形势下反腐倡廉和党内监督的一支重要力量,在加强党内监督、推进反腐倡廉 建设方面承担着重要职责。根据《党章》和《中国共产党党内监督条例(试行)》的规定,纪 委委员应承担参与决策、监督检查、组织协调、质询询问和调查研究五项工作职责。纪委委员 分布在纪检系统、组织、审计、公检法等重要部门,拥有丰富的专业知识,掌握较高的业务技 能,是党政各条战线上的骨干人才。充分发挥纪委委员的职能作用,对于扩大党内民主、加强 和改进党的作风建设、深入推进党风廉政建设和反腐败斗争具有十分重要的意义。

  但从实际工作来看,有少数纪委委员存在角色意识不强,作用发挥不大等问题,甚至纯把纪 委委员看作一种政治待遇或荣誉称号,导致不同程度地存在着“只戴帽,不履职”的现象。下面就 我个人认识,浅谈一下如何有效发挥纪委委员作用的意见建议。

  一、当前纪委委员发挥职能作用中存在的主要问题 一是职责不清楚,工作不主动。有的纪委委员不明确自己的职责是什么,以为担任纪委委员 只是开开会、举举手。工作不主动,除参加纪委全会外,对纪委的日常工作很少过问,提不出 建设性的意见建议,缺失了对纪检监察工作的责任感和使命感,存在只任职、不履责的现象。

  这种现象不仅削弱了纪委委员的职能,而且在一定程度上影响了反腐倡廉工作的深入开展。

  二是业务不熟悉,时间难保证。纪委委员分布在各个领域,有一部分是兼职纪委委员,平时 接触更多的是本部门的业务工作,对党内法规、纪检监察工作的业务不是很熟悉,无法真正开 展监督工作。兼职纪委委员身兼数职现象比较普遍,时间和精力难以保证,特别是乡镇纪委委 员承担的工作太多,无暇顾及纪委委员职责,更谈不上对相关工作开展经常性监督。

  三是积极性不高,沟通联系少。纪委委员平时都是各自为阵,以做好本部门工作为主,业务 工作繁忙,缺乏主动参与意识,平时很少与县纪委沟通和联系,更谈不上对纪委常委会安排的 工作实行经常性的监督。致使纪委委员的功能仅局限于在纪委全会上听取报告、审议报告、举 手表决,职能没有得到真正发挥。

  四是制度不健全,考核不完善。纪委机关在发挥纪委委员职能方面缺乏相应的制度和措施保 障,目前我县还没有激励纪委委员履职的监督考核机制,缺乏一套健全完善纪委委员履行职能 职责目标责任考核的制度,还未健全纪委委员监督和评议等制度。因此,无法有效考核评价纪 委委员年度工作情况,存在制度不健全,管理不到位现象。

  二、强化纪委委员履职尽责的对策和建议 纪委委员是党代会选举出来的,在平时的工作中,不但要加强监督,发现和反映党员领导干 部中存在的问题,还要带头落实纪委全会的决议和决定,对纪委工作要进行深入调查研究,积 极建言献策。那么,如何用好纪委委员,不让他们“只戴帽、不履职”呢?笔者认为,应该从加强 队伍建设、强化履职能力、搭建履职平台、完善制度管理等四个方面着手,着力解决“做什么、 怎样做”等问题,从而使纪委委员在党风廉政建设和反腐败斗争中发挥应有的作用。

  一是加强队伍建设。对纪委委员的人选配备,要本着对纪检监察工作负责的原则,由所在单 位推荐、纪委考察等程序,按照好干部的标准,坚持德才兼备的原则,选拔政治素质好、综合 素质高、热爱纪检监察工作的党员干部到纪委委员队伍中。强化日常管理,及时掌握纪委委员 的工作情况,对履职不到位,或者违纪违法、影响纪检队伍形象的,坚决调整出纪委委员队 伍。

  二是强化履职能力。纪委委员是党的纪律检查委员会的组成人员,要进一步强化纪委委员的 监督意识,树立起“担任纪委委员不是待遇而是责任”的观念,杜绝职责不明、履职虚化的现象;

  要定期组织纪委委员参加纪委理论学习中心组的学习,增强纪律意识和组织观念;加强业务培 训,把纪委委员纳入纪检监察系统干部教育培训计划中,不断提高业务知识水平和履职能力。

  三是搭建履职平台。要通过工作文件、纪检监察信息、召开会议等形式,及时向纪委委员通 报反腐倡廉重点工作、重大决策以及一些重大案件等,保障纪委委员的知情权。要坚持重大决 策征求纪委委员意见,如纪委全会工作报告、惩防体系建设规划等。组织纪委委员参与纪委一 些专业性较强的工作,如纪律审查、执法监察等。组织纪委委员以专项巡查的形式开展询问和 质询活动,对各部门在党风廉政建设和反腐败工作中存在的苗头性问题和突出问题及时向县纪 委汇报,并提出整改意见。让纪委委员充分参与到纪委的工作中来,努力实现纪委委员由“听 政”向“参政”转变,把履职当作“分内事”,真正成为纪委的“家里人”。

  四是完善制度管理。建立民主评议制度、纪委委员述职制度、履职考评制度、询问质询制度 等,健全完善纪委委员履行职能职责情况目标责任考核体系,确定纪委委员完成年度目标责任 考核的等次,在一定范围内通报考核结果,表彰先进,鞭策后进,促使纪委委员主动发挥职能 优势,自觉参与党风廉政建设。另一方面,参照纪检监察办案人员的补贴标准,对兼职纪委委 员给予适当的补贴,充分调动兼职纪委委员的工作积极性。

  (作者系天等县委常委、纪委书 记)

  

篇四:政治素质,思想品行,社会形象方面现实表现范文

  一是成立了钏反恐怖工作协调小组制定出台了某县瘼县公安局关于全面加强反恐工作的实施方蓍案某县县处置恐怖性犯罪事件工作斗预案某县县处置突发性事件应急预案并组建完成50清查治安复杂村镇46个旅店宾馆槠481家出租房屋136510家清查流囗动人口2159人共排查出新疆维族人人涉军群体1290人

  奥运安保工作先进事迹材料

  奥运安保工作先进事迹材料 奥运安保工作先进事迹材料

  今年以来,特别是奥运安保工作开展以来,始终保持高度的政治责任感和 敏锐性,认真履行职责,服从领导,密切关注影响安全稳定的热点、难点、苗头 性、倾向性问题,狠抓工作落实,圆满完成奥运安保各项工作任务目标。

  一、以高度的政治责任感和敏锐性认真对待奥运安保 作为县委政法委常务副书记,同时又兼任县奥保办公室主任和县“保促迎” 活动协调小组办公室主任,全县奥运安保各项工作既要牵头抓总,又要上下协调, 工作任务可谓千头万绪,繁多复杂。因此,在工作中,我注意合理安排工作时间, 极落实县委、县政府的各项工作部署,顽强拼搏、甘于奉献,执着工作,以岗为 家,全身心投入到奥运安保中去,圆满完成了各项工作任务。制定下发了《某县 县奥运安保工作实施方案》(博办发[20xx]6 号),全县稳定工作会议之后,又 分别组织召开了反恐处突、奥运安保、信访稳定、安全生产、地下天主教治理、 xx 功邪教治理等 6 个专题会议,以奥运安保为核心的各项稳定工作全面展开。

  二、以顽强的工作作风和态度圆满完成各项工作任务 1、深入开展“保促迎”活动。成立了某县县“保稳定、促发展、迎奥运” 活动协调小组,从县委办、政府办、组织部、政法委、农工委抽调工作人员 20 人,组成了协调小组办公室,安排了办公地点,并下拨专项经费,保障车辆,为 活动顺利开展提供有力保障。在省直机关下派 1 人,市直机关下派 19 人的基础 上,从 81 个县直部门,抽调科级干部 169 名,一般干部 127 名,共计 296 名工 作队员(其中 36 名为政法干警人武干部),组建了 137 个下基层工作队,将全县 133 个行政村和 4 个社区全部纳入包村(社区)范围。每个工作队一般由 2 人组 成,重点、难点村工作队由 3-5 人组成。

  2、深化严打斗争,提高反恐处突能力。一是成立了反恐怖工作协调小组, 制定出台了《某县县公安局关于全面加强反恐工作的实施方案》、《某县县处置恐 怖性犯罪事件工作预案》、《某县县处置突发性事件应急预案》,并组建完成 50 人的特警队。二是深入排查,摸清底数,掌握工作主动权。共清查治安复杂村镇 46 个,旅店、宾馆 481 家,出租房屋 1365 家,清查流动人口 2159 人,共排查 出新疆维族人 1 人,藏族人 1 人,涉军群体 1290 人,其中重点人 8 人。检查涉 危涉爆企业 217 家,整改隐患 181 处,收缴管制刀具 93 把,子弹 65 发,仿真枪 2 支。三是加大违法犯罪活动打击力度,于 6 月 16 日全面开展了严打“冲锋” 行动,在为期 22 天的“冲锋”行动中,共破获刑事案件 141 起,抓获犯罪嫌疑 人 37 人,刑事拘留 26 人,逮捕 20 人,劳教 5 人,起诉 31 人,抓获逃犯 15 人 (其中重点逃犯 1 人,外省逃犯 10 人),打掉恶势力团伙 2 个,取得了严打战果 排名全市第四好成绩。

  3、开展两个活动,做好信访稳定工作。一是从 4 月初至 7 月底在全县范围 内深入开展了“查隐患、清积案、净环境”信访问题专项治理活动。经过深入排 查,全县各乡镇、各部门共排查出各类苗头隐患、长期积案、重信重访、涉法涉 诉案件等信访问题 163 件,全部登记造册,落实“四明确”责任制,限期予以解 决。对其中 58 件易发生越级访的重点信访案件落实了县级领导包案责任制。二 是扎实开展“县委书记大接访活动”。按照“三必接访”、“三必下访”的要求,

  --来源网络整理,仅供学习参考

   延伸拓展“县委书记大接访”活动,将法院院长、各乡镇党委书记、县直各部门 一把手纳入大接访活动范畴。各单位在坚持一把手定期接访的基础上,各副职轮 流定期组织下访。大接访活动开展以来,县级领导参加接访 66 人次和带案下访 15 人次,接待群众来访 315 件次、507 人次。县委委书记亲自接待 208 件次 382 人次(含重访),全县共排查出 236 件各类信访苗头隐患,其中县级领导分包的 70 件,已有 218 件信访案件得到了彻底解决。

  4、强化制度管理,做好安全生产工作。认真组织开展了“三个年”活动。

  研究制定了《法人代表安全生产承诺落实年工作方案》、《安全生产行政执法年工 作方案》和《安全生产隐患治理年工作方案》,同 26 个部门和 7 个乡镇签订了有 针对性、可操作性强的安全生产责任书。对全县 23 处重大危险源,全部采取了 “五个一”监控措施,挂牌监管。共停产、取缔安全隐患企业 67 家,停止使用 危险化学品和相关生产活动企业 5 家,停止烟花爆竹经营单位 14 家。同时,开 展了道路交通安全、消防安全、人员密集场所、汛期安全等专项治理活动。

  5、加大治理力度,做好“xx 功”及宗教工作。经深入排查,全县共有“xx 功”练习者 897 人,重点人员 136 人,均登记建档,严格落实《“八防”工作预 案》,对重点人员签订了“四明确”责任书实行捆绑式责任制。对 3 名顽固“xx 功”分子采取强制措施,2 人劳教一年,1 人取保候审。全县共有天主教徒 2116 人,地下教徒 483 人;基督教徒 291 人;其他邪教 412 人,重点监控 2 人。5 月 初,从有关乡镇和县直部门抽调 32 人组成 3 支工作队,经过统一培训,进驻三 个重点村,开展工作。

  6、加强管护力度,确保朔黄铁路和陕京输气管道万无一失。成立了领导小 组,制定了工作预案,由所在乡镇综治办、派出所和途经的村负责每天巡逻,由 村治保主任牵头,每村两人,搭建临时窝棚,对本村所辖路段桥函实行昼夜不间 断巡逻,确保了重点部位的绝对安全。

  --来源网络整理,仅供学习参考

  

篇五:政治素质,思想品行,社会形象方面现实表现范文

  Computer Engineering and Applications 计算机工程与应用

  2011, 47 (31)

  ⦾博士论坛⦾

  Matlab 与 Fortran 混合编程之 DLL 实现方法

  2, 3 潘克家 1, , 汤井田 1, 郑洲顺 2 2, 3 PAN Kejia1, , TANG Jingtian1, ZHENG Zhoushun2

  1.中南大学 地球科学与信息物理学院, 长沙 410083 2.中南大学 数学科学与计算技术学院, 长沙 410083 3.高性能计算与随机信息处理教育部重点实验室, 长沙 410081 1.School of Geosciences and Info-Physics, Central South University, Changsha 410083, China 2.School of Mathematical Sciences and Computing Technology, Central South University, Changsha 410083, China 3.HPCSIP Key Laboratory, Ministry of Education, Changsha 410081, China PAN Kejia, TANG Jingtian, ZHENG Zhoushun.Mixed language programming in Matlab and Fortran via dynamic link library.Computer Engineering and Applications, 2011, 47 (31) :

  1-3. Abstract:

  The advantages and disadvantages of Matlab and Fortran is briefly introduced in this article.And two methods of mixed language programming through calling Fortran dynamic link library from Matlab are discussed in detail.Take Gauss-Jordan elimination with partial pivoting for example, the computational results of the same algorithm under a variety of different implementation ways are carefully compared in terms of accuracy and computational time.The result indicates that, mixed language programming via dynamic link library can make full of existing packages, combine high efficiency of Fortran with powerful matrix computation and figure drawing and compiling functions of Matlab, thus conforming to the current development direction of programming in scientific and engineering computing. Key words:dynamic link library;

  mixed-programming;

  Matlab;

  Fortran;

  Gauss-Jordan elimination 摘 要:

  简要介绍 Matlab 和 Fortran 各自的优缺点, 详细阐述 Matlab 调用 Fortran 生成的动态链接库实现混合编程的两种方法。以

  高斯约当列主元素法求逆为例, 从计算时间、 精度等方面详细比较了同一算法在多种实现方式下的执行情况。计算结果表明:

  基 于动态链接库的混合编程方法能充分利用现有软件包, 结合 Fortran 计算效率高、 Matlab 矩阵计算及图形处理功能强的优点, 符合 当前科学工程计算程序设计的发展方向。

  关键词:

  动态链接库;

  混合编程;

  Matlab 语言;

  Fortran 语言;

  高斯-约当消去法 DOI:

  10.3778/j.issn.1002-8331.2011.31.001 文章编号:

  1002-8331 (2011) 31-0001-03 文献标识码:

  A 中图分类号:

  TP311.11

  研究意义

  Matlab 被称作第四代计算机语言, 具有开发效率高、 可视

  接近数学公式的自然描述, 在计算机里具有很高的执行效 率。尤其 Fortran90 标准引入了数组计算等非常利于矩阵运算 的功能, 可直接对矩阵和复数进行运算, 且数组运算时, Fortran 能自动并行处理, 这是很多高级编程语言不具备的。自诞 生以来, 积累了大量高效而可靠的源程序和函数软件包 (如 IMSL、 MKL 等) 。

  动态链接库 (Dynamic Link Library, DLL) 是一个包含可 由多个程序同时使用的代码和数据的库。动态链接提供了一 种方法, 使进程可以调用不属于其可执行代码的函数。函数 的可执行代码位于一个 DLL 中, 该 DLL 包含一个或多个已被 编译、 链接并与使用它们的进程分开存储的函数。多个应用 程序可同时访问内存中单个 DLL 副本的内容。使用动态链接 库具有如下优点:

  扩展了应用程序的特性;

  简化了软件项目的

  化性强、 尤其矩阵计算及图形处理功能强等优点, 已逐渐成为 科学和应用领域重要工具和首选平台。目前, Matlab 语言已 在科学工程计算、 控制设计、 信号处理与通讯、 图像处理、 信号 检测、 金融建模设计与分析等领域获得了广泛应用。相比其 他高级语言 C/C++、 Fortran 等来说, Matlab 能明显缩短开发周 期, 因此特别适合开发小型应用, 或者对算法进行验证与开 发。然而, Matlab 语言作为一种解释性语言, 在涉及循环、 迭 代等大量的计算方面效率偏低, 不适合单独完成大型复杂的 数值计算。

  Fortran 是世界上最早出现的计算机高级程序设计语言, 广泛应用于科学和工程计算领域。Fortran 语言的最大特性是

  基金项目:

  国家高技术研究发展计划 ( 863 ) ( the National High-Tech Research and Development Plan of China under Grant No.2007AA06Z134 ) ;

  国家重点基础研究发展规划 (973) (No.2011CB606306) ;

  中南大学自由探索计划 (No.2011QNZT102) ;

  中南大学博士后科学基金。

  作者简介:

  潘克家 (1981—) , 男, 讲师, 在站博士后, 中南大学地质资源与地质工程博士后流动站, 主要研究领域为智能计算、 优化算法;

  汤井田 (1965—) , 博士, 教授, 博士生导师;

  郑洲顺 (1964—) , 博士, 教授, 博士生导师。E-mail:

  kjpan@yahoo.cn 收稿日期:

  2011-05-19;

  修回日期:

  2011-07-29

   2

  2011, 47 (31)

  Computer Engineering and Applications 计算机工程与应用 部分组成, 它们分工明确, 用于完成不同的任务:

  (1) 第一部分为计算子程序, 它包含了所有完成实际计算 功能的源代码, 用来完成实际的计算工作;

  (2) 第二部分称为入口子程序, 它是计算子程序与 Matlab 环境的接口, 用来完成两者之间的通信任务。

  本节以计算实矩阵逆矩阵的 Gauss-Jordan 列主元素法为 例, 给出一个 mex 文件的实例。

  ! 入口子程序 GJ_inv.f90 subroutine mexFunction (nlhs, plhs, nrhs, prhs) !plhs (*) , prhs (*) 分别为输出、 输入参数的指针数组, nlhs、 nrhs 分 别为输出、 输入参数的个数 integer nlhs, nrhs, plhs (*) , prhs (*) !调用 API 库函数申明 integer mxGetPr, mxCreateDoubleMatrix, mxGetM, mxGetN !程序内部使用变量申明 integer A_pr, n_pr, m, n double precision, allocatable:

  :

  A (:

  , :

  ) !获取第一个参数维数 m=mxGetM (prhs (1) ) ;n=mxGetN (prhs (1) ) !动态数组分配内存 Allocate (A (n, n) ) !创建输出参数矩阵 plhs (1) =mxCreateDoubleMatrix (n, n, 0) !获取输入参数的数据指针 A_pr=mxGetPr (prhs (1) ) ;n_pr=mxGetPr (prhs (2) ) !将数据类型转换为双精度类型数据 call mxCopyPtrToReal8 (A_pr, A, n*n) call mxCopyPtrToInteger4 (n_pr, n, 1) !调用求逆矩阵的计算子程序 GJ_inv call GJ_inv (A, n) !将计算结果返回输出数据指针 call mxCopyReal8ToPtr (A, mxGetPr (plhs (1) ) , n*n) !动态数组释放内存 Deallocate (A) end !计算子程序 (具体程序代码略) subroutine GJ_inv (A, n)

  管理与升级;

  有助于节省内存、 实现资源共享;

  可以用多种编 程语言来编写。本文研究利用动态链接库实现 Matlab 与 Fortran 混合编程。通过混合编程, 能充分利用大量现有的优秀软 件包 (Matlab 库函数、 Fortran 函数软件包 IMSL 等) , 缩短软件 开发周期;

  并且可以结合 Fortran 计算效率高、 Matlab 矩阵计算 及图形处理功能强的优点, 为一种值得推荐的编程方式。

  相关工作

  Matlab 与 VC、 VB 可以相互调用, 并且实现方式非常多, 相关的研究工作可参考文献[1-6]。其混合编程方法主要有如 下几种:

  (1) 基于 COM 技术[1-3];

  (2) 利用动态链接库[4];

  (3) 调用 Maltab 引擎 API 函数。至今为止, 关于 Matlab 与 Fortran 混合 程序设计的研究比较少。2000 年, 聂万胜等通过 Fortran 调用 Matlab 引擎, 实现了 Fortran 程序结果的可视化[7];

  2008 年, 徐天 吉等也是利用 Fortran 调用 Matlab 引擎混合编程, 并运用到小 波域地震信号多尺度分析中[8]。以上研究都是通过 Fortran 调 用 Matlab 引擎实现混合编程, 实现非常简单, 但不能脱离 Matlab 环境运行本质上还是在内部调用 Matlab 命令, 并且运行速度 比较慢, 不适合开发计算量较大、 实时性要求比较高的程序。

  主要介绍基于动态链接库方式的 Matlab 和 Fortran 混合编 程方法, 将计算量最繁重的工作由执行效率高的 Fortran 语言 来完成, 在 Matlab 中利用提供的接口技术完成特定的任务。

  通过混合编程, 既能充分提高 Matlab 程序的执行效率, 减轻代 码编写工作、 缩短软件开发周期、 又能弥补 Fortran 程序图形功 能弱、 计算结果难于可视化的缺陷。

  Matlab 调用 Fortran 动态链接库

  混合语言程序设计中的主要问题:

  如何在编程时遵循不 同语言中变量和过程的命名约定、 堆栈使用约定以及函数调 用过程中的参数传递约定[9-11]。其中堆栈约定确定子过程的参 数数目是否可变以及何时进行调用后的清理堆栈工作;

  命名 约定确定标识符是否对大小写敏感及编译后对标识符如何修 饰;

  参数约定确定参数传递时是传值方式还是传址 (引用) 方 式及不同语言之间的数据类型和数据结构如何对应 [12]。

  Fortran 语言调用约定有三种, 即:

  STDCALL 约定、 C 约定和 Default 调用约定。

  Matlab 可由如下两种方式调用 Fortran 语言编写的动态链 接库。第一种方式:

  利用 Matlab 中 mex 命令将 Fortran 语言编 写的函数编译成 mex 文件 (后缀名为 mexw32) , 便可在 Matlab 中像调用内嵌函数一样调用。Mex 文件实际上为一种 Matlab 专用的动态链接库文件。第二种方式:

  利用 Fortran 编译器将 Fortran 语言编写的函数编译成通用 32 位的动态链接库 (后缀 名为 dll) , Matlab 通过几个专门的 API 接口函数调用。

  3.1.2

  mex 文件的编译 对 mex GJ_inv.f90 命令进行编译, 便可得到 GJ_inv.mexw32 动态链接库文件。运行结果如下:

  >> mex GJ_inv.f90 >> A=GJ_inv (hilb (2) , int32 (2) ) %求二阶 Hilbert 矩阵的逆矩阵 A= 4.000 0 -6.000 0 -6.000 0 12.000 0

  3.1

  Matlab 调用 mex 文件

  注:

  调用 GJ_inv 求逆时, 第二个参数必须利用函数 int32 转化为整型, 因为常数 2 在 Matlab 里亦默认为双度浮点型。

  Mex 文件的编写和编译必须具备两个基本条件:

  一是必 须按照 Matlab 应用程序接口组件和相关工具, 二是要有 C 或 者 Fortran 语言的编译器。在编译 mex 文件之前还必须利用 mex-setup 命令对 Matlab 系统进行设置, 使 Matlab 系统知道使 用系统的哪个语言编译器, 以及相应的参数和路径[2]。本文软 件 环 境 为 Matlab R2010b、 Fortran 编 译 器 采 用 Intel Visual Fortran 10.1 (with Microsoft Visual C++ 2005 SP1 linker) 。

  3.1.1 mex 文件的编写 通常一个典型的 Fortran 语言 mex 文件由两个截然不同的

  3.2

  Matlab 调用 DLL 动态链接库

  本节采用的 Fortran 编译器为 Compaq Visual Fortran Professional Edition 6.6, 自带 IMSL6.0 软件包。

  3.2.1 Dll 文件的生成 以 Gauss-Jordan 列主元素法为例, 有如下两种方式实现求 逆算法。第一种方式, 利用之前生成 mex 文件时自己编写的 subroutine GJ_inv (A, n) 子程序;

  第二种方式, 直接利用 IMSL 中.i.求逆矩阵。

  第一种方式, 生成动态链接库具体步骤如下:

   潘克家, 汤井田, 郑洲顺:

  Matlab 与 Fortran 混合编程之 DLL 实现方法 (1) 创建一个 Fortran Dynamic Link Library 工程。

  (2) 在工程中添加实现 Gauss-Jordan 列主元素求逆算法的 GJ_inv.f90 文件。

  (3) 在 GJ_inv.f90 文件中, subroutine GJ_inv (A, n) 之后插 入一条伪注释语句:

  !DEC$ ATTRIBUTES C, DLLEXPORT:

  :

  GJ_inv

  2011, 47 (31)

  表 1 两种调用动态链接库比较

  优点 缺点 (1) Mex 动 态 链 接 库 只 能 被 (1) 使用方便、 调用时和直接调 Matlab 调用, 通用性差 调用 Mex 动态 用 Matlab 内嵌函数一样 (2) 需要编写比较复杂的入口 链接库 (2) 执行效率比较高 子 程 序 mexFunction,完 成 Fortran 和 Matlab 之间的通信 (1) 方便使用现有软件包 (如 IMSL, MKL 等) , 减轻代码编 写工作, 缩短软件开发周期 (1) 需要单独编写相应的头文 调用通用 DLL (2) 通用 DLL 动态链接库方便 件 (.h 文件) 动态链接库 被其他高级语言 (如 C++ 、 VB (2) 调用时相对比较复杂, 需 等) 调用, 真正实现代码重用 要利用 loadlibrary、 calllib、 un(3) 依赖 Fortran 语言计算效率 loadlibrary 等 API 函 数 加 载 , 高的优势, 大大提高 Matlab 程 调用和释放动态链接库 序的计算效率

  表明库函数 GJ_inv 在动态链接库外可被调用, 并按 C 调 用约定。

  (4) 编译生成 GJ_inv.DLL 动态链接库文件。

  (5) 编写和 C 语言等效的 DLL 输出函数定义头文件 inv.h, 具体内容如下:

  void add (double*, int) ;

  第二种方式, 只需将上述 (2) 、 (3) 两步骤生成的 GJ_inv. f90 文件改为:

  subroutine GJ_inv (A, n) use imsl !Expose subroutine GJ_inv to users of this DLL !DEC$ ATTRIBUTES C, DLLEXPORT:

  :

  GJ_inv integer n double presicion A (n, n) A=.i.A end subroutine GJ_inv

  种方法均调用 Fortran 生成的通用 DLL 动态链接库, 不过第三 种方法中求逆算法为自己编写, 第四种方法直接调用 IMSL 库 中的.i.求逆。为了方便比较, 前三种方法中求逆算法均采用高 斯约当列主元素法, 且算法实现细节完全相同。

  表 2 随机 300 阶矩阵求逆结果

  m 文件 时间/s 加速比 误差 1.48 mex 文件 0.12 12.01 dll 文件 0.07 20.66 IMSL+dll 文件 0.04 36.34 9.97E-12

  3.2.2

  DLL 动态链接库的调用 Matlab 利用三个内部函数 loadlibrary、 calllib 和 unloadlibrary 调用 Fortran 生成的通用 DLL 动态链接库, 具体步骤如下:

  (1) 利用 loadlibrary 加载动态链接库及对应头文件。

  (2) 利用 calllib 调用动态链接库中的输出函数。

  (3) 利用 unloadlibrary 释放动态链接库。

  在 Matlab Editor 中编写 main.m 文件:

  clear clc loadlibrary ( ‘GJ_inv.DLL’ ‘ ,inv.h’ ) ;

  A=calllib ( ‘GJ_inv’ , ‘GJ_inv’ , hilb (2) , 2) % 调用动态链接库计 算 2 阶 Hilbert 矩阵的逆矩阵 unloadlibrary GJ_inv 程序运行结果:

  A= 4.000 0 -6.000 0 -6.000 0 12.000 0

  5.61E-12 5.61E-12 5.61E-12

  表 3 随机 500 阶矩阵求逆结果

  m 文件 时间/s 加速比 误差 5.68 mex 文件 0.54 10.54 dll 文件 0.39 14.43 IMSL+dll 文件 0.19 30.49 4.07E-11

  1.66E-11 1.66E-11 1.66E-11

  表 4 随机 1 000 阶矩阵求逆结果

  m 文件 时间/s 加速比 误差 42.78 mex 文件 12.03 3.56 dll 文件 12.18 3.51 IMSL+dll 文件 1.45 29.41 1.05E-11

  1.76E-11 1.76E-11 1.76E-11

  ˉ -1 - E  2 , 表 2~ 表 4 中误差为  A*A 其中 A 为 Matlab 产生 -1 ˉ 的随机矩阵,A 为各种方法求得的近似逆矩阵。矩阵 A 的

  2-范数:

  3.3

  两种调用动态链接库方式比较

   A  2 = λ max ( AT A)

  其中 λ max ( AT A) 表示 AT A 的最大特征值。加速比为 m 文件运 行时间与其他方法运行时间之比。

  从表中可以看出, 前三种方法 (调用 m 文件、 mexw32 文件 和通用 DLL 动态链接库) 计算结果完全相同, 这是因为三者采 用的算法完全相同, 并且 Fortran 和 Matlab 均采用双精度浮点 数进行计算。而调用 IMSL 求逆的结果与前三种方法不完全 相同, 但亦基本一致, 对三个计算实例误差均保持在同一数量级。

  从计算时间来看, 调用 m 文件最慢, 调用 IMSL 生成的 DLL 动态链接库最快, 加速比达到 30 左右。而调用 Matlab 生成的 mex 动态链接库和 Fortran 生成的通用 DLL 动态链接库相比, 规模不是很大 (300 阶、 500 阶) 时, 调用 DLL 动态链接库具有 明显优势, 而对于比较大的规模 (1 000 阶) 时, 两者计算速度差 不多, 运行时间分别为 12.03 秒和 12.18 秒。

  并且发现:

  随着矩阵规模的逐渐增大, 调用 mexw32 文件 (下转 23 页)

  与高级语言调用 Matlab 引擎实现混合编程方式相比, 本 文介绍的两种 Matlab 调用 Fortran 动态链接库的方式, 均可脱 离 Matlab 环境独立运行, 且执行效率较高, 详见下节具体算 例。这两种混合编程方式生成的程序具有独立性强和执行效 率高的特点, 因此适用于实时性强、 执行速度要求高的应用。

  两种调用动态链接库混合编程的方式又有各自的优缺 点, 详见表 1。

  应用实例

  本章数值计算采用的微机为 Intel Core i5 760 处理器、 2 GB 内存, 操作系统为 Windows XP。

  算例具体步骤:

  首先利用 Matlab 中 rand 命令生成随机方 阵, 然后利用如下 4 种方法分别求其逆矩阵。第一种方法直接 调用 Matlab 编写的求逆矩阵的 GJ_inv.m 文件, 第二种方法调 用通过 mex 命令生成的 GJ_inv.mexw32 动态链接库, 第三、 四

   闫

  英, 叶怀珍, 锁

  斌:

  非精确信息下基于证据理论的融资策略分析

  2011, 47 (31)

  23

  资业务, 可以提升企业的利润和市场竞争力。在市场波动、 存 在大量非精确信息时, 企业在融资业务的选择上存在困难。

  为解决这一问题, 以延期支付和存货质押两种融资业务的选 择为例, 基于 D-S 证据理论建立了非精确信息下两种融资业务 的决策模型。

  实例分析表明, 在非精确信息下, 利用本文提出的模型进 行定量计算, 可以较为直观地为企业的融资行为做出指导。

  另外, 对比两个算例的仿真结果可以看出, 延期支付业务对于 回款周期 t 很敏感, t 的增大会严重降低企业的利润, 这在缺货 惩罚成本较大时会愈加明显。因此, 若要采用延期支付业务, 必须保证货物销售的回款周期足够小。否则, 采用存货质押 业务往往更为有利。

  此外, 本文提出的方法也可用于企业对仓单质押、 保理融 资等其他融资业务的决策分析, 以及其他存在非精确信息的 决策问题, 具有广泛的适用性。

  [5] 胡愈, 柳思维. 物流金融及其运作问题讨论综 [J]. 经济理论与经济 管理, 2008 (2) :

  75-79. [6] Jokivuolle E, Peura S.Incorporating collateral value uncertainty in loss given default estimates and loan-to-value ratios[J].European Financial Management, 2003, 9 (3) :

  299-314. [7] 于辉, 甄学平. 中小企业仓单质押业务的质押率模型 [J]. 中国管理 科学, 2010, 18 (6) :

  104-112. [8] Buzacott J A, Zhang R Q.Inventory management with asset-based financing[J].Management Science, 2004, 50 (9) :

  1274-1292. [9] 何明珂, 钱文彬. 物流金融风险管理全过程 [J]. 系统工程, 2010, 28 (5) :

  30-35. [10] Latifa O, Alexandra D, Thierry D, et al.Fault diagnosis in railway track circuits using Dempster-Shafer classifier fusion[J].Engineering Applications of Artificial Intelligence, 2010, 23 (1) :

  117-128. [11] Otman B, Yuan X H.Engine fault diagnosis based on multi-sensor information fusion using Dempster-Shafer evidence theory[J]. Information Fusion, 2007, 8 (4) :

  379-386. [12] 高会生, 朱静.基于 D-S 证据理论的网络安全风险评估模型[J].计 算机工程与应用, 2008, 44 (6) :

  157-159. [13] Dempster A P.Upper and lower probabilities induced by a multi-valued mapping[J].Annals of Mathematical Statistics, 1967, 38 (4) :

  325-339. [14] 杨风暴, 王肖霞.D-S 证据理论的冲突证据合成方法[M].北京:

  国 防工业出版社, 2010. [15] Yan Ying, Ye Huaizhen, Chen Si.Decision analysis of two financing methods to avoid the destroying of firm capital chain[C]// International Conference on Transportation Engineering, 2011.

  参考文献:

  [1] Bhaba R S, Mahmood A K.Optimal ordering policies in response to a discount offer[J].International Journal of Production Economics, 2006, 100 (2) :

  195-211. [2] 杨树, 梁梁, 邱昊. 考虑延期支付的斯坦博格库存模型 [J]. 系统工 程, 2006, 24 (4) :

  21-24. [3] Liao H C, Chen Y K.Optimal payment time for retailer’ s inventory system[J].International Journal of Systems Science, 2003, 34 (4) :

  245-253. [4] 杨桢, 罗兵.一种价格折扣和延期支付条件下最优支付时间确定[J]. 中国管理科学, 2008, 16 (S1) :

  473-476.

  (上接 3 页) 和通用 DLL 动态链接库的加速效果逐渐变差, 两者加速方法 加 速 比 分 别 由 300 阶 时 的 12.01、 20.66 下 降 为 1 000 阶 时 的 3.56、 3.51。值得注意的是, 采用第四种方法 (即调用 IMSL 中. i. 求逆生成的 DLL 动态链接库) , 加速比几乎保持不变, 求解 1 000 阶方阵的逆矩阵时, 仍能达到将近 30 倍的加速。

  高斯约当法求 n 阶方阵的逆大概需要 n /2 次乘除法运 n 为 1 000 时, 算, 大概需要 5 亿次乘除法运算。而此时采用第 四种方法计算时间仅为 1.45 秒, 误差达到 1.05 ´ 10-11 , 也比其 他三种方法的误差稍小。尤其值得一提的是, 第四种方法求 逆算法直接调用 IMSL 中.i. 实现, 并不需要自己编写求逆代 码, 非常简便。既大大提高了 Matlab 计算效率, 又省去了编写 代码的工作, 是一种值得推荐的混合编程实现方式。

  而且相比 mex 动态链接库效率更高, 方便被其他语言, 如 C/ C++、 VB 等调用, 真正实现代码重用。

  参考文献:

  [1] Matlab COM builder user's guide[Z].The Mathworks Inc, 2002. [2] 岳玉芳, 尤忠生, 张玉双.基于 COM 的 VB 与 Matlab 混合编程[J].计 算机工程与设计, 2005, 26 (1) :

  61-62. [3] 姚光强, 陈立平.基于 COM 技术的 C#与 Matlab 混合编程[J].计算机 工程, 2008, 34 (4) :

  87-89. [4] 肖永韧, 解习农, 刘晓峰.VC 与 MATLAB 混合编程之 DLL 实现方 法[J].计算机工程与应用, 2001, 37 (13) :

  174-176. [5] 陶红, 袁金荣.MATLAB 与 C/Visual C++ 混合编程的实现 [J]. 计算 机工程与应用, 2000, 36 (10) :

  100-101. [6] 谭炎, 张凌燕.MATLAB 与 VB 混合编程技术研究 [J]. 微计算机信 息, 2006, 22 (15) :

  247-249. [7] 聂万胜, 庄逢辰, 黄玲, 等.FORTRAN 程序调用 MATLAB 引擎实现 计算可视化[J].计算机应用, 2000, 20 (11) :

  60-62. [8] 徐天吉, 程冰洁.Compaq Visual Fortran 与 Matlab 混合编程实现小 波域地震信号多尺度分析 [J]. 物探化探计算技术, 2008, 30 (3) :

  185-190. [9] 刘志俭.MATLAB 应用程序接口用户指南 [M]. 北京:

  科学出版社, 2000. [10] Einarsson B, Morven Gentleman W.Mixed language programming[J].Software-Practice and Experience, 1984, 14:

  383-395. [11] Einarsson B.Application of mixed language programming[J]. Computer Physics Communications, 1990, 61:

  150-162. [12] Decyk V K.A method for passing data between C and Opaque Fortran 90 pointers[J].Fortran Forum, 2008, 27 (2) :

  2-7.

  结论

  使用动态链接库技术极大地提高 Matlab 语言与其他高级 语言的接口编程能力。结合实例详细介绍了两种 Matlab 中使 用动态链接库的方法, 为 Matlab 混合编程提供了一种新的、 有 效的工程实现方法。具体结论如下:

  (1) Fortran90 语言数组功能强大, 有大量内部函数支持数 组整体操作, 且能自动进行并行计算, 非常适合大规模科学计算;

  (2) 调用现有优秀软件包 (如 IMSL) 、 不仅能减轻代码编 写工作, 更能有效提高代码质量;

  (3) 利用动态链接库技术既能充分利用现有资源, 又可提 高 Matlab 语言的计算效率;

  (4) 通用的 DLL 动态链接库, 不仅方便利用现有软件包,

  

篇六:政治素质,思想品行,社会形象方面现实表现范文

  Fortran和Matlab 混合编程简介

  陆华剑 2003年7月23日

   内容

  一 Fortan和Matlab优缺点比较

  二 Fortran和Matlab混合编程的两种基本方式 (1)Fortran和Matlab编程比较 (2)Fortran调用Matlab命令 (3)Matlab调用Fortran程序

  三 参考资料

   一 Fortan和Matlab优缺点比较

  (从数值计算角度)

  程序

  优点

  缺点

  Fortran

  计算速度快

  计算结果不能直 接可视化

  Matlab

  语言简洁,函数 丰富,调试容易, 计算结果可以方 便地实现可视化

  计算速度慢

   优点 Fortran Matlab

  Fortran+Matlab

  .计算速度快 (Fortran)

  .计算结果可视化 (Matlab)

  .调用已有函数库 (Matlab)

   内容

  一 Fortan和Matlab优缺点比较

  二Fortran和Matlab混合编程的基本方式 (1)Fortran和Matlab编程比较 (2)Fortran调用Matlab命令 (3)Matlab调用Fortran程序

  三参考资料

   二 Fortran和Matlab混合编程的 两种基本方式

  第一种:Fortran调用Matlab命令 第二种:Matlab调用Fortran程序

  call MATLAB engine

  Fortran

  Maltab

  Creating Fortran MEX-Files

   基本思想

  Fortran数据

  解包 接口函数 打包

  Matlab数据

   两种方式的优缺点比较

  主程序

  优点

  缺点

  第一种:

  Fortran

  第二种:

  Matlab

  可以编写复杂 快速的计算程 序,仅让 Matlab负责数 据显示

  同时运行 Fortran和 Matlab程序

  仅需Matlab环 境

  调试不太方便

   (1)Fortran和Matlab编程比较

  A 数据类型(数值计算中常用)

  程序 Fortran Matlab

  Integer (4B)

  数据类型

  Real (4B) Double (8B)

  Real(8) (8B)

   程序 Fortran Matlab

  B 函数

  函数 子过程 subroutine 自定义函数 function

  命令文件 函数文件 function

   (2)Fortran调用Matlab

  call MATLAB engine

  Fortran

  Maltab

  函数分类

  A engie打开和关闭 B 输出数据(Fortran->Matlab) C 执行matlab命令,调用Matlab程序 D 输入数据(Matlab->Fortran)

   函数分类

  A engie打开和关闭 B 输出数据(Fortran->Matlab) C 执行matlab命令,调用Matlab程序 D 输入数据(Matlab->Fortran)

  函数

  子过程

  函数

  简单 matlab 模块中对应的子过程

  引擎

  EngOpen

  startmatlab()

  EngClose

  closematlab()

  输出

  MxCopyReal8ToPtr MxDestroyArray

  MxCreateDoubleMatrix MxGetPr

  EngPutVariable

  f2m(fdata,mstring,row,col)

  执行

  EngEvalString

  mc(string)

  输入 MxCopyPtrToReal8

  EngGetVariable MxGetPr

  f2m(fdata,mstring,row,col)

   Fortran Engine Functions

  integer*4 function engOpen(startcmd) integer*4 ep

  character*(*) startcmd

  integer*4 function engClose(ep) integer*4 ep

  integer*4 function engPutVariable(ep, mp) integer*4 ep, mp

  integer*4 function engGetVariable(ep, name) integer*4 ep

  character*(*) nam

  integer*4 function engEvalString(ep, command) integer*4 ep

  character*(*) command

   Fortran MX-Functions

  integer*4 function mxCreateDoubleMatrix(m, n,

  ComplexFlag) integer*4 m, n, ComplexFlag

  integer*4 function mxGetPr(pm) integer*4 pm

  subroutine mxDestroyArray(pm) integer*4 pm

   subroutine mxCopyPtrToReal8(px, y, n) real*8 y(n)

  integer*4 px, n

  subroutine mxCopyReal8ToPtr(y, px, n) real*8 y(n)

  integer*4 px, n

   一个简单 得程序模 块例子

   编译设置

  如果直接编译,会有如上错误

   添加lib文件

  这时,仅仅需要添加lib文件。

  方法为:Project->Add to Project->Files, 选择Matlab目录 下external\lib\win32\digital\df60\中所有的lib文件即可。

  再编译,就通过了,执行该程序,可以得到如下结果。

   执行结果

   (3)Matlab调用Fortran

  Creating Fortran MEX-Files

  Matlab

  Fortran

   基本思想

  (摘自Matlab帮助文件)

   编译和执行

  编译,生成timestwo.dll 调用函数 执行结果

   内容

  一 Fortan和Matlab优缺点比较

  二Fortran和Matlab混合编程的两种基本方式 (1)Fortran和Matlab编程比较 (2)Fortran调用Matlab命令 (3)Matlab调用Fortran程序

  三参考资料

   三 参考资料

  1)《Fortran95程序设计》 彭国伦 编著, 中国电力出版社 2)《matlab 5.x入门与提高》 龚剑 朱亮 编著,清华大学出版社 3)Matlab联机帮助文件

   谢谢!

  
搜索