Julia程序设计1 介绍和基础数学运算

Julia程序设计1 介绍和基础数学运算

介绍

本来打算用Matlab来写MATH 575A和MATH 575B的笔记的,但最近关于Matlab的新闻让我觉得可能还是用免费开源又强大的Julia比较好。这个系列的博文介绍Julia程序设计和数值计算,我也是从Matlab转战Julia的,就边学边写吧。

Julia下载安装比较简单,在https://julialang.org/downloads/就可以下载
在这里插入图片描述
我选的是JuliaPro 1.4.2-1 Windows版本的,安装过程就选了一下路径。安装好后打开JuliaPro 1.4.2-1界面长这样(三个框框是我加的。。。)
在这里插入图片描述
这个界面我觉得还是比较友好的,第一栏是菜单栏,左边竖着的是工具栏,整个界面分为三个区域:Atom、REPL和Workplace。蓝框框是编辑器Atom,绿框框是Workplace,黄框框里面的是REPL(Read-Eval-Print-Loop),官方的解释是

• it reads what a user types,
• the compiler evaluates what it reads,
• it prints out the return value after evaluation, and
• it loops back and does it all over again.

其实就是命令行窗口。在REPL中输入命令可以按tab键自动补全,输入?加函数或命令可以搜索帮助文档,输入?后REPL会从Julia mode变成help mode,比如? println:

help?>  println
search: println printstyled print sprint isprint

  println([io::IO], xs...)

  Print (using print) xs followed by a newline. If io is not supplied, prints to stdout.

  Examples
  ≡≡≡≡≡≡≡≡≡≡

  julia> println("Hello, world")
  Hello, world
  
  julia> io = IOBuffer();
  
  julia> println(io, "Hello, world")
  
  julia> String(take!(io))
  "Hello, world\n"

简单数学运算

更具体的可以参考Julia中文文档https://juliacn.readthedocs.io/en/latest/manual/mathematical-operations.html

1)复数表示: A+Bim

julia> 1+1im
1 + 1im

julia> 2+(1+1im)
3 + 1im

julia> 2.0+(1+1im)
3.0 + 1.0im

julia> (2.0+2.0im)+(1.0+1.0im)
3.0 + 3.0im

注意im和虚部B之间不能有空格,不然会报错

julia> 1 + 1 im
ERROR: syntax: extra token "im" after end of expression

2)有理数表示:Rational(A,B)

julia> Rational(2,3)
2//3

julia> Rational(2,3)+2
8//3

julia> Rational(2,3)+2.0
2.6666666666666665

注意第一个R是要大写的,不然会报错

julia> rational(2,3)
ERROR: UndefVarError: rational not defined
Stacktrace:
 [1] top-level scope at none:0

3)常用的常数
π \pi e e 是非常常用的两个常数,在Julia中这两个常数被预定义为pi和ℯ

julia> pi
π = 3.1415926535897...

julia> ℯ
ℯ = 2.7182818284590...

注意这里的 ℯ 不是英语字母e!在Julia中的输入方法是先输入\euler再按tab就会转换成ℯ,因为Julia是支持Unicode字符输入的,通用方法是输入符号的Unicode,按tab即可,根据这个方法可以定义希腊字母变量

julia> α,β=0,1;

julia> α,β
(0, 1)

4)真值:true,false
做数值计算时true被当成1,false被当成0

julia> true
true

julia> false
false

julia> true+1
2

julia> true+0.1
1.1

julia> true+3//5
8//5

赋值的时候要注意不能直接=true,要用=Bool(true),并且首字母要大写,不然会报错

julia> a = Bool(true)
true

julia> a = bool(true)
ERROR: UndefVarError: bool not defined
Stacktrace:
 [1] top-level scope at none:0

5)算数运算
在这里插入图片描述
再补充一个整除÷

6)比较运算
在这里插入图片描述
有几个比较特殊的值:
• Positive zero is equal but not greater than negative zero.
• Inf is equal to itself and greater than everything else except NaN.
• -Inf is equal to itself and less then everything else except NaN.
• NaN is not equal to, not less than, and not greater than anything,
including itself.
以及相应的用来判断的函数:
在这里插入图片描述
7)逻辑运算
在这里插入图片描述在这里插入图片描述
第一个a改成!a,异或运算符号是⊻,上表给的符号已经没有再使用了,或者用函数xor(a,b)

julia> a = Bool(true)
true

julia> b = Bool(false)
false

julia> !a
false

julia> a&b
false

julia> a|b
true

julia> a$b
ERROR: UndefVarError: $ not defined
Stacktrace:
 [1] top-level scope at none:0

julia> a⊻b
true

julia> xor(a,b)
true

julia> a>>>b
1

julia> a>>b
1

8)复合赋值运算
这个和C语言的很像,没什么特别的。
在这里插入图片描述
9)运算优先级
优先级从上到下递减:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44207974/article/details/106803680