【发布时间】:2016-09-01 19:48:46
【问题描述】:
下面的代码使用高斯方法求解线性系统。当我再次运行时,出现错误:
LoadError: InexactError()
while loading In[176], in expression starting on line 4
in setindex! at array.jl:313
[inlined code] from In[176]:13
in anonymous at no file:12
运行3次以上系统解决。怎么了?
A = [4.1 -5 6.8;7.8 -8 -9;-17 4 1];
b = [1,2,3];
x = zeros(3);
m = 0;
al,ac = size(A)
for k= 1:(al-1)
#println("valor de k ",k)
for i = (k+1):al
#println("valor de i ",i)
m = A[i,k]/(A[k,k])
A[i,k] = 0
for j=(k+1):al
#println("valor de j",j)
A[i,j] = A[i,j] - m*A[k,j]
b[i]= b[i] - m*b[k]
end
end
end
x[al] = b[al]/(A[al,al])
for k = (al-1):-1:1
begin
s = 0;
for j = (k+1):al
s = s+A[k,j]*x[j]
end
x[k]=(b[k]-s)/A[k,k]
end
end
println(x)
【问题讨论】:
-
我猜输出不正确,
b的类型应该是Array{Float64},改用b = Float64[1,2,3]; -
嗨格尼穆克。一切都好。我以浮点格式(1.0、2.0、3.0)输入数字,它起作用了;)。感谢您的提示
-
您需要将代码放入函数中;它的风格要好得多(明确显示输入和输出是什么,并且易于重用),并且会在 julia 中获得更好的性能。
-
嗨贝扎森。我用函数的形式写的,效果更好;)
标签: system linear-algebra julia gaussian