科学计算语言Julia及MWORKS实践 课件全套 1-科学计算与系统建模仿真应用场景-31-四旋翼无人机的路径跟踪_第1页
科学计算语言Julia及MWORKS实践 课件全套 1-科学计算与系统建模仿真应用场景-31-四旋翼无人机的路径跟踪_第2页
科学计算语言Julia及MWORKS实践 课件全套 1-科学计算与系统建模仿真应用场景-31-四旋翼无人机的路径跟踪_第3页
科学计算语言Julia及MWORKS实践 课件全套 1-科学计算与系统建模仿真应用场景-31-四旋翼无人机的路径跟踪_第4页
科学计算语言Julia及MWORKS实践 课件全套 1-科学计算与系统建模仿真应用场景-31-四旋翼无人机的路径跟踪_第5页
已阅读5页,还剩427页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、Julia语言及MWORKS简介1.1科学计算与系统建模仿真应用场景1.2MWORKS平台简介1.3MWORKS.Syslab功能简介1.4MWORKS.Sysplorer功能简介1.5Julia语言简介1.1、科学计算与系统建模仿真应用场景现代复杂工程系统示例——飞机航空产品系统规模与复杂性变化趋势早期的飞机可将其归类为“ComplicatedSystem”,即可以进行分解的复杂系统;现代的飞机越来越复杂,飞机系统及系统内部的深度交联,航空产品从一个“ComplicatedSystem”逐渐向“ComplexSystem”转变,即由可分解的复杂系统向不可分解的复杂系统转变。1.1、科学计算与系统建模仿真应用场景为实现长期载人可靠飞行并开展有人参与的多领域空间科学实验与技术试验,中国空间站全系统以“1=1+1+1”

的方式构建,即整站功能被系统分解至3个舱段。两个实验舱分别位于天和核心舱左右两侧,共同形成对称的“T”字构型。天和核心舱:负责空间站平台的统一管理和控制,并作为目标飞行器支持来访飞行器交会对接、转位与停泊。问天实验舱:可以对天和核心舱平台功能进行系统级备份,能够在应急情况下“整体接管”空间站。梦天实验舱:具备平台重要功能和关键设备的备份能力,可以为航天员在密封舱内工作、开展舱内及舱外空间实(试)验提供保障条件。现代复杂工程系统示例——空间站1.1、科学计算与系统建模仿真应用场景现代复杂工程系统示例——空间站空间站系统复杂度高,涉及到能源、环境、控制、信息、推进等多学科、多系统。它的复杂还在于,一个专业设计如果发生了调整变化,会带来一系列的对周边系统的影响。五院空间站系统总指挥王翔举了一个简单的例子:“比如说空间站最终在天上组装建造完成,有一个很重要的动作就是要转位。整个空间站几个舱的动力学模型分别出自不同的单位,我们有负责结构设计的单位,有负责大帆板研制的单位。那么转位又要用转位臂进行平面转位的操作。在转位的过程中姿态变了,帆板受太阳的照射就变了,可能发电的性能和最后的供电的输出就全变了。”从航天器的整理功能和性能出发,需要把握各分系统之间的相互联系,各专业之间的耦合关系越来越紧密。1.1、科学计算与系统建模仿真应用场景现代复杂工程系统示例——深空探测10AU火星44次土星5次118次月球金星41次地球成功66次成功率57%深空探测:240余次。月球是太阳系探测的试验场,是迈向更远深空的中转站;月球科学研究对推动空间科学发展具有重要作用;月球资源开发利用对人类的可持续发展具有重要意义。月球作为地球唯一的卫星和最近的地外天体,在人类空间探索中的地位独一无二。1.1、科学计算与系统建模仿真应用场景现代复杂工程系统示例——深空探测ISECG全球探索路线图(2018)月球火星美国深空之门中国国际月球科研站发展态势:近地轨道

地月空间

火星美、俄、中;欧、日、印、以、英、韩……首要目标:月球探测探测重点:掌握技术探测模式:单点短期

长期可持续国际合作:分担经费与风险,共享成果与发展探测区域:逐渐聚焦资源富集的月球南极科学研究、资源开发俄罗斯欧空局月球村倡议2036-2040年建成月球基地2024年前11次任务8次2次美国深空之门载人登月月球基地1次2027年前,4次任务进入新世纪以来,月球正成为航天大国战略角逐的制高点。1.1、科学计算与系统建模仿真应用场景现代复杂工程系统示例——深空探测探月工程二期落探月工程三期回人机联合探测机器人月球探测载人月球探测

-科学探测-技术试验-资源开发利用-……-载人往返技术-再生生保技术-出舱技术-……-能源保障-通信保障-生命保障-运输保障-运营保障-……

探月工程四期……我国嫦娥系列任务五战五捷,基本具备从跟跑向领跑转变的能力。探月工程一期绕国际月球科研站大科学工程持续开展技术突破1.1、科学计算与系统建模仿真应用场景现代复杂工程系统示例——深空探测定位:月面基础设施和共享平台。建设思路:中国牵头,多国参与。特点:多学科、多目标、多主体;可扩展、可维护。设计理念:功能模块化、接口标准化、设计数字化。国际月球科研站(InternationalLunarResearchStation,ILRS)多领域耦合更强技术难度更大任务周期更长运营维护更难协同挑战更多ILRS已成为我国首批大科学工程培育项目。1.1、科学计算与系统建模仿真应用场景现代复杂工程系统示例——深空探测多领域耦合更强复杂程度更高技术难度更大任务周期更长协同挑战更多中国如何牵头组织迫切需要解决,大型复杂系统工程的:

