Как решить такую ​​систему с заданными ее частями?(Клен) - PullRequest
0 голосов
/ 26 декабря 2010

Итак, у меня была система

#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]?(Главное здесь - заполнить koefSolution данными a [] и b [] и оптимизировать.)

Ответы [ 2 ]

1 голос
/ 02 января 2011

Вы можете оценить при заданных значениях a [] и b [] используя 2-аргумент eval. Например,

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

Что вы подразумеваете под "оптимизировать" здесь? Вы говорите, что известные значения a [] и b [] могут создать несовместимую систему (и, следовательно, требуют численной оптимизации и наилучшего соответствия, а не точного solve вызова?)

1 голос
/ 27 декабря 2010

Если у вас больше неизвестных, чем уравнений, лучшее, что вы можете сделать, - это метод наименьших квадратов.

...