求解线性系统对于未知向量来自方阵. (规范)
用于求解来自一般矩阵的线性系统的接口。
此接口提供了计算线性矩阵系统解的方法。支持的数据类型包括real
和complex
。对矩阵结构没有假设。该函数可以同时求解一个(来自一维右手边向量b(:)
)或多个(来自二维右手边向量b(:,:)
)系统。
注意
该解决方案基于 LAPACK 的通用基于 LU 分解的求解器*GESV
。
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
complex(kind=sp), | intent(in) | :: | a(:,:) |
输入矩阵 a[n,n] |
||
complex(kind=sp), | intent(in) | :: | b(:,:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
结果数组/矩阵 x[n] 或 x[n,nrhs]
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
complex(kind=sp), | intent(in) | :: | a(:,:) |
输入矩阵 a[n,n] |
||
complex(kind=sp), | intent(in) | :: | b(:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
结果数组/矩阵 x[n] 或 x[n,nrhs]
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
complex(kind=sp), | intent(inout), | target | :: | a(:,:) |
输入矩阵 a[n,n] |
|
complex(kind=sp), | intent(in) | :: | b(:,:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
||
logical(kind=lk), | intent(in), | optional | :: | overwrite_a |
[可选] A 数据可以被覆盖和销毁吗? |
|
type(linalg_state_type), | intent(out) | :: | err |
[可选] 状态返回值。如果在错误发生时未请求,代码将停止 |
结果数组/矩阵 x[n] 或 x[n,nrhs]
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
complex(kind=sp), | intent(inout), | target | :: | a(:,:) |
输入矩阵 a[n,n] |
|
complex(kind=sp), | intent(in) | :: | b(:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
||
logical(kind=lk), | intent(in), | optional | :: | overwrite_a |
[可选] A 数据可以被覆盖和销毁吗? |
|
type(linalg_state_type), | intent(out) | :: | err |
[可选] 状态返回值。如果在错误发生时未请求,代码将停止 |
结果数组/矩阵 x[n] 或 x[n,nrhs]
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | a(:,:) |
输入矩阵 a[n,n] |
||
real(kind=dp), | intent(in) | :: | b(:,:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
结果数组/矩阵 x[n] 或 x[n,nrhs]
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | a(:,:) |
输入矩阵 a[n,n] |
||
real(kind=dp), | intent(in) | :: | b(:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
结果数组/矩阵 x[n] 或 x[n,nrhs]
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | target | :: | a(:,:) |
输入矩阵 a[n,n] |
|
real(kind=dp), | intent(in) | :: | b(:,:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
||
logical(kind=lk), | intent(in), | optional | :: | overwrite_a |
[可选] A 数据可以被覆盖和销毁吗? |
|
type(linalg_state_type), | intent(out) | :: | err |
[可选] 状态返回值。如果在错误发生时未请求,代码将停止 |
结果数组/矩阵 x[n] 或 x[n,nrhs]
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | target | :: | a(:,:) |
输入矩阵 a[n,n] |
|
real(kind=dp), | intent(in) | :: | b(:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
||
logical(kind=lk), | intent(in), | optional | :: | overwrite_a |
[可选] A 数据可以被覆盖和销毁吗? |
|
type(linalg_state_type), | intent(out) | :: | err |
[可选] 状态返回值。如果在错误发生时未请求,代码将停止 |
结果数组/矩阵 x[n] 或 x[n,nrhs]
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
real(kind=sp), | intent(in) | :: | a(:,:) |
输入矩阵 a[n,n] |
||
real(kind=sp), | intent(in) | :: | b(:,:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
结果数组/矩阵 x[n] 或 x[n,nrhs]
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
real(kind=sp), | intent(in) | :: | a(:,:) |
输入矩阵 a[n,n] |
||
real(kind=sp), | intent(in) | :: | b(:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
结果数组/矩阵 x[n] 或 x[n,nrhs]
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
real(kind=sp), | intent(inout), | target | :: | a(:,:) |
输入矩阵 a[n,n] |
|
real(kind=sp), | intent(in) | :: | b(:,:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
||
logical(kind=lk), | intent(in), | optional | :: | overwrite_a |
[可选] A 数据可以被覆盖和销毁吗? |
|
type(linalg_state_type), | intent(out) | :: | err |
[可选] 状态返回值。如果在错误发生时未请求,代码将停止 |
结果数组/矩阵 x[n] 或 x[n,nrhs]
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
real(kind=sp), | intent(inout), | target | :: | a(:,:) |
输入矩阵 a[n,n] |
|
real(kind=sp), | intent(in) | :: | b(:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
||
logical(kind=lk), | intent(in), | optional | :: | overwrite_a |
[可选] A 数据可以被覆盖和销毁吗? |
|
type(linalg_state_type), | intent(out) | :: | err |
[可选] 状态返回值。如果在错误发生时未请求,代码将停止 |
结果数组/矩阵 x[n] 或 x[n,nrhs]
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(in) | :: | a(:,:) |
输入矩阵 a[n,n] |
||
complex(kind=dp), | intent(in) | :: | b(:,:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
结果数组/矩阵 x[n] 或 x[n,nrhs]
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(in) | :: | a(:,:) |
输入矩阵 a[n,n] |
||
complex(kind=dp), | intent(in) | :: | b(:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
结果数组/矩阵 x[n] 或 x[n,nrhs]
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | target | :: | a(:,:) |
输入矩阵 a[n,n] |
|
complex(kind=dp), | intent(in) | :: | b(:,:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
||
logical(kind=lk), | intent(in), | optional | :: | overwrite_a |
[可选] A 数据可以被覆盖和销毁吗? |
|
type(linalg_state_type), | intent(out) | :: | err |
[可选] 状态返回值。如果在错误发生时未请求,代码将停止 |
结果数组/矩阵 x[n] 或 x[n,nrhs]
类型 | 意图 | 可选 | 属性 | 名称 | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | target | :: | a(:,:) |
输入矩阵 a[n,n] |
|
complex(kind=dp), | intent(in) | :: | b(:) |
右手边向量或数组,b[n] 或 b[n,nrhs] |
||
logical(kind=lk), | intent(in), | optional | :: | overwrite_a |
[可选] A 数据可以被覆盖和销毁吗? |
|
type(linalg_state_type), | intent(out) | :: | err |
[可选] 状态返回值。如果在错误发生时未请求,代码将停止 |
结果数组/矩阵 x[n] 或 x[n,nrhs]