跨领域统一、跨层次集成、跨阶段持续、跨地域协同。1.1、科学计算与系统建模仿真应用场景现代复杂工程系统特点全流程统一多领域统一信息物理融合复杂性高成本高需要高可靠性多系统交联多层次结构多学科耦合多团队协作知识密集大量先进材料大量试验活动大量维护活动研制周期长制造费用高运行环境多样安全性与可靠性设计难度大规范性要求高适航要求高统一标准体系统一系统架构原理转换传递接口互联互通多领域耦合跨专业集成多层次集成求解高效实时虚实交互反馈数据融合分析决策迭代优化机理数据混合系统特点需要做到1.1、科学计算与系统建模仿真应用场景现代复杂工程系统演变趋势第一次工业革命第二次工业革命第三次工业革命第四次工业革命数字化智能化信息化电气化网络化机械化复杂装备数字研发、交付和运维1.1、科学计算与系统建模仿真应用场景现代复杂工程系统研制方法理论分析试制试验系统理论分析系统仿真物理试验可操纵性差难以观测试验成本高危险性较高试验要求高......可操纵性强可观测性经济性好可预测性扩大试验范围......1.1、科学计算与系统建模仿真应用场景现代复杂工程系统研制方法物理空间数字世界模型虚拟设计交付系统需求研制要求初步设计详细设计产品实现系统集成产品测试产品验证交付确认服务维护虚拟确认虚拟维护虚拟运行虚拟集成虚拟验证需求建模虚拟实现设计建模架构建模仿真建模数字主线设计物理1.1、科学计算与系统建模仿真应用场景现代复杂工程系统研制方法信息物理融合系统(Cyber-PhysicalSystems,CPS):由一些能够相互通讯的计算机设备组成,这些计算机设备能够通过传感器和作动器与物理世界实现反馈闭环式交互。信息域物理域网络计算软件物理组件环境模型机械电气流体热磁测试测量......人工智能数据科学控制算法Algorithm算法、Function函数基于方程、面向对象、多领域统一先进算法+精密设备1.1、科学计算与系统建模仿真应用场景信息物理融合系统软件工具现状2020年6月6日起,哈工大和哈工程被禁用MATLAB。一、Julia语言及MWORKS简介1.1科学计算与系统建模仿真应用场景1.2MWORKS平台简介1.3科学计算环境Syslab功能简介1.4系统建模仿真环境Sysplorer功能简介1.5Julia语言简介1.5、Julia语言科学计算语言概述目前,国际上有三种商用科学计算语言最有影响:TheMathWorks公司的MATLAB语言、WolframResearch公司的Mathematica语言和WaterlooMaple公司的Maple语言。尽管MATLAB、Maple和Mathematica等语言具备强大的科学运算功能,但它们都是需要付费的商用软件,其内核部分的源程序也是不可见的。1.5、Julia语言科学计算语言概述开放式科学计算语言Scilab:由法国国家计算机科学与控制研究院开发的类似于MATLAB的软件,于1989年正式推出,其源代码完全公开,且为免费传播的自由软件。该语言的主要应用背景是控制与信号处理。Octave:构思于1988年,并于1993年正式推出的一种数值计算语言,其出发点和MATLAB一样都是数值线性代数的计算。该语言早期的目标是为教学提供支持,目前也是较为广泛地应用于教学领域。Python:是一种面向对象的、动态的程序设计语言,越来越适合于做科学计算、绘制高质量的2D和3D图形。与科学计算领域最流行的商业软件MATLAB相比,Python是一门通用的程序设计语言,比MATLAB所采用的脚本语言应用范围更广泛,有更多的程序库支持,但MATLAB中的许多高级功能和工具箱目前还是无法替代。1.5、Julia语言Julia语言简介Julia语言是一个面向科学计算的高性能动态高级程序设计语言,首先定位是通用编程语言,其次是高性能计算语言,其语法与其他科学计算语言相似,在多数情况下拥有能与编译型语言相媲美的性能。目前Julia语言主要应用领域为数据科学、科学计算与并行计算、数据可视化、机器学习。Julia语言特点采用MIT许可证,免费又开源;用户自定义类型的速度与兼容性和内建类型一样好;无需特意编写向量化的代码;专为并行计算和分布式计算设计;轻量级的“绿色”线程;简洁的类型系统;便捷、可扩展的类型转换和类型提升;对Unicode的有效支持,包括但不限于UTF-8;像Lisp一样的宏和其他元编程工具;直接调用C函数,无需封装或调用特别的API;像Shell一样强大的管理其他进程的能力;2012.2.142013.11.192014.8.212015.10.82016.9.202017.6.192019.8.202019.1.222018.8.82021.11.302023.1.8V0.1.0V0.2.0V0.3.0V0.4.0V0.5.0V0.6.0V1.0.0V1.1.0V1.2.0V1.7.0V1.8.5重要版本发布时间1.5、Julia语言Julia语言的优势Julia在语言设计方面具有先进性Julia由传统动态语言的专家们设计,在语法上追求与现有语言的近似,在功能上吸取现有语言的优势:Julia从LISP中吸收语法宏,将传统面向对象语言的单分派扩展为多重分派,运行时引入泛型以优化其他动态语言中无法被优化的数据类型等。Julia兼具建模语言的表现力和开发语音的高性能两种特性在Julia中可以很容易地将代码优化到非常高的性能,而不需要涉及“两语言”工作流问题,即在一门高级语言上进行建模,然后将性能瓶颈转移到一门低级语言上重新实现后进行接口封装。Julia是最适合构建数字物理系统的语言Julia语言是一种与系统建模和数字孪生技术紧密融合的计算机语言,相比通用编程语言,Julia为功能模型的表示和仿真提供了高级抽象;相比专用商业工具或文件格式,Julia更具开放性和灵活性。1.5、Julia语言语言本质差异—与MATLAB语言相比开源性质:Julia是一种完全开源的语言,任何人都可以查看和修改它的源代码。动态编译性质:Julia是一种动态编译语言,它在运行时会将代码编译成机器码,从而实现高效的执行速度。而MATLAB则是一种解释型语言,它会逐行解释代码并执行,因此在处理大量数据时可能会比Julia慢一些。多重分派特性:Julia语言可根据不同参数类型选择不同的函数实现,使得Julia可以方便地处理复杂的数学和科学计算问题。MATLAB则是一种传统的函数式编程语言,不支持多重分派。并行计算:Julia对并行计算提供了更好的支持,可以方便地实现多线程和分布式计算。MATLAB也支持并行计算,但需要用户手动编写并行代码。Julia和MATLAB都是面向科学计算和数值分析的高级语言,但它们之间的差异在于Julia更加现代化和高效,而MATLAB则更加成熟和稳定。Julia与其他科学计算语言的差异Julia语言与其他科学计算语言MATLAB、R、Python等语言的差异主要表现在语言的本质、语言的表层语法和语言的生态等方面的差异。1.5、Julia语言语言本质差异—与R语言相比设计理念:Julia语言旨在提供一种高性能、高效率的科学计算语言,强调代码的可读性和可维护性。R语言则是一种专门为统计计算而设计的语言,具有很多专门的统计计算函数和库。性能:Julia语言具有非常高的性能,特别是在数值计算和科学计算方面,比R语言更快。这是因为Julia语言采用即时编译技术,能够动态生成高效的机器码,而R语言则是解释执行的。代码复杂度:Julia语言相对来说更加简洁,代码复杂度较低,这是为了提高代码的可读性和可维护性。相比之下,R语言的代码复杂度较高,这是为了方便数据分析人员快速实现统计计算任务。库和生态系统:R语言具有非常丰富的统计计算函数和库,以及庞大的生态系统,非常适合数据分析和统计计算。Julia语言相对来说库和生态系统较小,但在数值计算和科学计算方面有非常强大的库和工具支持。Julia语言适合需要高性能、高效率的科学计算任务,而R语言适合数据分析和统计计算任务。选择哪种语言主要取决于具体的应用场景和需求。1.5、Julia语言语言本质差异—与Python语言相比设计目的:Julia是一种专注于高性能科学计算和数据科学的编程语言,它的设计目的是为了提高数值计算和科学计算的效率和速度。Python则是一种通用编程语言,适用于各种应用领域。类型系统:Julia是一种动态类型语言,但是它具有静态类型语言的优点,它使用类型推断来提高程序的性能。Python也是一种动态类型语言,但是类型推断在Python不重要。性能:Julia的执行速度通常比Python快,可以在运行时优化代码。Python通常使用解释器,通常比编译语言运行慢。生态系统:Python有一个庞大的生态系统,拥有丰富的库和框架,适用于各种应用。Julia的生态系统相对较小,但是它正在快速增长,拥有一些出色的科学计算库和工具。Julia和Python都是出色的编程语言,各有优缺点。如果需要高性能和数值计算能力,Julia更适合,如果需要通用编程和广泛的生态系统,Python更适合。1.5、Julia语言语言的表层差异语法表层的差异指的是在代码书写方式、关键字、语句表达方式和注释方式等方面各个变成语言的不同。具体项JuliaMATLABRPython变量作用域全局/局部作用域全局作用域全局/局部作用域全局/局部作用域延续代码行方法不完整的表达式自动延续符号...续行符号+续行反斜杠\续行字符串构造符号双引号/三引号单引号单引号/双引号单引号/双引号数组索引使用方括号A[i,j]使用圆括号A(i,j)使用方括号A[i,j]使用方括号A[i,j]索引整行x[2:end]x(2:)x[2,]x[2:]虚数单位表示imi或jij幂表示符号^^^**注释符号#%##这些差异需要在学习新语言时重新适应,但也使得每种语言都有不同的优势和适用性。上表中列出的是部分差异,具体使用时还需自行学习并适应。1.5、Julia语言语言的生态差异语言生态的差异是指在定义和使用函数时,不同编程语言采用的语法、规则和约定的不同之处。这些差异可以涉及函数参数传递方式、参数类型、返回值类型等方面,同时也可能涉及函数命名、作用域、递归等方面的规定和约束。JuliaMATLABRPython主要优势在于速度和易用性。Julia语言具有动态类型、高效的JIT编译器和基于多重派发机制,这使得它能够在计算密集型应用中表现出色。Julia语言的生态系统虽然较为年轻,但已经有了许多非常好的包和库,包括DataFrames.jl、Distributions.jl、Plots.jl和JuMP.jl等。主要优势在于易用性和广泛的功能。MATLAB语言有很多内置的函数和工具箱,可以用于数据可视化、图像处理、信号处理、人工智能和控制系统等方面。MATLAB语言的生态系统非常成熟,有大量的第三方工具箱可供选择。除此之外,MATLAB语言还拥有庞大和活跃的社区。专为统计分析和数据可视化而设计的语言。它的主要优势在于统计分析和图形绘制方面的丰富功能。R语言的生态系统非常强大,有许多非常好的包和库,包括ggplot2、dplyr、tidyr、shiny和caret等。主要优势在于易用性和生态系统的丰富性。Python语言的生态系统非常庞大,有大量的科学计算库和工具箱可供选择,包括NumPy、SciPy、pandas、matplotlib、scikit-learn和TensorFlow等。这四种语言都有其独特的特点和优势,在不同的应用场景中各有所长一、Julia语言及MWORKS简介1.1科学计算与系统建模仿真应用场景1.2MWORKS平台简介1.3MWORKS.Syslab功能简介1.4MWORKS.Sysplorer功能简介1.5Julia语言简介1.2、MWORKS平台简介MWORKS设计与验证平台MWORKS是苏州同元软控信息技术有限公司基于国际知识统一表达与互联标准打造的系统智能设计与仿真验证平台,是面向数字工程的新一代科学计算与系统建模仿真系统,MWORKS提供了机械、电子、液压、控制、热、信息等多领域统一建模仿真环境,实现了复杂装备数字化模型标准表达,支持物理系统和信息系统的融合。MWORKS产品定位:系统设计仿真验证+科学计算与系统建模仿真2.采用基于模型的方法全面支撑系统研制,通过不同层次、不同类型的仿真实现系统设计的验证。围绕系统研制的方案论证、系统设计与验证、测试与运维等阶段,MWORKS分别提供小回路、大回路和数字孪生虚实闭环等三个设计验证环路。1.2、MWORKS平台简介MWORKS设计与验证平台小回路设计验证闭环70%的设计错误在系统设计阶段被引入。在论证阶段引入小回路设计验证闭环,可以实现系统方案的早期验证,提前暴露系统设计缺陷与错误。基于模型的系统设计以用户需求为输入,能够快速构建系统初步方案,然后进行计算和多方案比较得到论证结果,在设计早期就实现多领域系统综合仿真验证,确保系统架构设计和系统指标分解的合理性。大回路设计验证闭环在传统研制流程中,80%的问题在实物集成测试阶段被发现。引入大回路设计验证闭环,通过多学科统一建模仿真以及联合仿真,可以实现设计方案的数字化验证,利用虚拟试验对实物试验进行补充和拓展。在系统初步方案基础上开展细化设计,以系统架构为设计约束,各专业开展专业设计、仿真,最后回归到总体,开展多学科联合仿真,验证详细设计方案的有效性与合理性,开展多学科设计优化,实现正确可靠的设计方案。数字孪生虚拟闭环在测试和运维阶段,构建基于Modelica+的数字孪生模型,实现对系统的模拟、监控、评估、预测、优化、控制,对传统的基于实物试验的测试验证与基于测量数据的运行维护进行补充和拓展。利用系统仿真工具建立产品数字功能样机,通过半物理工具实现与物理产品的同步映射与交互,形成数字孪生闭环,为产品测试、运维阶段提供虚实融合的研制分析支持。MWORKS产品定位:系统设计仿真验证+科学计算与系统建模仿真1.2、MWORKS平台简介MWORKS产品体系信息物理系统建模仿真通用平台(Syslab+Sysplorer)各装备行业数字化工程支撑平台(Sysbuilder+Sysplorer+Syslink)开放、标准、先进的计算仿真云平台(MoHub)1套开放架构N个领域工具4大系统软件1个云环境1.2、MWORKS平台简介四大系统级产品系统架构设计环境MWORKS.SysbuilderSysbuilder是面向复杂工程系统的系统架构设计软件,以用户需求作为输入,按照自顶向下的系统研制流程,以图形化、结构化、面向对象方式覆盖系统的需求建模、功能分析、架构设计、验证评估过程,通过与Sysplorer的紧密集成,支持用户在系统设计的早期开展方案论证并实现基于模型的多领域系统综合分析和验证。科学计算环境MWORKS.SyslabSyslab是苏州同元软控信息技术有限公司面向科学计算全新推出的新一代科学计算环境,基于科学计算高性能动态高级程序设计语言Julia语言提供交互式编程环境,提供科学计算编程、编译、调试和绘图功能,内置支持矩阵等数学运算、符号计算、信号处理、通信工具箱,支持用户开展科学计算、数据分析、算法设计,并进一步支持信息物理融合系统的设计、建模与仿真分析。系统建模仿真环境MWORKS.Sysplorer在测试和运维阶段,构建基于Modelica+的数字孪生模型,实现对系统的模拟、监控、评估、预测、优化、控制,对传统的基于实物试验的测试验证与基于测量数据的运行维护进行补充和拓展。利用系统仿真工具建立产品数字功能样机,通过半物理工具实现与物理产品的同步映射与交互,形成数字孪生闭环,为产品测试、运维阶段提供虚实融合的研制分析支持。协同建模与模型数据管理环境MWORKS.SyslinkSyslink是面向协同设计与模型管理的基础平台,是MBSE环境中的模型、数据及相关工件协同管理解决方案,将传统面向文件的协同转变为面向模型的协同,为工程师屏蔽了通用版本管理工具复杂的配置和操作,提供了协同建模、模型管理、在线仿真和数据安全管理功能,为系统研制提供基于模型的协同环境。1.2、MWORKS平台简介系列工具箱科学计算:DifferentialEquationsLightGraphs......图形与图像处理:PlotsImages......人工智能:FluxKnet......优化算法:OptimDistributions......计算机科学:CUDAParallelAccelerator......生物学:BioPhyloNetworks......同元官方工具箱TyBase(基础工具箱)TyMath(数学工具箱)TyPlot(图形工具箱)TyImages(图像工具箱)TyGeoGraphics(地图图工具箱)TySymbolicMath(符号数学工具箱)TyCurveFitting(曲线拟合工具箱)TySingalProcessing(信号处理工具箱)TyCommunication(通信工具箱)TyDSP(DSP系统工具箱)TyControlSystem(控制系统工具箱)TyOptimization(优化工具箱)TyStatistics(统计工具箱)开源生态工具箱Julia拥有丰富的开源生态资源,更多行业工具箱详见:/1.2、MWORKS平台简介系列模型库通用基础库专业组件库行业系统库行业应用库发动机库电池库车辆电子库动力性经济性库热管理库车辆动力学库GNC库航天电气库液体动力库固体动力库航天环控库雷达设备库飞控系统库飞机液压库起落架库航空发动机库飞行动力学库燃油系统库汽车动力库刹车系统库车辆控制库变速箱库车辆动力学库反应堆库蒸汽给水库燃烧系统库发电机库项目复用级模型库……基础组件库传动组件库多体系统库气动组件库气动元件库液压组件库液压元件库热液压组件库燃料电池库电机库液压介质库气动介质库接口库1.2、MWORKS平台简介MWORKS产品体系信息物理系统建模仿真通用平台(Syslab+Sysplorer)各装备行业数字化工程支撑平台(Sysbuilder+Sysplorer+Syslink)开放、标准、先进的计算仿真云平台(MoHub)1套开放架构N个领域工具4大系统软件1个云环境一、Julia语言及MWORKS简介1.1科学计算与系统建模仿真应用场景1.2MWORKS平台简介1.3MWORKS.Syslab功能简介1.4MWORKS.Sysplorer功能简介1.5Julia语言简介1.3、MWORKS.Syslab功能简介新一代科学计算环境,性能优于对标软件MWORKS成为全球第四个科学计算与建模仿真一体化平台Syslab与Sysplorer无缝融合支持CPS建模仿真提供数学、信号、通信、DSP系统、控制、统计、优化等自主工具箱MWORKS.Syslab基于科学计算高性能动态高级程序设计语言Julia提供完整的交互式编程环境的完备功能,支持通用编程、科学计算、数据科学、机器学习、信号处理、通讯仿真、并行计算等功能。1.3、MWORKS.Syslab功能简介六大功能:交互式编程环境科学计算函数库计算数据可视化库开发与管理与系统建模环境深度融合完善的中文帮助系统1.交互式编程环境:Syslab开发环境提供了便于用户使用的Syslab函数和专业化的工具箱,其中许多工具是具有图形化的接口。它是一个集成的用户工作空间,允许用户直接输入输出数据,并通过资源管理器、代码编辑器、命令行窗口、工作空间、窗口管理等编程环境和工具,提供功能完备、强大的交互式编程、调试与运行环境,提高了用户的工作效率。1.3、MWORKS.Syslab功能简介2.科学计算函数库:Syslab是包含大量计算算法的集合,拥有上千个算数运算、线性代数、矩阵与数组运算、插值、数值积分与微分方程、傅里叶变换与滤波、符号计算、曲线拟合、信号处理、通信等丰富的高质量、高性能科学计算函数和工程计算函数,可以方便用户直接调用而不需要另行编程,几乎能够解决大部分学科中的数学问题。初等数学线性代数矩阵论随机数学插值微分方程求解傅里叶分析稀疏矩阵数论符号对象创建基本符号运算符号方程求解符号表达式推导化简、代换线性和非线性回归插值平滑处理拟合后处理样条处理描述性统计量统计可视化连续分布离散分布多元分布分布检验位置检验散度检验线性规划混合整数线性规划非线性规划二次规划二阶锥规划最小二乘非线性方程组求解基础数学库327个符号数学库476个曲线拟合库85个统计库465个优化库21个全局优化库21个遗传算法多目标遗传算法粒子群算法模拟退火算法帕累托搜索算法模式搜索算法差分进化算法1.3、MWORKS.Syslab功能简介阶梯图区域图箱线图三维线图二维线图误差条图散点图直方图条形图散点图矩阵三维散点图帕累托图饼图文字云热图极坐标图极坐标中的直方图填充的等高线图三维等高线图曲面图等高线图极坐标中的散点图地理气泡图对数坐标轴可视化矩阵的稀疏模式三维条形图水平条形图网格曲面图创建笛卡尔坐标区填充多边形区域矩形分块图从图形文件读取图像3.计算数据可视化:Syslab具有丰富的图形处理功能和方便的数据可视化功能,能够将向量和矩阵用图形表现出来,并且可以对图形进行颜色、光照、纹理、透明性等设置以产生高质量的图形。利用Syslab绘图,用户不需要过多地考虑绘图过程中的细节,只需要给出一些基本参数就能够利用内置的大量易用的二维和三维绘图函数绘制图形。内置图形工具箱,提供三类36种图形合计171个常用绘图函数。1.3、MWORKS.Syslab功能简介注册库:已注册工具箱开发库:本地工具箱函数库的开发与测试通过包管理器,管理注册库与开发库,点击刷新即可查看注册库和开发库。4.库开发与管理:支持函数库的注册管理、依赖管理、加载卸载、版本切换,同时提供函数库开发规范,以支持用户自定义函数库的开发与测试。1.3、MWORKS.Syslab功能简介信息域物理域网络计算软件物理组件环境模型机械电气流体热磁测试测量......人工智能基于方程面向对象多领域统一Algorithm算法Function函数数据科学控制算法......5.与系统建模环境深度融合:Syslab与系统建模环境Sysplorer之间实现了双向深度融合,优势互补,形成新一代科学计算与系统建模仿真平台。1.3、MWORKS.Syslab功能简介5.与系统建模环境深度融合Sysplorer是面向多领域工业产品的系统级综合设计与仿真验证环境,完全支持多领域统一建模规范Modelica,遵循现实中拓扑结构的层次化建模方式,支撑MBSE应用。然而,在解决现代科学和工程技术实际问题过程中,用户往往需要一个支持脚本开发和调试的环境,通过脚本驱动系统建模仿真环境,实现科学计算与系统建模仿真过程的自动化运行;同时也需要一个面向现代信息物理融合系统的设计、建模与仿真环境,支持基于模型的CPS开发。科学计算环境Syslab与系统建模环境Sysplorer实现了双向深度融合。两者优势互补,形成新一代科学计算与系统建模仿真平台。1.3、MWORKS.Syslab功能简介1个基础环境16个工具箱2500+函数帮助支持分类主题(文档、示例、…)支持全局搜索支持在线部署支持集成用户帮助文档6.完善的中文帮助系统:提供完整易用的中文帮助系统,用户可以通过查询帮助系统,获取函数的调用情况和需要的信息。43MWORKS软件安装部署软件下载链接:同元软控官网:https://www.tongyuan.cc/许可证申请地址:https://www.tongyuan.cc/license运行环境配置类型最低规格推荐规格说明CPU1GHz2核2GHz4核主频越高,软件运行速度越快内存8GB8GB实际需要的内存取决于科学计算复杂度存储10GB100GB用于存储模型及其仿真结果显示分辨率1024×7682560×1440操作系统Windows1064位Windows1064位磁盘C盘C盘提供一套Syslab客户端仓库,包含图形库、图像库、数学库等开发库以及Julia常用库。Syslab客户端仓库统一路径为“C:\Users\Public\TongYuan\.julia”。确定电脑有C盘。44MWORKS.Syslab软件安装部署安装步骤:MWORKS.Syslab2023a安装包为iso光盘映像文件。其中data文件夹为相关资源文件,包括Julia仓库等;.exe文件为MWORKS.Syslab安装程序;PDF文件为安装与配置说明书。45科学计算环境—MWORKS.Syslab界面介绍46科学计算环境—MWORKS.Syslab界面介绍Tab页工具栏47科学计算环境—MWORKS.Syslab界面介绍左侧边栏48科学计算环境—MWORKS.Syslab界面介绍资源管理器49科学计算环境—MWORKS.Syslab界面介绍调试控制台调试50科学计算环境—MWORKS.Syslab界面介绍表格树展示区工具栏按钮51科学计算环境—MWORKS.Syslab界面介绍编辑器窗口52科学计算环境—MWORKS.Syslab界面介绍命令行窗口53科学计算环境—MWORKS.Syslab界面介绍工作区窗口54科学计算环境—MWORKS.Syslab界面介绍编辑器布局窗口的显示与隐藏55科学计算环境—MWORKS.SyslabJulia

