Julia语言矩阵运算入门

网友投稿 903 2022-05-30

在科学计算领域,一直对性能有较高的要求,Julia是一个新的高性能动态高级编程语言,功能强大,语法简洁,易于用户学习。它拥有丰富的函数库,提供了数字精度和分布式并行运行方式。它内部使用Just-in-Time实时编译器很有效地提高了它的运行效率,有些场景下能比得上C和C++。

根据官网的介绍,Julia 是一门支持过程式、函数式和面向对象的多范式语言。 它像 R、MATLAB 和 Python 一样简单,在高级数值计算方面有丰富的表现力,并且支持通用编程。 为了实现这个目标,Julia 以数学编程语言(mathematical programming languages)为基础,同时也参考了不少流行的动态语言,例如 Lisp、Perl、Python、Lua、和 Ruby。Julia中文文档可见网站 https://docs.juliacn.com/latest/ 。

Julia 还拥有以下优势:

采用 MIT 许可证:免费又开源

用户自定义类型的速度与兼容性和内建类型一样好

无需特意编写向量化的代码

为并行计算和分布式计算设计

轻量级协程支持

低调又牛逼的类型系统

优雅、可扩展的类型转换和类型提升

对 Unicode 的有效支持,包括但不限于 UTF-8

直接调用 C 函数,无需封装或调用特别的 API

像 Shell 一样强大的管理其他进程的能力

像 Lisp 一样的宏和其他元编程工具

下面给出一些Julia处理矩阵的示例,感觉和Matlab很像,示例如下:

Julia语言矩阵运算入门

julia> a = [ 1 3 5 ; 2 6 8] 2×3 Array{Int64,2}: 1 3 5 2 6 8 julia> a[1,:] 3-element Array{Int64,1}: 1 3 5 julia> a[1:2,1] 2-element Array{Int64,1}: 1 2 julia> b = a' 3×2 LinearAlgebra.Adjoint{Int64,Array{Int64,2}}: 1 2 3 6 5 8

julia> a = [ 1 2 3 ; 4 5 6 ; 7 8 9 ] 3×3 Array{Int64,2}: 1 2 3 4 5 6 7 8 9 julia> a * a 3×3 Array{Int64,2}: 30 36 42 66 81 96 102 126 150 julia> a ^ 2 3×3 Array{Int64,2}: 30 36 42 66 81 96 102 126 150 julia> a .^ 2 3×3 Array{Int64,2}: 1 4 9 16 25 36 49 64 81

注意:矩阵运算这里的  .^2  和 ^2 的区别。

Julia 有一个用于表示整数精确比值的分数类型。分数通过 // 运算符,示例如下:

julia> inv(2//3) 3//2 julia> pi π = 3.1415926535897... julia> (3 // 5) * (2 // 3) 2//5 julia> rationalize(0.5) 1//2 julia> denominator(2//3) 3 julia> numerator(2//3) 2

Julia还支持约等于 ≈,示例如下:

julia> 0.1 ≈ (0.1 - 1e-10) true

julia> function f(x,y) x^2+2x*y+y^2 end f (generic function with 1 method) julia> f(2,3) 25 julia> 1:5 |> sum |> sqrt 3.872983346207417 julia> ["a", "list", "of", "strings"] .|> [uppercase, reverse, titlecase, length] 4-element Array{Any,1}: "A" "tsil" "Of" 7 julia> a = [2 4 8] 1×3 Array{Int64,2}: 2 4 8 julia> sqrt.(a) 1×3 Array{Float64,2}: 1.41421 2.0 2.82843

julia> println(factorial(big(15))) 1307674368000 julia> println(factorial(big(1000))) 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

关于Julia的其他语法还有比较多,这里先介绍到这里,后期再进行介绍。

C#

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【Python3网络爬虫开发实战】 1.4.3-Redis的安装
下一篇:BigData之Storm:Apache Storm的简介、深入理解、下载、案例应用之详细攻略
相关文章