0

所以我有一个系统

#for given koefs 
k:=3; n:=3; 
#let us solve system:
koefSolution:= solve({
 sum(a[i], i = 0 .. k) = 0,
 sum(a[i], i = 0 .. k)-(sum(b[i], i = 0 .. k)) = 0,
 sum(i^n*a[i], i = 0 .. k)-(sum(i^(n-1)*b[i], i = 0 .. k)) = 0
});

所以我有一个像

koefSolution := {  a[0] = 7*a[2]+26*a[3]-b[1]-4*b[2]-9*b[3], 
                   a[1] = -8*a[2]-27*a[3]+b[1]+4*b[2]+9*b[3], 
                   a[2] = a[2], 
                   a[3] = a[3], 
                   b[0] = -b[1]-b[2]-b[3], 
                   b[1] = b[1], b[2] = b[2], 
                   b[3] = b[3]}

我有a[0]所以我尝试solve({koefSolution, a[0] = 1});为什么它不能解决我的系统给定的问题a[0]?(这里的要点是用给定的 a[] 和 b[] 填充 koefSolution 并优化。)

4

2 回答 2

1

您可以使用 2-argument 在给定的 a[] 和 b[] 值处进行评估eval。例如,

eval(koefSolution, [a[0]=1, b[2]=3, a[3]=11]);

这里的“优化”是什么意思?您是说 a[] 和 b[] 的已知值可能会产生不一致的系统(因此需要数值优化和最佳拟合,而不是精确solve调用?)

于 2011-01-02T06:00:33.000 回答
1

如果你的未知数比方程多,你能做的最好的就是最小二乘拟合。

于 2010-12-26T23:35:09.220 回答