REPL的几种模式具有全功能的交互式命令行(Read-Eval-PrintLoop,REPL)REPL环境可以实时与用户交互自动读取用户输入的表达式自动求解,并显示求解结果Package模式Help模式Shell模式Julia模式紧挨命令提示符输入“]”进入紧挨命令提示符输入“?”进入紧挨命令提示符输入“;”进入科学计算环境—MWORKS.SyslabJulia模式REPL中最常见的模式,也是默认情况下的操作模式。运算结果绑定到变量ans每行尾随分号可以作为标识符抑制显示结果julia>string(3*4)"12"julia>ans"12"julia>a=rand(2,2);b=exp(1)2.718281828459045julia>a=rand(2,2);b=exp(1);julia>Help模式输入任意功能名称获取该功能的使用说明、帮助文本及演示实例,例如查询类型、变量、函数、方法、类和工具箱等。REPL环境在搜索并显示完成相关文档后自动切回至Julia模式。5657科学计算环境—MWORKS.SyslabPackage模式—文本操作用来管理程序包,用于识别加载或更新程序包的命令,例如add、rm、update。安装新的程序包—add(@v1.7)pkg>addMLJ移除已安装的程序包—rm(@v1.7)pkg>rmMLJ更新已安装的程序包—update(@v1.7)pkg>updateMLJ表示Julia语言的特性版本也可以一次性安装、移除或更新多个程序包,Package模式还支持更多命令,可自行学习:/v1/可视化操作包管理器→注册库→添加注册包①②③搜索包安装/移除/更新包④安装/移除/更新成功科学计算环境—MWORKS.Syslab注意事项工具箱下载慢,可在首选项中使用国内镜像源。预编译出错时,可能是依赖的某些第三方工具箱版本不匹配,需用手动安装依赖工具箱。操作步骤:首选项中,关闭系统映像文件安装第三方依赖工具箱(addDiffEqBase@6.100)安装第三方工具箱(Flux,Image,ImagesView等)构建映像首选项中,勾选系统映像文件(@v1.7)pkg>addDiffEqBase@6.100可在pkg模式下键入“st”查看所有工具箱的版本号5859Syslab与Sysplorer的双向融合使用前准备:在Syslab工具栏中点击Sysplorer,自动打开Sysplorer软件并加载Modelica3.2.3模型库出现SyslabWorkspace。注意事项:如不能打开Sysplorer软件,则需要确认Syslab首选项中Sysplorer可执行文件路径是否正确Syslab和Sysplorer均需2022版以上Sysplorer软件编译器为64位60Syslab与Sysplorer的双向融合ToWorkspace:Sysplorer的仿真结果发送至Syslab工作区中ToWorkspace子库中包含4个组件,分别为:ToWorkspace_Scale:输出为标量数据ToWorkspace_Vector:输出为一维数组ToWorkspace_Matrix:输出为矩阵ToWorkspace_3D_Array:输出为三维数组FromWorkspace:Sysplorer从Syslab工作区中读取数据fromWorkspace子库中包含5个组件,分别为:fromWorkspace_Scale:获取标量数据fromWorkspace_Vector:获取一维数组fromWorkspace_Matrix:获取二维数组fromWorkspace_3D_Array:获取三维数组fromWorkspaceTimeTable:获取表格矩阵,并通过线性插值来生成(可能是不连续的)信号61Syslab与Sysplorer的双向融合Syslab调用SysplorerAPI类别命令接口含义系统命令ClearScreen清空命令窗口SaveScreen保存命令窗口内容至文件ChangeDirectory更改工作目录ChangeSimResultDirectory更改仿真结果目录RunScript执行脚本文件GetLastErrors获取上一条命令的错误信息ClearAll移除所有模型Echo打开或关闭命令执行状态的输出Exit退出MWorks.Sysplorer文件命令OpenModelFile加载指定的Modelica模型文件LoadLibrary加载Modelica模型库ImportFMU导入FMU文件EraseClasses删除子模型或卸载顶层模型ExportIcon把图标视图导出为图片ExportDiagram把组件视图导出为图片ExportDocumentation把模型文档信息导出到文件ExportFMU模型导出为FMUExportVeristand模型导出为Veristand模型ExportSFunction模型导出为Simulink的S-Function类别命令接口含义仿真命令OpenModel打开模型窗口CheckModel检查模型TranslateModel翻译模型SimulateModel仿真模型RemoveResults移除所有结果RemoveResult移除最后一个结果ImportInitial导入初值文件ExportInitial导出初值文件GetInitialValue获取变量初值SetInitialValue设置变量初值ExportResult导出结果文件SetCompileSolver64设置翻译时编译器平台位数GetCompileSolver64获取翻译时编译器平台位数SetCompileFmu64设置fmu导出时编译器平台位数GetCompileFmu64获取fmu导出时编译器平台位数这些命令的统一调用格式均为:Sysplorer.命令接口名称62Syslab与Sysplorer的双向融合类别命令接口含义曲线命令CreatePlot按指定的设置创建曲线窗口Plot在最后一个窗口中绘制指定变量的曲线RemovePlots关闭所有曲线窗口ClearPlot清除曲线窗口中的所有曲线ExportPlot曲线导出动画命令CreateAnimation新建动画窗口RemoveAnimations关闭所有动画窗口RunAnimation播放动画StopAnimation停止动画播放AnimationSpeed设置动画播放速度类别命令接口含义模型对象操作命令GetClasses获取指定模型的嵌套类型GetComponents获取指定模型的嵌套组件GetParamList获取指定组件前缀层次中的参数列表GetModelDescription获取指定模型的描述文字SetModelDescription设置指定模型的描述文字GetComponentDescription获取指定模型中组件的描述文字SetComponentDescription设置指定模型中组件的描述文字SetParamValue设置当前模型指定参数的值SetModelText修改模型的Modelica()文本内容GetExperiment获取模型仿真配置关于SysplorerAPI命令可见Syslab中文帮助文档中“SysplorerAPI”Syslab调用SysplorerAPI63Syslab与Sysplorer的双向融合Sysplorer调用SyslabFunction模块在系统建模仿真环境Sysplorer中打开、编辑和调试Syslab中的函数文件需要通过SyslabFunction模块实现。SyslabGlobalConfig:用于进行Julia全局声明,可以导入包及全局变量声明等。当创建了SyslabGlobalConfig组件后,单击右键选择“Syslab初始化配置…”选项可以在Syslab中打开编辑器,编写全局声明的Julia脚本。SyslabFunction:用于嵌入Julia函数,并将SyslabFunction模块的输入和输出数据指定为参数和返回值。Sysplorer仿真过程中每运行一步都会调用该Julia函数。对于SyslabFunction组件而言,单击右键选择“编辑Syslab脚本函数…”选项可以在Syslab中打开编辑器编写Julia脚本。SyslabFunction组件认为脚本中的第一个函数为该组件的主函数,其他函数均为服务于主函数的辅助函数。根据主函数的内容,组件从函数声明中的输入参数获取组件的输入端口数量及名称。主函数必须使用function定义;主函数的输入不要指定类型和具名参数;主函数的输出必须使用return指定,且必须为函数体中已经出现的变量符号。注意事项二、Julia语言基础语法2.1基本数据类型2.2数组2.3集合容器2.4数学运算和初等函数2.5

