科学计算语言Julia及MWORKS实践 课件 11-数学运算与初等函数_第1页
科学计算语言Julia及MWORKS实践 课件 11-数学运算与初等函数_第2页
科学计算语言Julia及MWORKS实践 课件 11-数学运算与初等函数_第3页
科学计算语言Julia及MWORKS实践 课件 11-数学运算与初等函数_第4页
科学计算语言Julia及MWORKS实践 课件 11-数学运算与初等函数_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

二、Julia语言基础语法2.1

基本数据类型2.2数组2.3集合容器2.4数学运算和初等函数2.5

流程控制2.4、数学运算和初等函数Julia为它所有的基础数值类型提供了整套的基础算术和位运算,也提供了一套高效、可移植的标准数学函数。2.4.1算术运算函数函数描述+加法运算符sum数组元素求和sum!按指定维度求和cumsum求累积和例如:创建一个数组并使用sum与sum!函数计算指定元素的和。julia>A=[1-32;-425;6-14]3×3Matrix{Int64}:1-32-4256-14julia>S=sum(A) #计算元素的总和12julia>S=sum(A,dims=1) #计算每列中元素的总和1×3Matrix{Int64}:3-211julia>S=sum(A,init=0+0im)#设置初始求和元素12+0imjulia>S=sum(abs,A)#求矩阵元素的绝对值之和28julia>S=sum!([1;1;1],A)#对矩阵A的各行求和,指定求和向量为[1;1;1]3-elementVector{Int64}:039加法2.4、数学运算和初等函数2.4.1算术运算函数函数描述-减法运算符diff差分例如:创建数组A,计算各行之间的一阶差分。julia>A=[1-32;-425;6-14]3×3Matrix{Int64}:1-32-4256-14julia>D=diff(A,dims=1)2×3Matrix{Int64}:-55310-3-1减法2.4、数学运算和初等函数2.4.1算术运算函数例如:创建一个数组并使用prod与prod!函数计算指定元素的积。julia>A=[1-32;-425;6-14]3×3Matrix{Int64}:1-32-4256-14julia>prod(A,dims=1) #计算矩阵A的各列元素的乘积。1×3Matrix{Int64}:-24640julia>prod(abs2,A,dims=2) #计算矩阵A的各行元素的绝对值的平方的乘积。3×1Matrix{Int64}:361600576julia>B=[1;1;1];prod!(B,A)#对A求各行之积,并赋值给相同维度的B。3-elementVector{Int64}:-6-40-24乘法函数描述*乘法运算符.*数组乘法prod数组元素的乘积prod!按指定维度求积cumprod累计乘积cumprod!按维度累计乘积^矩阵幂power按元素求幂2.4、数学运算和初等函数2.4.1算术运算函数例如:创建两个数值数组A和B,并用数组左除与数组右除计算。julia>A=ones(2,3);B=[123;456];julia>x=B.\A#数组左除2×3Matrix{Float64}:1.00.50.3333330.250.20.166667julia>x=B./A#数组右除2×3Matrix{Float64}:1.02.03.04.05.06.0除法函数描述\左除/右除÷整除.\数组左除./数组右除rationalize将浮点数x近似为具有给定整数类型分量的有理数numerator分子denominator分母//求解关于x的线性方程组xA=B2.4、数学运算和初等函数2.4.1算术运算函数例如:创建一个矩阵A,并计算A的共轭转置。julia>A=[21;97;28;35]4×2Matrix{Int64}:21972835julia>B=A' #计算A的共轭转置2×4adjoint(::Matrix{Int64})witheltypeInt64:29231785其他函数描述transpose转置向量或矩阵'复共轭转置conj!,conj共轭转置2.4、数学运算和初等函数2.4.2逻辑运算函数例如:在4×4幻方矩阵中使用find函数查找元素。julia>X=magic(4)4×4Matrix{Int64}:16231351110897612414151julia>k=find(X,4,"last") #查找后四个非零值4-elementVector{Int64}:13141516julia>k=find(X.<10,5) #查找前五个小于10的元素5-elementVector{Int64}:23457julia>X[k] #查看X的对应元素5-elementVector{Int64}:59427函数描述find查找非零元素的索引和值logical将数值转换为逻辑值逻辑运算又称为布尔运算,指判断真或假(1或0)的条件。在Syslab中,常用于布尔运算的函数有find、logical。2.4、数学运算和初等函数2.4.3其他数学函数除了上面介绍的函数,在Julia中还预定义了非常丰富的数学函数,一些常用的函数如下。数值转换函数:T(x)和convert(T,x)都能够把x转换为T类型。数值特殊性判断:isequal、isfinite、isinf和isnan。舍入:四舍五入的round(T,x)、向正无穷舍人的ceil(T,x)、向负无穷舍人的f1oor(T,x)以及总是向0舍入的trunc(T,x)。除法:cld(x,y)、fld(x,y)和div(x,y),它们分别会将商向正无穷、负无穷和0做舍入,其中x代表被除数,y代表除数。另外,与之相关的还有取余函数rem(x,y)和取模函数mod(x,y)等等。符号获取:函数sign(x)和signbit(x)都用于获取一个数值的符号。函数sign(x)会分别返回1、0和-1,函数signbit(x)会分别返回false、false和true。绝对值:用于求绝对值的函数是abs(x)。另一个类似的是,用于求平方的abs2(x)。求指数:函数exp(x)会求取x的自然指数。expm1(x)当x接近0时的exp(x)-1的精确值。求对数:log(x)会求取x的自然对数,log(b,x)会求以b为底的x的对数,1og2(x)和log10(x)是分别以2和10为底求对数。另外,log1p(x)为当x接近0时的log(1+x)的精确值。求根:sqrt(x)用于求取x的平方根,函数cbrt(x)用于求取x的立方根。三角函数:sin(x)、cos(x)与tan(x)分别用于求取x的正弦、余弦与正切。以上诸多函数这里不展开说明。除了以上函数,Julia还定义了很多三角函数和双曲函数等数学运算函数,用户可以自行查阅Julia帮助文档。2.4、数学运算和初等函数2.4.4数学运算符算术运算符与布尔运算符类型表达式名称描述算数运算符+x一元加法全等操作-x一元减法将值变为其相反数√x平方根求解平方根(\sqrt)x+y二元加法执行加法x–y二元减法执行减法x*y乘法执行乘法x/y除法执行除法x÷y整除取x/y的整数部分(\div)x\y反向除法等价于y/xx^y幂运算x的y次幂x%y取余等价于rem(x,y)布尔运算符!x非取反计算x&&y与取与计算x||

