




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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公司推出的一款可视化的数值计算软件,是目前学术界和工程界最为流行的科学计算工具,具有强大的数值计算,矩阵计算,信号处理和图形图像处理功能。不过Matlab虽然功能强大,但界面开发能力较差,并且其程序不能脱离Matlab环境独立运行。Java是一种可靠稳定、跨平台、面向对象的语言。其语言本身的安全性很高并引入了一些日益重要的复杂任务,比如多线程和网络编程,这些工作用java实现起来轻而易举。然而,Java在数据分析和处理方面的能力却不那么突出,尤其是在对数组矩阵之类的数据进行操作时会因为多次循环而速度变得缓慢,这在数组或矩阵位数很大时缺点尤为突出1。如果用Matlab和java混合编程开发Windows的应用程序则可以实现优势互补,缩短开发时间,降低程序设计的复杂度。同时程序可以脱离Matlab环境独立运行,在工程计算和教学实践中都具有实际意义。1、 使用java调用Maltab函数的基本方法使用java调用Maltab函数的基本方法是:通过Java Builder实现Java调用Matlab。在Java环境中直接调用Matlab所生成的Jar包。下面以在Java中产生任意维数的魔方矩阵,计算任意矩阵的特征向量和特征值,对两组数据进行拟合并绘制拟合曲线三个实例来说明通过Java Builder实现Java调用Matlab的过程。传统的纯Java编程实现上述实例非常复杂,甚至很难完成。这一问题在Matlab中只需要调用几个函数即可完成。1.1、将Matlab函数包装成Java类首先在Matlab中编写三个M文件:Eig.mfunction v,d=Eig(input)format longv,d=eig(input);EndMagic.mfunction f =Magic( input )f=magic(input);endPlot.mfunction Plot(x,y )p=polyfit(x,y,3);t=min(x):max(x)/100:max(x);s=polyval(p,t);plot(x,y,*,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.mathworks.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 = 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=-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 MWNumericArray(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 = 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);MWArray.disposeArray(ay);MWArray.disposeArray(result);getEig.dispose();getMagic.dispose();polyFit.dispose();程序的运行结果如下图所示:2、 Java和Matlab混合编程在工程中的应用。在材料力学和弹、塑性力学中,三向应力状态的分析,尤其是主应力的计算十分重要,主方向和切应力的计算须先求出主应力,但一般三向应力状态的主应力的计算非常繁琐,工程上常用的图解法等,只能得到近似值。而运用Matlab编程进行应力分析则能方便快捷的得到精确解。再结合Java的图形界面,跨平台的优势,就能得到一个方便,实用的三向应力分析程序。2.1、三向应力状态分析原理三向应力状态单元体应力情况可表示为应力矩阵:由切应力互等定理有该单元体内任意斜截面ABC全应力P在三个方向的分量为:其主应力及主方向为该点应力矩阵的特征值以及对应的特征值2。在上述的结论下,便可利用前面得到的GetEig函数,用Java和Matlab混合编程得到一个跨平台的,界面友好简洁实用的三向应力分析软件。软件截图如下所示:3、 总结本文通过几个实例,介绍了Java与Matlab混合编程实现的过程。通过混合编程,在进行数据计算及图形处理时,可以在Matlab中完成数据处理过程,然后在Java中调用相应的Matlab函数,充分利用了Matlab强大的数据处理能力,大大提高了开发效率。最后解决了材料力学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版室内外装饰装修工程与室外管网改造合同
- 2025版旅行社旅游咨询顾问劳动合同规范
- 2025版深圳经济特区房地产股权转让与资产评估及税务筹划及市场推广及法律顾问服务及运营管理及融资服务合同
- 2025年新能源电池热失控预警技术市场潜力分析报告
- 机械制造企业2025年服务化转型数字化转型与智能生产成本报告
- 生物识别技术(指纹、面部等)在酒店行业的市场竞争态势分析报告
- 2025年工业互联网平台安全漏洞扫描技术产业布局与发展趋势报告
- 零售行业智能化支付与移动支付市场前景分析报告
- 商业计划书2025:农业科技创业投资策略分析
- 职业技能培训在乡村振兴中的农村基础设施建设与可持续发展创新研究报告
- 2025年幼儿园教师大班数学工作总结样本(3篇)
- 2025年毕节市农业发展集团有限公司招聘考试笔试试题(含答案)
- 供应链安全管理知识培训课件
- 牛鼻子引流技术
- 严禁燃放烟花炮竹课件
- 宫颈息肉课件
- (2025年标准)班组承包协议书
- 2025国家能源投资集团有限责任公司审计中心社会招聘12人笔试参考题库附带答案详解(10套)
- 2025年全国I卷高考地理试题和答案
- 深圳微利房管理办法
- 生产安全会议纪要
评论
0/150
提交评论