流程控制2.1、基本数据类型Julia语言中定义了多种基本的数据类型,包括数值型、字符型和逻辑型等。Julia内部的所有数据类型都是按照数组的形式进行存储和运算的,同时,Julia支持不同数据类型间的转换,增加了数据处理的灵活性。2.1.1变量变量赋值:与其他动态类型语言一样,Julia无需提前声明变量类型,可以直接创建。julia>a="Hello,World""Hello,World"julia>print(a)Hello,Worldjulia>b

=

11julia>x#x未定义ERROR:UndefVarError:xnotdefined一般形式:x=val注意:输入变量名则会显示该变量的值Julia中不会自动创建变量2.1、基本数据类型2.1.1变量变量的命名规则:英文,规则如下:区分大小写;不能以数字开头;变量与函数名建议用下划线分隔;类与模块首字母建议大写,驼峰式;中文:不推荐使用Unicode字符:输入某个LaTeX符号(比如\beta),再敲击Tab键。注意:不能使用Julia中已有的单词的关键词作为变量名julia>a="Hello,World""Hello,World"julia>a

=

22julia>啊=

10#不推荐使用10julia>β

=

36#\beta,再敲击Tab键36julia>αᵖ=10#先转义\alpha,在转义\^pjulia>12a=12#不能以数字开头,12a含义为12*aERROR:syntax:"12"isnotavalidfunctionargumentnamearoundREPL[6]:1julia>x,y,z=11,12,13#平行赋值法(11,12,13)2.1、基本数据类型2.1.1变量变量的作用域:即变量的可用性范围,是指标识符可以被其他代码直接引用的一个区域,超出该区域,这个标识符在默认的情况下是不可见的。Julia语言中作用域:全局作用域、局部作用域。根据作用域将变量分为:全局变量、局部变量。结构作用域baremodule、module全局struct全局for、while、try全局或局部macro全局let、function、comprehensions、generators全局或局部2.1、基本数据类型变量的类型:Julia有Any类型和Union{}类型两个特殊类型以及抽象类型(abstracttypes)、原始类型(primitivetypes)、复合类型(compositetypes)三种主要类型。Any类型:唯一的顶层类型,是所有类型的直接超类型或间接超类型。Union{}类型:是所有相关类型的子类型。Union{Types…},Types…代表任意个类型参数,多个时用逗号隔开,可以把多个类型联合成一个类型,并让后者作为前者的同一代表,因此又称联合类型。抽象类型:不能被实例化,只能作为类型图中的节点使用,从而描述由相关具体类型组成的集合,为具体类型提供默认实现原始类型:是一种具体类型,其数据是由简单的位组成。原始类型的经典示例是整数和浮点数。复合类型:也是一种具体类型,在各种语言中被称为record、struct和object。2.1.1变量2.1、基本数据类型2.1.2整数与浮点数整数类型:类型是否带符号比特数最小值最大值Int8√8-2^72^7-1UInt8802^8-1Int16√16-2^152^15-1UInt161602^16-1Int32√32-2^312^31-1UInt323202^32-1Int64√64-2^632^63-1UInt646402^64-1Int128√128-2^1272^127-1UInt12812802^128-1BoolN/A8false(0)true(1)julia>a=11julia>typeof(a)#操作系统为64位Int64julia>max=typemax(Int64)9223372036854775807julia>max+1#超限-9223372036854775808julia>min=typemin(Int64)-9223372036854775808julia>min–1#超限9223372036854775807julia>x=typeof(0x123)UInt16julia>Int64(0x123)#转化为Int64291说明:根据操作系统不同,整数Int可能是Int32或Int64超出一个类型可表示的范围会导致环绕无符号整数会使用0x为前缀的十六进制来表示可以使用T()进行数据类型转换minmax2.1、基本数据类型2.1.2整数与浮点数浮点类型:用于表示小数类型精度比特数Float16半(half)16Float32单(single)32Float64双(double)64julia>a=5.25.2julia>typeof(a)#操作系统为64位Float64julia>typeof(1e5)#操作系统为64位Float64julia>typeof(5.2f0)#使用f则为32位Float32julia>Float32(a)5.2f0说明:浮点数的默认类型取决于电脑系统是32位还是64位浮点数可以用科学记数法表示使用“f”替代“e”或Float32()可以得到Float32的浮点数半精度一般采用软件模拟,性能较差,不推荐使用2.1、基本数据类型2.1.2整数与浮点数特殊浮点数:正零、负零、正无穷、负无穷、NaNFloat16Float32Float64名称描述Inf16Inf32Inf正无穷大于所有有限浮点数的值-Inf16-Inf32-Inf负无穷大于所有有限浮点数的值NaN16NaN32NaN非数不等于任何浮点数,甚至不等于自己julia>typemax(Float64)Infjulia>typemin(Float64)-Infjulia>0/0NaNjulia>Inf/InfNaNjulia>0*InfNaNjulia>NaN+1#传染性NaNjulia>Inf+1#传染性Infjulia>NaN==NaN#NaN不等于任何值falsejulia>Inf==Inftruejulia>0.0==-0.0#正零与负零相等truejulia>0.0===-0.0#正零与负零二进制表示不同

