热门问题
时间线
聊天
视角
Julia语言
来自维基百科,自由的百科全书
Remove ads
Julia是一种高级通用[13]动态编程语言,它最初是为了满足高性能数值分析和计算科学的需要而设计的,不需要解释器,速度快[14][15][16][17],也可用于客户端和服务器的Web用途[18][19]、低级系统编程或用作规约语言[20]。
| 此条目翻译品质不佳。 | 
Julia设计的独特之处包括,参数多态的类型系统,完全动态语言中的类型,以及它多分派的核心编程范型。它允许并发、并行和分布式计算,并直接调用C和Fortran库而不使用粘合代码。
Julia拥有垃圾回收机制[21],使用及早求值,包含了用于浮点计算、线性代数、随机数生成和正则表达式匹配的高效库。有许多库可以使用,其中一些(如用于快速傅里叶变换的库)已经预先捆绑在Julia里[22]。
Remove ads
历史
一群拥有各种语言丰富编程经验的 Matlab 高级用户,对现有的科学计算编程工具感到不满——这些软件对自己专长的领域表现得非常棒,但在其它领域却非常糟糕。他们想要的是一个开源的软件,它要像 C语言 一般快速而又拥有如同 Ruby 的动态性;要具有 Lisp 般真正的同像性而又有Matlab般熟悉的数学记号;要像 Python 般通用、像 R 般在统计分析上得心应手、像 Perl 般自然地处理字符串、像 Matlab 般具有强大的线性代数运算能力、像 shell 般胶水语言的能力,易于学习而又不让真正的黑客感到无聊;还有,它应该是交互式的,同时又是编译型的。[23]
该项目大约于2009年中开始。
功能
主要用于数值计算。
特点
示例
function mandel(z)
    c = z
    max = 80
    for n = 1:max
        if abs(z) > 2
            return n-1
        end
        z = z^2 + c
    end
    return max
end
using LinearAlgebra: tr
using Statistics #导入std, mean等函数
function randmatstat(t)
    n = 5
    v = zeros(t)
    w = zeros(t)
    for i = 1:t
        a = randn(n,n)
        b = randn(n,n)
        c = randn(n,n)
        d = randn(n,n)
        P = [a b c d]
        Q = [a b; c d]
        v[i] = tr((P'*P)^4)
        w[i] = tr((Q'*Q)^4)
    end
    std(v)/mean(v), std(w)/mean(w)
end
参考资料
参阅
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads





