Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Julia 解线性方程组_Julia - Fatal编程技术网

Julia 解线性方程组

Julia 解线性方程组,julia,Julia,我有两个(数学)函数: y = x y = -2x + 3 这可以通过y=1和x=1解决。见图: 我怎样才能让Julia帮我做这件事呢?这是一组线性方程组,所以首先按以下方式重新排列它们: -x + y = 0 2x + y = 3 你可以看到它们是线性方程组的形式,其中A是一个矩阵: julia> A = [-1 1; 2 1] 2×2 Array{Int64,2}: -1 1 2 1 而b是一个向量: julia> b = [0, 3] 2-element Ar

我有两个(数学)函数:

y = x
y = -2x + 3
这可以通过
y=1
x=1
解决。见图:


我怎样才能让Julia帮我做这件事呢?

这是一组线性方程组,所以首先按以下方式重新排列它们:

-x + y = 0
2x + y = 3
你可以看到它们是线性方程组的形式,其中<代码>A是一个矩阵:

julia> A = [-1 1; 2 1]
2×2 Array{Int64,2}:
 -1  1
  2  1
b
是一个向量:

julia> b = [0, 3]
2-element Array{Int64,1}:
 0
 3
现在
v
包含未知变量
x
y
。现在可以使用左除法运算符求解系统:

julia> A\b
2-element Array{Float64,1}:
 1.0
 1.0
如果您有更一般的非线性方程组,则应使用NLsolve.jl软件包:

julia> using NLsolve

julia> function f!(F, v)
           x = v[1]
           y = v[2]
           F[1] = -x + y
           F[2] = 2*x + y - 3
       end
f! (generic function with 1 method)

julia> res = nlsolve(f!, [0.0; 0.0])
Results of Nonlinear Solver Algorithm
 * Algorithm: Trust-region with dogleg and autoscaling
 * Starting Point: [0.0, 0.0]
 * Zero: [1.0000000000003109, 0.9999999999999647]
 * Inf-norm of residuals: 0.000000
 * Iterations: 2
 * Convergence: true
   * |x - x'| < 0.0e+00: false
   * |f(x)| < 1.0e-08: true
 * Function Calls (f): 3
 * Jacobian Calls (df/dx): 3

julia> res.zero
2-element Array{Float64,1}:
 1.0000000000003109
 0.9999999999999647
julia>使用NLsolve
朱莉娅>函数f!(F,v)
x=v[1]
y=v[2]
F[1]=-x+y
F[2]=2*x+y-3
结束
F(带1方法的泛型函数)
julia>res=nlsolve(f!,[0.0;0.0])
非线性求解算法的结果
*算法:带狗腿和自动缩放的信赖域
*起点:[0.0,0.0]
*零:[1.0000000000003109,0.9999999999647]
*残差的Inf范数:0.000000
*迭代次数:2次
*收敛性:正确
*| x-x'|<0.0e+00:错误
*| f(x)|<1.0e-08:正确
*函数调用(f):3
*雅可比调用(df/dx):3
朱莉娅>零度
二元数组{Float64,1}:
1.0000000000003109
0.9999999999999647
(请注意,在
f!
中,我们将两个输出
f[1]
f[2]
定义为等于零-您必须以这种方式重新排列方程式)

有关如何使用NLsolve.jl的更多详细信息,请参阅