y或取或计算julia>x=11julia>y=22julia>+x1julia>-x-1julia>√x1.0julia>x+y3julia>x-y-1julia>x*y2说明:直接放在标识符或括号前的数字,如2x或2(x+y)会被视为乘法julia>x/y0.5julia>x\y2.0julia>x÷y0julia>x^y1julia>x%y1julia>2x2julia>2(x+y)6julia>x=truetruejulia>y=falsefalsejulia>!xfalsejulia>x&&yfalsejulia>x||ytrue2.4、数学运算和初等函数2.4.4数学运算符位运算符与复合赋值运算符类型表达式名称LaTeX代码位运算符~x按位求反x&y按位求与x

|y按位求或x⊻y按位异或\xorx⊼y非与\nandx⊽y非或\norx>>>y逻辑左移x>>y算数右移x<<y逻辑左移julia>x,y=Int8(-16),Int8(-10)(-16,-10)julia>bitstring(x),bitstring(y)("11110000","11110110")julia>bitstring(~x)"00001111"julia>bitstring(x&y)"11110000"julia>bitstring(x

|y)"11110110"julia>bitstring(x⊻y)"00000110"julia>bitstring(x⊼y)"00001111"julia>bitstring(x

⊽y)"00001001"julia>bitstring(x>>>2)"00111100"julia>bitstring(x>>2)"11111100"julia>bitstring(x<<2)"11000000"类型列表复合赋值运算符+=-=*=/=\=÷=%=^=&=|=⊻=>>>=>>=<<=julia>x=11julia>x+=34julia>x4说明:x+=3等价于x=x+32.4、数学运算和初等函数2.4.4数学运算符向量化“点”运算符数值比较运算符类型表达式含义表达式含义数值比较运算符x==y相等x<=y,x≤y小于等于x!=y,x≠y不等于x>y大于x<y小于x>=y,x≥y大于等于julia>1==1truejulia>1==2falsejulia>NaN==NaNfalsejulia>isequal(NaN,NaN)truejulia>0.0===-0.0#二进制表现形式不同false在Julia中,每个二元运算符都有一个相应的“点”运算符。例如,^运算符对应的点运算符是.^。Julia会自动定义这个相应的点运算符,以便执行逐元素的运算。因此,[1

温馨提示

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

评论

0/150

提交评论