falsejulia>bitstring(0.0)

"0000000000000000000000000000000000000000000000000000000000000000"

julia>bitstring(-0.0)

"1000000000000000000000000000000000000000000000000000000000000000"说明:Inf和NaN具有传染性NaN甚至不等于它自己2.1、基本数据类型任意精度计算:BigInt和BigFloat分别提供了任意精度的整数和浮点数julia>typemax(Int64)+1#超限-9223372036854775808julia>BigInt(typemax(Int64))+1#扩位9223372036854775808julia>typeof(ans)BigIntjulia>big“1.23456789012345678901”#提高精度1.234567890123456789010000000000000000000000000000000000000000000000000000000004julia>2.0^66/32.4595658764946067e19julia>BigFloat(2.0^66)/3#提高精度2.459565876494606882133333333333333333333333333333333333333333333333333333333344e+19julia>typeof(ans)BigFloat可使用以下语句对数值进行扩位:BigInt(x)或BigFloat(x)big""minmaxminmax2.1.2整数与浮点数复数的定义Julia中复数的虚部用“im”

表示,im为全局变量。注意:

不能使用i和j来表示虚部复数的构建Julia>1+2im1+2imjulia>1+Inf*im1.0+Inf*imjulia>1+NaN*im1.0+NaN*im方法一(im直接构建):方法二(complex函数构建):julia>a=1;b=2;complex(a,b)1+2im注意:

