You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Julia求解线性方程组Az=b结果与R正确输出不一致排查求助

核心错误原因

你复现失败的核心问题是Julia代码中b向量的构造完全不符合R的逻辑,具体有两处错误:

  • R中b的结构为:前3个元素为0,第4个为均值m[1]=0.0427,第5个为1
  • 你的Julia代码b0 = vcat(z, μp0, 0)存在两个问题:
    • 注释中说明前三个是零向量,但直接写了未定义的变量z(此时z还没有被赋值,你应该用zeros(3)生成前三个0元素)
    • 第五个元素错误写为0,和R中的1完全不符

额外优化建议

求解线性方程组不要用inv(A)*b,Julia中的左除运算符A \ b和R的solve(A,b)功能完全等价,数值稳定性更高、计算效率也更好。


修正后可复现R结果的Julia代码

n_assets = 3
o = ones(Int8, n_assets)

# 资产收益参数
rA = .0427 ;    sA = .1000;     lA = "A"
rB = .0015 ;    sB = .1044;     lB = "B"
rC = .0285 ;    sC = .1411;     lC = "C"

varA = sA^2;    varB = sB^2;    varC = sC^2;
covAB = .0018;  covBC = .0026;  covAC = .0011
covBA = covAB;  covCB = covBC;  covCA = covAC

# 均值向量和协方差矩阵
μ = [rA rB rC]
Σ = [varA covAB covAC; covBA varB covBC; covCA covCB varC]

# 构造矩阵A(和你的原有逻辑一致,无错误)
A_top = hcat(2*Σ, μ', o)
A_mid = hcat(μ,0,0 )
A_bot = hcat(o',0,0)
A = vcat(A_top, A_mid, A_bot)

# 修正:正确构造b向量,和R逻辑完全对齐
μp0 = rA
b0 = vcat(zeros(3), μp0, 1)

# 用左除求解线性方程组
z = A \ b0

修正后运行输出的z向量和R结果完全一致:

5-element Vector{Float64}:
  0.8274545549521028
 -0.09074612266358031
  0.2632915677114776
 -0.3502902776605107
 -0.0018442521373262098

内容的提问来源于stack exchange,提问作者user11254108

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:15:01