专栏
标签
SOR代码修改
一般问题
发布于 2024-12-05 18:58:30
查看 10过去570天

SOR方法用矩阵运算如下
A = [4 3 0;3 4 -1;-1 0 4]
b = [24, 30, -24]
tol = 1e-3
max_iter = 100
x = [1.0, 1.0, 1.0]
err = tol + 1
for k in 1:max_iter
global x #声明为全局变量
x_new = A \ (b - A*x)
err = maximum(abs.(x_new - x)) / maximum(abs.(x_new))
if err <= tol
break
end
x = x_new
end
println("Gauss-Seidel Method Solution: ", x)
x = [1.0, 1.0, 1.0]
w = 1.25
for k in 1:max_iter
global x
x_new = w * A * x + (1 - w) * A \ (b - A * x)
err = maximum(abs.(x_new - x)) / maximum(abs.(x_new))
if err <= tol
break
end
x = x_new
end
println("SOR Method Solution: ", x)
Julia代码运行出来报错:ERROR: DimensionMismatch: dimensions must match: a has dims (Base.OneTo(4), Base.OneTo(1)), b has dims (Base.OneTo(4), Base.OneTo(4)), mismatch at 2。如何修改代码?

所属专栏:Julia语言
产品信息:Syslab科学计算环境
科学计算

全部回答 1

发布于 2024-12-06 11:21:57

您好,我这边您的代码可以正常运行
image.png

用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天