a+bim,b如果为变量名称时则错误一般形式:a+b*im2.1、基本数据类型2.1.3复数和有理数2.1、基本数据类型2.1.3复数和有理数说明:不同数据类型可直接进行计算复数运算的结果必为复数系数的优先级比除法的优先级更高:3/4im==3/(4*im)==-(3/4)im复数的运算julia>1+2im1+2imjulia>(1+2im)*(2-3im)#复数乘法8+1imjulia>(1+2im)/(1-2im)#复数除法-0.6+0.8imjulia>(1+2im)+(1-2im)#复数加法2+0imjulia>(1+2im)+0.5#复数和实数可以直接运算1.5+2.0imjulia>(-1+2im)^2.5#复数指数运算2.729624464784009-6.9606644595719imjulia>2im^2#复数求解的结果还是复数-2+0imjulia>1+3/4im#4im的优先级最高1.0-0.75im2.1、基本数据类型2.1.3复数和有理数复数的初等函数使用julia>real(1+2im)#取实部1julia>imag(1+2im)#取虚部2julia>conj(1+2im)#求复共轭1-2imjulia>abs(1+2im)#求绝对值2.23606797749979julia>abs2(1+2im)#取绝对值的平方5julia>angle(1+2im)#取相位角1.1071487177940904julia>cos(1+2im)2.0327230070196656-3.0518977991517997imjulia>exp(1+2im)-1.1312043837568135+2.4717266720048188im说明:复数的绝对值(abs)是从零点到它的距离abs2给出绝对值的平方所有其他的初等函数在复数上都可使用关键字描述real实部imag虚部conj复共轭abs绝对值abs2取平方后的绝对值angle以弧度为单位的相位角sqrt开根号cos求余弦exp指数运算sinh双曲正弦函数运算julia>sqrt(1im)0.7071067811865476+0.7071067811865475imjulia>sqrt(1+2im)1.272019649514069+0.7861513777574233imjulia>sqrt(-1)#负数不能直接开方,要改为复数形式ERROR:DomainErrorwith-1.0:sqrtwillonlyreturnacomplexresultifcalledwithacomplexargument.Trysqrt(Complex(x))julia>sqrt(-1+0im)0.0+1.0im注意:虽然-1==-1+0im,但是要对负数求平方根,负数只能写成复数的形式。2.1、基本数据类型2.1.3复数和有理数有理数的构建分数的标准化分子和分母分别可以使用numerator和denominator函数得到:julia>numerator(4//6)#查看标准化分子2julia>numerator(2//3)2julia>denominator(4//6)#查看标准化分母3julia>denominator(2//3)3有理数通过“//”

