Julia精解【1】

发布于:2024-07-03 ⋅ 阅读:(122) ⋅ 点赞:(0)

文章目录

转换类型

在Julia中,可以使用内置函数来转换或者调整数据类型。以下是一些常用的数据类型转换方法:

  • 转换类型
Int(): 将浮点数或字符串转换为整数。

Float(): 将整数或字符串转换为浮点数。

String(): 将其他类型转换为字符串。

Char(): 将字符串或字符转换为Char类型。

parse(): 将字符串转换为指定类型,如parse(Int, "123")将字符串"123"转换为整数123。
  • 取整
    取整可以使用几种不同的函数,取决于你想要的取整方式(向下取整、向上取整还是四舍五入)。以下是一些常用的取整函数:


    floor(::Type{T}, x):向下取整,返回小于或等于x的最大整数。

    ceil(::Type{T}, x):向上取整,返回大于或等于x的最小整数。

    round(::Type{T}, x):四舍五入到最接近的整数。

    iround(::Type{T}, x):四舍五入到最接近的整数,对于.5的情况会考虑前一个整数。

    trunc(::Type{T}, x):向0方向取整,丢弃小数部分。

伴随矩阵

julia> x=[11 22;33 44]
2×2 Matrix{Int64}:
 11  22
 33  44

下面这段代码对吗?对于二维方阵是对的,因为直接求的是转置矩阵

A'=adjoint(A)
julia> adjoint(x)
2×2 adjoint(::Matrix{Int64}) with eltype Int64:
 11  33
 22  44

但二维以上就错了!

using LinearAlgebra
k=[10 5 12 ;3 14 21;8 9 11]
adjoint_k=[0 0 0;0 0 0;0 0 0]
for i in range(1,3)
	index_i=[1,2,3]
	deleteat!(index_i,i)
	for j in range(1,3)
		global k
		index_j=[1,2,3]
		deleteat!(index_j,j)		
		print([index_i,index_j],"=")
		println(k[index_i,index_j])
		a_ij=(-1)^(i+j)*round(Int,det(k[index_i,index_j]))
		adjoint_k[j,i]=a_ij
	end
end
println(adjoint_k)

julia> include("e:/learn/learn1.jl")
[[2, 3], [2, 3]]=[14 21; 9 11]
[[2, 3], [1, 3]]=[3 21; 8 11]
[[2, 3], [1, 2]]=[3 14; 8 9]
[[1, 3], [2, 3]]=[5 12; 9 11]
[[1, 3], [1, 3]]=[10 12; 8 11]
[[1, 3], [1, 2]]=[10 5; 8 9]
[[1, 2], [2, 3]]=[5 12; 14 21]
[[1, 2], [1, 3]]=[10 12; 3 21]
[[1, 2], [1, 2]]=[10 5; 3 14]
[-35 53 -63; 135 14 -174; -85 -50 125]

网站公告

今日签到

点亮在社区的每一天
去签到