Function 朱莉娅:什么;这是错误!拉格朗日多项式函数
============================================= 执行时 LoadError:不精确错误() 在[76]中加载时,在从第1行开始的表达式中Function 朱莉娅:什么;这是错误!拉格朗日多项式函数,function,julia,polynomials,Function,Julia,Polynomials,============================================= 执行时 LoadError:不精确错误() 在[76]中加载时,在从第1行开始的表达式中 在lg at in[74]:11中,一个范围内的个数创建一个Int64数组: function lg(X,Y,Xint) n = length(X) L = ones(1:n) for k = collect(1:n) L[k] = 1 for c = collect(1:
在lg at in[74]:11中,一个范围内的个数创建一个Int64数组:
function lg(X,Y,Xint)
n = length(X)
L = ones(1:n)
for k = collect(1:n)
L[k] = 1
for c = collect(1:n)
if c!=k
L[k] = (L[k]*( Xint - X[c] ))/( X[k] - X[c] )
end
end
end
return sum(Y.*L)
end
julia> o = ones(1:3)
3-element Array{Int64,1}:
1
1
1
julia> o[1] = 3.5
ERROR: InexactError()
in setindex!(::Array{Int64,1}, ::Float64, ::Int64) at ./array.jl:339
in eval(::Module, ::Any) at ./boot.jl:226
无法将Float64分配到Int64数组中(您会遇到此错误)
您只需使用ones(n)
即可获得Float64数组:
function lg(X,Y,Xint)
n = length(X)
L = ones(1:n)
for k = collect(1:n)
L[k] = 1
for c = collect(1:n)
if c!=k
L[k] = (L[k]*( Xint - X[c] ))/( X[k] - X[c] )
end
end
end
return sum(Y.*L)
end
julia> o = ones(1:3)
3-element Array{Int64,1}:
1
1
1
julia> o[1] = 3.5
ERROR: InexactError()
in setindex!(::Array{Int64,1}, ::Float64, ::Int64) at ./array.jl:339
in eval(::Module, ::Any) at ./boot.jl:226
旁注:在迭代某个范围之前,不需要
收集
:
julia> ones(3)
3-element Array{Float64,1}:
1.0
1.0
1.0
相反,只需在范围内迭代:
for k = collect(1:n)
嗨,安迪,它现在可以工作了!谢谢!;)-----------------好极了请不要投票和:)