构建,用于表示整数精确比值的分数类型julia>2//32//3有理数的标准化如果一个分数的分子和分母含有公因子,它们会被约分到最简形式且分母非负:julia>6//92//3julia>-4//8-1//2julia>5//-15-1//3julia>-4//-121//3注意:分子分母只能为整型。一般形式:a//b2.1、基本数据类型2.1.3复数和有理数有理数的运算:“//”优先级高于所有运算符(除im以外)julia>2//3==6//9truejulia>3//7<1//2truejulia>2//4+1//62//3julia>5//8*3//125//32julia>2//7*(1+2im)#2//7优先级最高2//7+4//7*imjulia>1//2+2im#1//2优先级最高1//2+2//1*imjulia>1+2//3im#3im优先级最高1//1-2//3*imjulia>float(1//2)#分数转化为小数0.5julia>a=1;b=2;julia>isequal(float(a//b),a/b)true使用float()将值转换为合适的浮点数类型,且完全相等除a==0且b==0时,任意整数值a,b从分数到浮点数转换遵循数值一致性Julia接受构建无穷分数值,但不接受构建NaN分数值julia>5//01//0julia>-3//0-1//0julia>float(ans)Infjulia>0//0ERROR:ArgumentError:invalidrational:zero(Int64)//zero(Int64)2.1、基本数据类型2.1.4字符和字符串字符与字符串声明Julia中,Char表示单个字符,用单引号包围String表示字符串,用双引号或三引号包围Char不等于Stringjulia>'x'#Char类型'x':ASCII/UnicodeU+0078(categoryLl:Letter,lowercase)julia>typeof('x')Charjulia>"中"#String类型"中"julia>typeof("中")Stringjulia>print("""中国:"欢迎你"。""")中国:"欢迎你"。#字符串中使用引号,最外侧需要使用"""julia>typeof(ans)Stringjulia>'x'=="x"#不同类型false字符与字符串运算:基于Unicode代码进行运算julia>'A'<'a'#Char值比较,Int64('A')=65,Int64('a')=97truejulia>'x'-'a'#Char值有限运算,Int64('A')=120,Int64('a')=9723julia>'A'+1#求解结果还是Char'B':ASCII/UnicodeU+0042(categoryLu:Letter,uppercase)julia>s="\u2200x\u2203y"#\u2200可以根据Unicode代码直接转义"∀x∃y"2.1、基本数据类型2.1.4字符和字符串获取长度函数描述ncodeunits()字符串中特定位置代码单元值sizeof()数据或数据类型比特数length()字符串的字符数julia>length(example1)#计算example1中的字符数20julia>length(“J”)#计算example1中字符“J”的字符数1julia>length(“编”)#计算example1中字符“编”的字符数1julia>example1[1:16]#显示example1中第1到第16个字符"科学计算语言"julia>length(example1,1,16)#计算example1中第1到第16个字符的字符数6julia>example1=“科学计算语言Julia与MWORKS实践“#定义一个示例example1"科学计算语言Julia与MWORKS实践"julia>ncodeunits(example1)#计算example1中的单元值38#汉字占有3个单元值,字母占有一个单元值julia>sizeof(example1)#计算example1中的比特数38julia>sizeof(“J”)#计算example1中字符“J”的比特数1julia>sizeof(“科”)#计算example1中字符“科”的比特数3julia>ncodeunits(“科”)#计算example1中字符“科”的占据的单元值3说明:ncodeunits、sizeof,这两个函数应用于采用UTF-8编码的字符串相当于获取其中字节的数量。2.1、基本数据类型2.1.4字符和字符串索引函数描述firstindex()第一个元素的索引值lastindex()最后一个元素的索引值说明:字符串的索引是从1开始的可以使用end及begin进行运算begin表示为1,end表示为字符串长度end÷2结果不为整数时,采用去尾法取证下标小于开头begin(1)或者大于结尾end都会导致错误字符串的索引可使用范围来索引str[k]输出结果为字符,str[k:k]输出结果为字符串julia>str="Hello,world.\n";

str=[begin]#索引初始字符'H':ASCII/UnicodeU+0048(categoryLu:Letter,uppercase)julia>str[1]#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论