Нахождение кубов c многочленов - PullRequest
2 голосов
/ 27 мая 2020

У меня есть уравнение: y=ax^3 + bx^2 + cx + d и список значений x = 1, 2, 3, 4 при y = 3, 4, 3, -6 соответственно. В Octave я хочу:

(a) Установить систему из четырех уравнений, включающих a, b, c и d. Например, подстановка (x, y) = (1,3) в полином дает уравнение 3 = a + b + c + d.

(b) Решите систему в (a).

Три часа пытался найти, как это сделать, но ничего не нашел. Любая помощь будет принята с благодарностью.

Спасибо.

pstscrpt - мне нужно делать все в Octave, хотя я мог бы найти его вручную

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Записывается без каких-либо ; в конце присваиваний, чтобы вы могли видеть, что происходит.
Ваша проблема - это в основном линейная система в переменных [a, b, c, d] '= z Итак вам нужно построить систему A * z = y, где A - матрица 4x4, y и z - размер вектора столбца 4

x=[1,2,3,4]'
y=[3,4,3,-6]'
A=zeros(4,4)

for i=1:4
 A(i,:)= [ x(i)^3, x(i)^2, x(i), 1]
endfor 

z=A\y

, результат будет

z =

  -1.00000
   5.00000
  -7.00000
   6.00000
1 голос
/ 27 мая 2020

В Matlab: начните с простой замены различных значений x и y, которые вы написали в выражении a*x^3 + b*x^2 + c*x + d = y как:

syms a b c d
eqn1 = a*1^3 + b*1^2 + c*1^1 +d ==  3 ;
eqn2 = a*2^3 + b*2^2 + c*2^1 +d ==  4 ;
eqn3 = a*3^3 + b*3^2 + c*3^1 +d ==  3 ;
eqn4 = a*4^3 + b*4^2 + c*4^1 +d == -6 ;

Затем используйте equationsToMatrix, чтобы преобразовать уравнения в форма AX = B. Второй вход в equationsToMatrix определяет независимые переменные в уравнениях:

 [A,B] = equationsToMatrix([eqn1, eqn2, eqn3, eqn4], [a, b, c,d ])

, а решение для a, b, c, d:

 X = linsolve(A,B)

you также можете использовать, если хотите

sol = solve([eqn1, eqn2, eqn3, eqn4], [a, b, c,d ])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...