рдпрд╣ рдкреНрд░рдХрд╛рд╢рди рдореБрдЦреНрдп, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЬреВрд▓рд┐рдпрд╛ рднрд╛рд╖рд╛ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ - рдХрдИ рдкреНрд░реЗрд╖рдг рдХреЗ рд╕рд╛рде рддрд░реАрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЖрдкрдХреЛ рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдХреЛ рдХрдо рдХрд┐рдП рдмрд┐рдирд╛ рдФрд░ рдПрдХ рддрд░рдл рдЕрдореВрд░реНрддрддрд╛ рдХреЛ рдЦрд░рд╛рдм рдХрд┐рдП рдмрд┐рдирд╛ рдЧрдгрдирд╛ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдУрд░ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд╕рдВрдХреЗрддрди рдореЗрдВ рдЧрдгрд┐рддреАрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╡рд░реНрджреА рдХрд╛ рдкреНрд░рд╢реНрди (рд░реИрдЦрд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ) рдЧреБрдгрд╛рдВрдХ рдХреА рд╕реВрдЪреА рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рдмрд╣реБрдкрдж рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рдХреНрд╖реЗрдк рдмрд╣реБрдкрдж рдХреЗ рд╕рд╛рде рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореВрд▓ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛
рдирд╣реАрдВ рдореЗрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрд░рд┐рдЪрдпред рдЬреВрд▓рд┐рдпрд╛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдЖрд░рдИрдкреАрдПрд▓ (рд░реАрдб-рдореВрд▓реНрдпрд╛рдВрдХрди-рдкреНрд░рд┐рдВрдЯ рд▓реВрдк, рдпрд╛рдиреА рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╢реЗрд▓) рд╣реИред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рд╕рдорд╛рди рд▓рдЧрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди рдпрд╛ MATLAB рдХреЗ рд▓рд┐рдПред
рдЕрдВрдХрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рди
рдЕрдВрдХрдЧрдгрд┐рдд рд╣рд░ рдЬрдЧрд╣ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╣реА рд╣реИ: +, -, *, /, ^ рдкреНрд░рддрд┐рдкрд╛рджрдХ рдХреЗ рд▓рд┐рдП, рдЖрджрд┐ред
рддреБрд▓рдирд╛:>, <,> =, <=, ==; = = рдЖрджрд┐ред
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ: =
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
/
рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рднрд╛рдЬрди рд╣рдореЗрд╢рд╛ рдПрдХ рднрд┐рдиреНрдирд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рджреЗрддрд╛ рд╣реИ; рдпрджрд┐ рдЖрдкрдХреЛ рджреЛ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЗ рд╡рд┐рднрд╛рдЬрди рдХреЗ рдкреВрд░реНрдгрд╛рдВрдХ рднрд╛рдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдСрдкрд░реЗрд╢рди
div(m, n)
рдпрд╛ infix рд╕рдордХрдХреНрд╖
m ├╖ n
ред
m ├╖ n
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкреНрд░рдХрд╛рд░
рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░:
- рдЗрдВрдЯреЗрдЧрд░ (
Int
) - 2
, 3
, -42
UInt
рдкреВрд░реНрдгрд╛рдВрдХ ( UInt
) - 0x12345
- рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ (
Float32
, Float64
) - 1.0
, 3.1415
, -Inf
, -Inf
- рдкрд░рд┐рдореЗрдп (
Rational
) - 3//3
, 7//2
- рд╡рд╛рд╕реНрддрд╡рд┐рдХ (
Real
) - рдЙрдкрд░реЛрдХреНрдд рд╕рднреА - рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ (
Complex
) - 3+4*im
, 2//3+2//3*im
, 3.0+0.0*im
( im
рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдЗрдХрд╛рдИ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд┐рдд рдХрд╛рд▓реНрдкрдирд┐рдХ рднрд╛рдЧ рдЬрдЯрд┐рд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ) Number
- рдЙрдкрд░реЛрдХреНрдд рд╕рднреА
рддрд╛рд░ рдФрд░ рдкрд╛рддреНрд░:
'a'
- рдЪрд░рд┐рддреНрд░ ( Char
)"a"
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ ( String
)
рдирд╛рдпрдм: рддрд╛рд░, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдм рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИред
рдирд╛рдпрдм: рддрд╛рд░ (рд╕рд╛рде рд╣реА рдЪрд░ рдирд╛рдо) рдЗрдореЛрдЬреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЗрдореЛрдЬреА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред
рд╕рд░рдгрд┐рдпреЛрдВ:
x = [1, 2, 3]
- рддрддреНрд╡реЛрдВ рдХреА рдкреНрд░рддреНрдпрдХреНрд╖ рдЧрдгрдирд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рд░рдгреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛- рд╡рд┐рд╢реЗрд╖ рд░рдЪрдирд╛рдХрд╛рд░:
zeros(length)
рдПрдХ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП zeros(length)
, ones(length)
рдПрдХ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП rand(length)
, рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП rand(length)
, рдЖрджрд┐ред - рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгреА рд╕рдорд░реНрдерди
- рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рди (рд╕рд░рдгрд┐рдпреЛрдВ, рд╕реНрдХреЗрд▓рд░ рдЧреБрдгрди, рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╡реЗрдХреНрдЯрд░ рдЧреБрдгрд╛, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди
NB: рд╕рднреА рд╕рдВрдЧреНрд░рд╣ рдПрдХ рд╕реЗ рд╢реБрд░реВ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╣реИрдВред
NB: рдХреНрдпреЛрдВрдХрд┐ рднрд╛рд╖рд╛ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ, рд╕рд░рдгрд┐рдпрд╛рдБ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИрдВ, рдЖрдкрдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдкрд░ рд▓реМрдЯрдирд╛ рд╣реЛрдЧрд╛ред
рдЯреБрдкрд▓реНрд╕ (рддрддреНрд╡реЛрдВ рдХрд╛ рд╕реЗрдЯ, рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп):
(2, 5.3, "k")
рдПрдХ рдирд┐рдпрдорд┐рдд рдЯрдкрд▓ рд╣реИ(a = 3, b = 4)
- рдЯрдкрд▓ рдирд╛рдо
рдирд╛рдпрдм: рдПрдХ рдирд╛рдорд┐рдд рдЯрдкрд▓ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдПрдХ рдЕрд╡рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдФрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╛рдо рд╕реЗ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
julia> x = (a = 5, b = 12) (a = 5, b = 12) julia> x[1] 5 julia> sqrt(xa^2 + x[2]^2) 13.0
рд╢рдмреНрджрдХреЛрд╢реЛрдВ:
julia> x = Dict('a' => 5, 'b' => 12) Dict{Char,Int64} with 2 entries: 'a' => 5 'b' => 12 julia> x['c'] = 13 13 julia> x Dict{Char,Int64} with 3 entries: 'a' => 5 'c' => 13 'b' => 12
рдмреБрдирд┐рдпрд╛рджреА рдирд┐рдпрдВрддреНрд░рдг рднрд╛рд╖рд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
1. рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдкрд░ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкреНрд░рдХрд╛рд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред
julia> x = 7; x + 2 9 julia> x = 42.0; x * 4 168.0
2. рд╕рд╢рд░реНрдд рдХреВрдж рдмреНрд▓реЙрдХ рдХреА рд╢реБрд░реБрдЖрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИ
if <condition>
рдФрд░
end
рд╢рдмреНрдж рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИред рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ
else
рдкреНрд░рдХрд╛рд╢ рдпрд╛
else
рдкреНрд░рдХрд╛рд╢ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
if x > y println("X is more than Y") elseif x == y println("X and Y are equal") else println("X is less than Y") end
3. рджреЛ рд▓реВрдк рдирд┐рд░реНрдорд╛рдг рд╣реИрдВ:
while
рдФрд░ рдХреЗ
for
ред рджреВрд╕рд░рд╛ рдХрд╛рдо рдЕрдЬрдЧрд░ рдХреА рддрд░рд╣, рдпрд╛рдиреА рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдЕрдзрд┐рдХ Iteratesред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдЙрди рдорд╛рдиреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рд╕реЗ рдЕрдзрд┐рдХ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕
start[:increment]:end
ред рдкрд╛рдпрдерди рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХ рд╕реАрдорд╛
рдореЗрдВ рд╢реБрд░реВ рдФрд░ рдЕрдВрдд рдореВрд▓реНрдп рджреЛрдиреЛрдВ
рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдЦрд╛рд▓реА рд╕реАрдорд╛
1:1
рдирд╣реАрдВ рд╣реЛрдЧреА (рдпрд╣ 1 рдХреА рд╕реАрдорд╛ рд╣реИ), рд▓реЗрдХрд┐рди
1:0
ред рд▓реВрдк рдмреЙрдбреА рдХреЗ
end
рдХреЛ рд╢рдмреНрдж рдХреЗ
end
рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
julia> for i in 1:3; print(i, " "); end
4. рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреАрд╡рд░реНрдб
function
рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП
function
,
function
рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рднреА рд╢рдмреНрдж рдХреЗ
end
рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдФрд░ рдирд╛рдорд┐рдд рддрд░реНрдХ рдХреЗ рд╕рд╛рде рддрд░реНрдХ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред
function square(x) return x * x end function cube(x) x * square(x)
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдорд╛рдореВрд▓реА рдЕрдВрддрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдкрд╛рдпрдерди рдХреЗ рд╕рдорд╛рди рд╣реИ рдФрд░ рдпрд╣ рддрдереНрдп рд╣реИ рдХрд┐ рдХреЛрдб рдХреЗ рдмреНрд▓реЙрдХ рдХреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рдеред рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдкрд╛рдпрдерди рдХрд╛рд░реНрдпрдХреНрд░рдо рднреА рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рд╕реЗ рдПрдХ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдЗрд╕ рддрдереНрдп рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд░ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рддреЗрдЬреА рд╕реЗ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ, рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╛рдпрдерди рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ "рд╢рд╛рд╕реНрддреНрд░реАрдп" рдУрдУрдкреА рдореЙрдбрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдПрдХ рдмрд╣реБ-рдкреНрд░реЗрд╖рдг рдореЙрдбрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
рдЯрд╛рдЗрдк рдПрдиреЛрдЯреЗрд╢рди рдФрд░ рдорд▓реНрдЯреАрдкрд▓ рдбрд┐рд╕реНрдкреИрдЪ
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреБрдЫ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреНрдпрд╛ рд╣реИрдВ:
julia> sqrt sqrt (generic function with 19 methods)
рдЬреИрд╕рд╛ рдХрд┐ REPL рд╣рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ,
sqrt
19 рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рд╣реИред рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд╛рд░реНрдп рдФрд░ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реАрдХреЗ?
рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐
рдХрдИ sqrt
рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рддрджрдиреБрд╕рд╛рд░, рд╡рд┐рднрд┐рдиреНрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд░реНрдЧрдореВрд▓ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЯрд╛рдЗрдк рдХрд░рдХреЗ рдХреНрдпрд╛ рд╡рд┐рдХрд▓реНрдк рдЙрдкрд▓рдмреНрдз рд╣реИрдВ
julia> methods(sqrt)
рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
"рд╢рд╛рд╕реНрддреНрд░реАрдп" рдУрдУрдкреА рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрд╣рд╛рдВ рд╡рд┐рдзрд┐ рдХрд╛ рдареЛрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗрд╡рд▓ рдХреЙрд▓рд┐рдВрдЧ рдХреНрд▓рд╛рд╕ (рдкрд╣рд▓реЗ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд╖рд┐рдд) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЙрд╕рдХреЗ
рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ (рдФрд░ рд╕рдВрдЦреНрдпрд╛) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдкрдиреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯ рдХрд╛ рд╕рд╣реА-рд╕рд╣реА рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╡рд╣ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рднрд╛рд╖рд╛ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ "рдмрд╕ рдЖрдЧреЗ-рдЖрдЧреЗ рдХрд╛" рд╕рдВрдХрд▓рди рдирд╛рдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛рдиреА рдкрд╣рд▓реЗ рдХреЙрд▓ рдкрд░ рджрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрд▓ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкрд╣рд▓реА рдФрд░ рдмрд╛рдж рдХреА рдХреЙрд▓ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
julia> @time sqrt(8)
рдмреБрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдкреНрд░рд╛рдкреНрдд рддрд░реНрдХреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕реВрдЪреА рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╡рд┐рдзрд┐ рдХреА рдЦреЛрдЬ рдХрд╛ рдПрдХ рдЪреЗрдХ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдк рд╕рдВрдХрд▓рдХ рдХреЛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЪреЗрдХ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рддреЗрдЬ рдХреЛрдб рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд╛рд╢рд┐ рдХреА рдЧрдгрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ
function mysqrt(num)
рдмреЗрдВрдЪрдорд╛рд░реНрдХ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐
S_typed()
рдлрд╝рдВрдХреНрд╢рди рди рдХреЗрд╡рд▓ рддреЗрдЬреА рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐
S()
рд╡рд┐рдкрд░реАрдд рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐
mysqrt()
рд╕реЗ
mysqrt()
рдЧрдП
mysqrt()
рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рджрд╛рдИрдВ рдУрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рддрд░рд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ
sum = sum + mysqrt(sgn)
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╣ рднреА рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛
sum
рд╣реЛрдЧрд╛ред рддреЛ, рдмреЙрдХреНрд╕рд┐рдВрдЧ (рдЯрд╛рдЗрдк рд▓реЗрдмрд▓ рд╣реБрдХрд┐рдВрдЧ) рдПрдХ рдЪрд░ рд╣реИ рдФрд░ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред
S_typed()
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдХрдВрдкрд╛рдЗрд▓рд░ рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐
sum
рдПрдХ рдЬрдЯрд┐рд▓ рдореВрд▓реНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдб рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ,
mysqrt()
рдХреЙрд▓
mysqrt()
рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЗрдирд▓рд╛рдЗрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рдореЗрд╢рд╛
Complex
рдореЗрдВ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ)ред
рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд,
S_typed()
рдХрдВрдкрд╛рдЗрд▓рд░ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдЯрд╛рдЗрдк
Complex
, рд▓реЗрдХрд┐рди
S()
рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рд╡реИрд▓реНрдпреВ
S()
рдкреНрд░рдХрд╛рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЙрди рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрдЧрд╛ рдЬрд╣рд╛рдВ
S()
рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдк рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдХрд▓рдХ
@code_warntype
рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рд▓реМрдЯреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реИ:
julia> @code_warntype S(3) Body::Any
рдпрджрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓реВрдк рдореЗрдВ рдХрд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП
@code_warntype
рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рд╢рд░реАрд░ рдореЗрдВ рдХрд╣реАрдВ
Any
рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдп рдХреА рд░рд╕реАрдж рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрди рдХреЙрд▓реЛрдВ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╡реГрджреНрдзрд┐ рдХреЛ рдмрдврд╝рд╛рдПрдЧрд╛ред
рдпреМрдЧрд┐рдХ рдкреНрд░рдХрд╛рд░
рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░
struct
рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдордЧреНрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
julia> struct GenericStruct
рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдХрд░, рдХреНрд╖реЗрддреНрд░ рдорд╛рдиреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рдЕрдм рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЖрдк рд╕реНрдореГрддрд┐ рдореЗрдВ рдлрд╝реАрд▓реНрдб рдХреЗ рдкрддреЗ рдХреЛ рдмрджрд▓ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ - рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдлрд╝реАрд▓реНрдб рдХреЗ рддрддреНрд╡, рдЬреИрд╕реЗ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ "
sv
рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ")ред
mutable struct
рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ
mutable struct
рдирд┐рд░реНрдорд╛рдг рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╡рд╛рдХреНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рдирд┐рдпрдорд┐рдд рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИред
"рд╢рд╛рд╕реНрддреНрд░реАрдп" рдЕрд░реНрдереЛрдВ рдореЗрдВ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдорд┐рд╢реНрд░рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕реБрдкрд░рдкреЗрдкреНрд╕ рдореЗрдВ рдорд┐рд▓рд╛рдХрд░ "рд╡рд┐рд░рд╛рд╕рдд" рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рд░ рдкреНрд░рдХрд╛рд░ред рдЯрд╛рдЗрдк рд░рд┐рд╢реНрддреЛрдВ рдХреЛ
A<:B
рд░реВрдк рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдП
A<:B
рдХрд╛ рдПрдХ рдЙрдкрдкреНрд░рдХрд╛рд░ рд╣реИ) рдФрд░
A>:B
(рдП
A>:B
рдХрд╛ рдПрдХ рдЙрдкрдкреНрд░рдХрд╛рд░ рд╣реИ)ред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
abstract type NDimPoint end
рдХреЗрд╕ рд╕реНрдЯрдбреА: рдмрд╣реБрдкрдж
рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдЬреЛ рдХрдИ рдкреНрд░реЗрд╖рдг рдХреЗ рд╕рд╛рде рдпреБрдЧреНрдорд┐рдд рд╣реИ, рдЧрдгрд┐рддреАрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЖрдЗрдП рдмрд╣реБрдкрдж рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
рд╣рдо рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╣реБрдкрдж рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддреЗ рд╣реИрдВ: "рд╡рд┐рд╣рд┐рдд", рд╢рдХреНрддрд┐рдпреЛрдВ рдкрд░ рдЧреБрдгрд╛рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ "рдкреНрд░рдХреНрд╖реЗрдк", рдЬреЛрдбрд╝реЗ рдХреЗ рдПрдХ рд╕рдореВрд╣ (x, f (x)) рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рд░рд▓рддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдорд╛рдиреНрдп рддрд░реНрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдХреЗрддрди рдореЗрдВ рдПрдХ рдмрд╣реБрдкрдж рдХреЛ рд╕рдВрдЪрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд░рдгреА рдпрд╛ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЧреБрдгрд╛рдВрдХреЛрдВ рдХреЗ рдЯреНрдпреВрдкрд▓ рд╡рд╛рд▓реЗ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдЙрдкрдпреБрдХреНрдд рд╣реИред рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдореЛрдЯрд░рд╕рд╛рдЗрдХрд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ, рдмрд╣реБрдкрдж рдХреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рдмрд╣реБрдкрдж рдХреЗ рдорд╛рди рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:
abstract type AbstractPolynomial end """ Polynomial <: AbstractPolynomial Polynomials written in the canonical form """ struct Polynomial<:AbstractPolynomial degree::Int coeff::NTuple{N, Float64} where N
рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди рдкреЙрд▓реАрдУрдирд┐рдпрдореНрд╕ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЧрдгрдирд╛ рдкрджреНрдзрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЕрдЧрд░ рдкреНрд░рдХреНрд╖реЗрдк рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕реЗрдЯ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдПрдХ рд╣реА рдмрд╣реБрдкрдж рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рддреЛ
рдиреНрдпреВрдЯрди рдХрд╛ рдкреНрд░рдХреНрд╖реЗрдк рд╕реВрддреНрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ:
рдЬрд╣рд╛рдБ
n k (
x ) рдореВрд▓ рдмрд╣реБрдкрдж рд╣реИрдВ,
n 0 (
x ) рдФрд░
k > 0 рдХреЗ рд▓рд┐рдП
рдЬрд╣рд╛рдБ
x рдореИрдВ рдкреНрд░рдХреНрд╖реЗрдк рдиреЛрдбреНрд╕ рд╣реИрдВ
рдЙрдкрд░реЛрдХреНрдд рд╕реВрддреНрд░реЛрдВ рд╕реЗ рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рднрдВрдбрд╛рд░рдг рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рдХреНрд╖реЗрдк рдиреЛрдбреНрд╕
x i рдФрд░ рдЧреБрдгрд╛рдВрдХ
c i рдХреЗ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЧрдгрдирд╛ рд╣реЙрд░реНрдирд░ рдХреА рдпреЛрдЬрдирд╛ рдХреЗ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
""" InterpPolynomial <: AbstractPolynomial Interpolation polynomials in Newton's form """ struct InterpPolynomial<:AbstractPolynomial degree::Int xval::NTuple{N, Float64} where N coeff::NTuple{N, Float64} where N end """ evpoly(p::Polynomial, z::Real) Evaluate polynomial `p` at `z` using the Horner's rule """ function evpoly(p::InterpPolynomial, z::Real) ans = p.coeff[p.degree+1] for idx = p.degree:-1:1 ans = ans * (z - p.xval[idx]) + p.coeff[idx] end return ans end
рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмрд╣реБрдкрдж рдХреЗ рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдПрдХ рд╣реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ -
evpoly()
- рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред
рдЧрдгрдирд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЬреНрдЮрд╛рдд рдбреЗрдЯрд╛ рд╕реЗ рдПрдХ рдмрд╣реБрдкрдж рдмрдирд╛рддрд╛ рд╣реИред
рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рджреЛ рддрдХрдиреАрдХреЗрдВ рд╣реИрдВ: рдмрд╛рд╣рд░реА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдФрд░ рдЖрдВрддрд░рд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ред рдПрдХ рдмрд╛рд╣рд░реА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдЙрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдПрдХ рдЖрдВрддрд░рд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬрд┐рд╕реЗ рд╕рдВрд░рдЪрдирд╛ рд╡рд┐рд╡рд░рдг рдХреЗ рдЕрдВрджрд░ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдорд╛рдирдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрдВрддрд░рд┐рдХ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди рдкреЙрд▓реАрдУрдирд┐рдпрдореНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП
- рдпрд╣ рдПрдХ рдмрд╣реБрдкрдж рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдЬреЛ рдкреНрд░рдХреНрд╖реЗрдк рдиреЛрдбреНрд╕ рдФрд░ рдЧреБрдгрд╛рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдиреЛрдбреНрд╕ рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
- рдкреНрд░рдХреНрд╖реЗрдк рдиреЛрдбреНрд╕ рдЕрд▓рдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
- рдиреЛрдб рдФрд░ рдЧреБрдгрд╛рдВрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдорд┐рд▓рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдПрдХ рдЖрдВрддрд░рд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд▓рд┐рдЦрдирд╛ рдЬрд┐рд╕рдореЗрдВ рдЗрди рдирд┐рдпрдореЛрдВ рдХреА рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рддреА рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐
InterpPolynomial
рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рднреА рдмрдирд╛рдП рдЧрдП рдЪрд░, рдХрдо рд╕реЗ рдХрдо, рд╕рд╣реА рдврдВрдЧ рд╕реЗ
evpoly()
рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рд╕рд╛рдзрд╛рд░рдг рдмрд╣реБрдкрдж рдХрд╛ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдЖрдпрд╛рдореА рд╕рд░рдгреА рдпрд╛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЧреБрдгрд╛рдВрдХ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд▓реЗрддрд╛ рд╣реИред рдкреНрд░рдХреНрд╖реЗрдк рдмрд╣реБрдкрдж рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд╖реЗрдк рдкреНрд░рдХреНрд╖реЗрдк рдФрд░ рдЙрдирдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЧреБрдгрд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╡рд┐рднрд╛рдЬрд┐рдд рдорддрднреЗрджреЛрдВ рдХреА
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
""" Polynomial <: AbstractPolynomial Polynomials written in the canonical form --- Polynomial(v::T) where T<:Union{Vector{<:Real}, NTuple{<:Any, <:Real}}) Construct a `Polynomial` from the list of the coefficients. The coefficients are assumed to go from power 0 in the ascending order. If an empty collection is provided, the constructor returns a zero polynomial. """ struct Polynomial<:AbstractPolynomial degree::Int coeff::NTuple{N, Float64} where N function Polynomial(v::T where T<:Union{Vector{<:Real}, NTuple{<:Any, <:Real}})
рдмрд╣реБрдкрдж рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреАрдврд╝реА рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдирдХреЗ рд╕рд╛рде рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдЪреВрдВрдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдЕрдВрдХрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рд╢реБрдЧрд░ (
a + b
рдФрд░
+(a, b)
рджреЛрдиреЛрдВ рд╡реИрдз рдФрд░ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реИрдВ) рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЗрдиреНрдлрд┐рдХреНрд╕ рд╕рдВрдХреЗрддрди рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдирдХрд╛ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рд▓реЗрдЦрди рдХреЗ рд╕рдорд╛рди рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдирдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реАрдХреЗред
рдПрдХрдорд╛рддреНрд░ рд╕реВрдХреНрд╖реНрдо рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб
Main
рдореЙрдбреНрдпреВрд▓ (рдирд╛рдо рд╕реНрдерд╛рди) рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдХрд╛рд░реНрдп
Base
рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рд╣реЛ, рддреЛ рдЖрдкрдХреЛ рдпрд╛ рддреЛ
Base
рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреВрд░рд╛ рдирд╛рдо рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╣реБрдкрдж рдХрд╛ рдЬреЛрдбрд╝ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
рджреЛ рд╕рд╛рдзрд╛рд░рдг рдмрд╣реБрдкрдж рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЧреБрдгрд╛рдВрдХ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдФрд░ рдЬрдм рджреВрд╕рд░реЗ рдореЗрдВ рдкреНрд░рдХреНрд╖реЗрдк рдмрд╣реБрдкрдж рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрдИ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдпреЛрдЧ рдорд╛рди рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирд╕реЗ рдПрдХ рдирдпрд╛ рдкреНрд░рдХреНрд╖реЗрдк рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
function Base.:+(p1::Polynomial, p2::Polynomial)
рдЙрд╕реА рддрд░рд╣, рдЖрдк рдмрд╣реБрдкрдж рдкрд░ рдЕрдиреНрдп рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдЧрдгрд┐рддреАрдп рдкрд░реАрдХреНрд╖рд╛ рдореЗрдВ рдХреЛрдб рдореЗрдВ рдЙрдирдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реЛрддрд╛ рд╣реИред
рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдореИрдВ рдЕрдиреНрдп рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рддрд░реАрдХреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдЧреЗ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
рддреИрдпрд╛рд░реА рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
- рдЬреВрд▓рд┐рдпрд╛ рднрд╛рд╖рд╛ рдкреНрд░рд▓реЗрдЦрди: docs.julialang.org
- рдЬреВрд▓рд┐рдпрд╛ рднрд╛рд╖рд╛ рдЪрд░реНрдЪрд╛ рдордВрдЪ: рдкреНрд░рд╡рдЪрдиред Julialang.org
- рдЬреЗред рд╕реНрдЯреЛрдПрд░, рдбрдмреНрд▓реНрдпреВред рдмреБрд▓рд┐рд░рд╕реНрдЪред рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдкрд░рд┐рдЪрдп
- рдЬреВрд▓рд┐рдпрд╛ рд╣рдм: habr.com/en/hub/julia
- рдЬреВрд▓рд┐рдпрд╛ рд╕реЛрдЪреЗрдВ: benlauwens.imtqy.com/ThinkJulia.jl/latest/.html