Java和Maltab混合编程研究u

上传人:飞*** 文档编号:44333692 上传时间:2018-06-09 格式:DOC 页数:5 大小:178.50KB
返回 下载 相关 举报
Java和Maltab混合编程研究u_第1页
第1页 / 共5页
Java和Maltab混合编程研究u_第2页
第2页 / 共5页
Java和Maltab混合编程研究u_第3页
第3页 / 共5页
Java和Maltab混合编程研究u_第4页
第4页 / 共5页
Java和Maltab混合编程研究u_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《Java和Maltab混合编程研究u》由会员分享,可在线阅读,更多相关《Java和Maltab混合编程研究u(5页珍藏版)》请在金锄头文库上搜索。

1、Java 和和 matlab 混合编程研究混合编程研究摘要摘要:为了能结合 Java 和 Matlab 两者的优点,构造功能更加强大的科学计算环境,对如 何进行 Java 和 Matlab 混合编程进行了研究,首先介绍了 Java 调用 Matlab 函数的基本方法, 在此基础上结合工程上的实际应用,解决了材料力学中三向应力的求解问题。 关键词:关键词:Java ;Matlab;三向应力 0、引言引言 M a t l a b 是美国 M a t h W o r k s 公司推出的一款可视化的数值计算软件,是目前学 术界和工程界最为流行的科学计算工具,具有强大的数值计算,矩阵计算,信号处理和图

2、形图像处理功能。不过 Matlab 虽然功能强大,但界面开发能力较差,并且其程序不能脱离 Matlab 环境独立运行。 Java 是一种可靠稳定、跨平台、面向对象的语言。其语言本身的安全性很高并引入了 一些日益重要的复杂任务,比如多线程和网络编程,这些工作用 java 实现起来轻而易举。 然而,Java 在数据分析和处理方面的能力却不那么突出,尤其是在对数组矩阵之类的数据 进行操作时会因为多次循环而速度变得缓慢,这在数组或矩阵位数很大时缺点尤为突出1。如果用 Matlab 和 java 混合编程开发 Windows 的应用程序则可以实现优势互补,缩短 开发时间,降低程序设计的复杂度。同时程序可

3、以脱离 Matlab 环境独立运行,在工程计算 和教学实践中都具有实际意义。 1、使用使用 java 调用调用 Maltab 函数的基本方法函数的基本方法 使用 java 调用 Maltab 函数的基本方法是:通过 Java Builder 实现 Java 调用 Matlab。在 Java 环境中直接调用 Matlab 所生成的 Jar 包。 下面以在 Java 中产生任意维数的魔方矩阵,计算任意矩阵的特征向量和特征值,对两 组数据进行拟合并绘制拟合曲线三个实例来说明通过 Java Builder 实现 Java 调用 Matlab 的 过程。传统的纯 Java 编程实现上述实例非常复杂,甚至

4、很难完成。这一问题在 Matlab 中 只需要调用几个函数即可完成。 1.1、将 Matlab 函数包装成 Java 类 首先在 Matlab 中编写三个 M 文件: Eig.m function v,d=Eig(input) format long v,d=eig(input); End Magic.m function f =Magic( input ) f=magic(input); endPlot.m function Plot(x,y ) p=polyfit(x,y,3); t=min(x):max(x)/100:max(x); s=polyval(p,t); plot(x,y,*,

5、t,s); title(数据拟合结果);xlabel(x); ylabel(y); end其次,在Matlab中新建一个Deployment Project,名称为MyProject.prj,类型为Java package。在Project中新建三个Class,分别为GetEig,GetMagic,PolyFit。将 Eig.m,Magic.m,plot.m分别添加到上述Class中。之后点击Builder the project,等待编译成 功即可。 1.2、在Java中调用Matlab函数 新建一个 Java 类 JavaMatlab,并引入相关的包。 import com.mathwor

