分享到:
计算机应用 最近更新
讨论未来电商发展趋势论文提纲
浅谈自媒体对现代生活的影响
论文范文:网络发展对青少年心理发展的影响
论我国电子商务应用中的支付问题
电子商务模式研究
中小型企业客户关系管理系统的开发与应用
中石油浙江销售分公司信息管理系统设计
图书馆管理系统分析与设计
物流师职业资格认证报名管理系统
销售管理系统的开发与设计
酒店客房管理系统
财务管理系统的实现
餐饮管理系统设计与实现
社区卫生服务管理系统
汽车营销企业的客户关系管理系统
明道管理咨询有限公司客户关系管理系统设计与开发
企业订单管理系统开发
基于WEB的CRM信息系统的开发与研究
高校科研工作量统计系统的开发与设计
基于Struts的连锁店管理系统
通过VC++调用
摘 要:MATLAB 语言是当今国际上最流行的科学与工程计算编程语言, 它起源于矩阵运算, 并已发展成一种高度集成的计算机语言。本文简单阐述了Matlab的基本功能和应用,引入了有限元的基本概念及有限元分析的一般步骤。通过matlab与其它高级语言相比较,指出其在有限元分析应用中的优势以及不足。在此基础上,提出了Vc++与matlab混合编程。最后用一个例子演示vc++与matlab混合编程在有限元分析的过程。

关键词:MATLAB 有限元 混合编程


一、引言

matlab是美国Mathworks公司推出的一种以矩阵为基本单位的高效数值计算语言,是一个集科学计算、图像处理、声音处理于一体的高度集成系统。在编程效率、程序可读性、可移植性和可扩充性上matlab远远优于其它的高级编程语言,而且编程易学、直观,代码非常符合人们的思维习惯。另外matlab为用户提供了丰富的windows图形界面设计方法,使用户能够在利用其强大的数值计算功能的同时可设计出友好的图形界面,它受到了越来越多的用户的欢迎,成为当今国际上最流行的计算机辅助设计软件。

近年来,在国内matlab已在许多工业部门,设计单位和科研机构特别是高校得到广泛的应用。它主要应用于自动控制系统、数字信号处理,时间系列分析等方面,在工程有限元数值分析方面应用甚少,也鲜见报道。

有限元方法是利用计算机求解数学物理或工程实际中的微分方程问题,主要是偏微分方程问题的一种系统化的数值计算方法。有限元法是将物体划分成有限个单元,这些单元之间通过有限个节点相互连接,单元看作是不可变得刚体,单元之间的力通过节点传递,然后利用能量原理建立各单元矩阵,最后组成总刚矩阵,求解线性方正组。

二、Matlab在有限元分析中的优势与不足

进行有限元分析,若用其他高级语言开发,如c,c++,frotran等,编程的工作量十分浩大,开发周期很长,而利用matlab进行有限元设计有以下优点:

(1)语言简洁紧凑、使用方便灵活、库函数及其丰富,几乎包括有限元编程中的所有基础程序。

(2)可视化及强大的图形功能。

(3)程序代码公开

(4)程序可移植性好。Matlab几乎可以在各种机型和操作系统上运行,所以在可移植性和可扩充性上,matlab远优越于其他的高级编程语言。

Matlab语言具有强大的数值计算能力和视图能力,其偏微分方程工具箱(PDEToolbox)提供了有限元求解的一个强大而灵活的环境,并且有限元网格可做精细划分以满足要求。但是,和其他的高级语言相比,matlab程序的执行速度较慢。

VC++是当前Windows 下的主要编程语言之一, 它能方便地形成应用软件中所需要的各种用户界面和工具并直接与系统及底层硬件交换数据。用VC++开发的系统具有容易维护、升级、界面友好、代码效率高、执行速度快等一系列优点,因此已成为目前应用软件开发中广泛采用的主要工具之一

三、Vc++与matlab混合编程

因此,将Matlab 与VC++进行有效的混合编程,不仅能更好地发挥Matlab 强大的功能,还能快速地进行软件开发,尤其是当软件开发中需要实现复杂的数学算法、图形处理时,更加高效。

(1)将Matlab 程序编译成C/C++源文件并嵌入VC++;

(2)在C/ C++程序中利用Matlab engine 调用Matlab 函数;

(3)在C/C++程序中直接使用Matlab C/C++ Math Library;

(4)将.m文件编译成*.dll文件嵌入到VC++的程序中。

其中matlab引擎是一组函数,通过这组函数,用户可以在应用程序中实现对matlab的控制。采用matlab引擎,可以在非matlab为主的应用程序中使用matlab功能。

Matlab采用mcc命令可以将大部分.m程序编译成动态连接库供matlab调用;通过mex命令,可以将C语言程序编写成MATLAB可执行程序。这两种方式中,前一种方式是在vc应用程序中调用matlab,后一种方式是在matlab程序中调用vc编写的程序。这两种方式都不能脱离matlab环境,所有操作都是基于matlab实现的。

与matlab引擎应用程序和matlab可执行程序相比,vc调用matlab数学库和图形函数执行速度快, 内存需求少,可以发布给没有matlab的用户使用。但也有其不可避免的缺点:

(1)用户不能够在基于matlab数学库和图形库的应用程序中使用matlab的函数eval()和input();

(2)不能调用图形句柄系统的函数;

(3)Matlab中的一些方法在c/c++中得不到支持,如“;”,”[]”.
随机推荐
用Visual Basic 6.0实现自动化测试
基于GIS 的城市规划空间辅助决策平台
NET中对象序列化方法
LM-STAR案例分析及下一代测试技术展望
基于Java EE技术和SOA架构的电力营销系统的设计与实现
GPRS通用通信系统的服务器端软件开发
基于一种粗切分的最短路径中文分词研究
信息资源在我国汽车维修业中的应用前景探讨
数据挖掘在电力负荷预测中的应用
基于移动技术的高校财务信息查询系统

设为首页 | 关于我们 | 广告联系 | 友情链接 | 版权申明

Copyright 2009-2014 All Right Reserved [粤ICP备05100058号-11]