【发布时间】:2020-01-16 08:14:40
【问题描述】:
我正在尝试使用 Math.net 求解非线性平方线性系统。 但我得到一个错误矩阵尺寸必须一致:3x7。
下面是一些示例代码:
using MathNet.Numerics.LinearAlgebra;
var mBuilder = Matrix<double>.Build;
var vBuilder = Vector<double>.Build;
var A = mBuilder.DenseOfArray(new double[,]
{
{ 3, 2, 1, 5, -1, 0, 0 },
{ 2, 1, 1, 2, 0, -1, 0 },
{ 5, 1, 3, 4, 0, 0, -1 }
});
var b = vBuilder.DenseOfArray(new double[] { -3, -5, -2 });
Vector<double> x;
x = A.Solve(b);
明确系统有解决方案(例如X = {0, 0, 0, 0, 3, 5, 2})。
如何使用 Math.Net 解决这样的系统?
【问题讨论】:
-
您是否尝试检查矩阵是否实际上是 3x7 而不是 7x3?
-
@ZenZac yes
A.Transpose().Solve(b)给出另一个错误(所有向量必须具有相同的维度) -
您的矩阵 A 似乎是 3x7,而您的矩阵 B 似乎是 1x3。尝试转置 B。
-
b 是一个向量。你不能转置向量。
-
不是同一个库,但这应该提供更多信息:tutorialspoint.com/matlab/matlab_vector_transpose.htm
标签: c# linear-algebra math.net