6、ks.toolbox.javabuilder.*;/引入 Matlab 相关 包import MyProject.*;/引入建立的包及类调用时 Java 与 Matlab 之间的参数传递需要通过 MWNumericArray 完成。具体的调用 代码如下: package org.genius.ExpandJava; import MyProject.*; import com.mathworks.toolbox.javabuilder.*; public class JavaMatlab public static void main(String args) MWNumericArray a

7、 = null; / 用于保存矩阵MWNumericArray ax = null; / 用于保存矩阵MWNumericArray ay = null; / 用于保存矩阵Object result = null; / 用于保存计算结果GetEig getEig = null; GetMagic getMagic=null; PolyFit polyFit=null;int r = 4; / 魔方矩阵维数int array=50,-20,0,-20,80,60,0,60,-70; double x=0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1; double y

8、=- 0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2; try /产生魔方矩阵并打印a = new MWNumericArray(r, MWClassID.DOUBLE); getMagic = new GetMagic(); result = getMagic.Magic(1,a);System.out.println(“产生的四维魔方矩阵:“);System.out.println(result0); MWArray.disposeArray(result);/计算所给矩阵的特征向量和特征值并打印结果a = new MWNum

9、ericArray(array, MWClassID.DOUBLE); getEig = new GetEig(); result = getEig.Eig(2, a);System.out.println(“原始矩阵:“);System.out.println(a.toString(); System.out.println(“得到的特征向量:“); System.out.println(result0);System.out.println(“得到的特征值:“);System.out.println(result1); MWArray.disposeArray(result); ax =

10、new MWNumericArray(x, MWClassID.DOUBLE); ay = new MWNumericArray(y, MWClassID.DOUBLE); polyFit = new PolyFit(); result=polyFit.Plot(ax,ay); polyFit.waitForFigures(); catch (Exception e) System.out.println(“Exception: “ + e.toString(); finally / 释放本地资源MWArray.disposeArray(a); MWArray.disposeArray(ax)

11、; MWArray.disposeArray(ay); MWArray.disposeArray(result); getEig.dispose(); getMagic.dispose(); polyFit.dispose(); 程序的运行结果如下图所示:2、Java 和和 Matlab 混合编程在工程中的应用。混合编程在工程中的应用。 在材料力学和弹、塑性力学中,三向应力状态的分析,尤其是主应力的计算十分重要, 主方向和切应力的计算须先求出主应力,但一般三向应力状态的主应力的计算非常繁琐, 工程上常用的图解法等,只能得到近似值。而运用 Matlab 编程进行应力分析则能方便快捷 的得到精确解

12、。再结合 Java 的图形界面,跨平台的优势,就能得到一个方便,实用的三向 应力分析程序。 2.1、三向应力状态分析原理 三向应力状态单元体应力情况可表示为应力矩阵: zzyzxyzyyxxzxyx 由切应力互等定理有 T该单元体内任意斜截面 ABC 全应力 P 在三个方向的分量为: nmlppp pzzyzxyzyyxxzxyxzyx其主应力及主方向为该点应力矩阵的特征值以及对应的特征值2。 在上述的结论下,便可利用前面得到的 GetEig 函数,用 Java 和 Matlab 混合编程得到 一个跨平台的,界面友好简洁实用的三向应力分析软件。软件截图如下所示:3、总结总结 本文通过几个实例,

13、介绍了 Java 与 Matlab 混合编程实现的过程。通过混合编程,在 进行数据计算及图形处理时,可以在 Matlab 中完成数据处理过程,然后在 Java 中调用相 应的 Matlab 函数,充分利用了 Matlab 强大的数据处理能力,大大提高了开发效率。最后 解决了材料力学中三向应力状态分析的问题,用两种程序语言开发出了一个个跨平台的, 界面友好简洁实用的三向应力分析软件。由此可见混合编程模式在 Matlab 擅长的图像处理、 数据计算等方面有很大的实用价值。参考文献参考文献 1任文杰,王伟,马松辉,陈怀民,MATLAB 和 JAVA 的混合编程研究与实现,西北 工业大学,2009 2危洪清,应用 Matlab 分析三向应力状态,科技信息(学术版) ,2006

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号