所以我有一个系统
#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]
的系统? (这里的要点是用给定的[]和b []来填充koefSolution并进行优化。)
答案 0 :(得分:1)
如果你有比方程更多的未知数,你可以做的最好的是最小二乘拟合。
答案 1 :(得分:1)
您可以使用2参数eval
评估[]和b []的给定值。例如,
eval(koefSolution, [a[0]=1, b[2]=3, a[3]=11]);
这里的“优化”是什么意思?你是说a []和b []的已知值可能产生一个不一致的系统(因此需要数值优化和最佳拟合,而不是精确的solve
调用?)