朱莉娅:什么是Erro!拉格朗日多项式函数

时间:2016-05-28 00:44:57

标签: function julia polynomials

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

=========================

执行时

LoadError:InexactError() 在[76]中加载时,从第1行开始的表达式

in in In [74]:11?

1 个答案:

答案 0 :(得分:3)

范围的

ones创建一个Int64数组:

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数组:

julia> ones(3)
3-element Array{Float64,1}:
 1.0
 1.0
 1.0

附注:在迭代范围之前,您不需要collect

for k = collect(1:n)

而只是迭代范围:

for k = 1:n