user13586457
user13586457

Reputation:

Finding Cubic Polynomials

I have an equation: y=ax^3 + bx^2 + cx + d and the list of values x = 1, 2, 3, 4 when y = 3, 4, 3, -6 respectively. In Octave, I want to:

(a) Set up a system of four equations involving a, b, c and d. For example, substituting (x, y) = (1,3) into the polynomial gives the equation 3 = a + b + c + d.

(b) Solve the system in (a).

I've been trying to find how to do this for three hours and found nothing. Any help would be appreciated

Thanks.

pstscrpt - I have to do everything in Octave, even though I could find it by hand

Upvotes: 2

Views: 84

Answers (2)

matzeri
matzeri

Reputation: 8486

Written without any ; at end of assignements so you can see what is going on.
You problem is basically a linear system in the variables [a,b,c,d]'=z So you need to build a system A*z=y, where A is a matrix 4x4, y and z are column vector size 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

the outcome will be

z =

  -1.00000
   5.00000
  -7.00000
   6.00000

Upvotes: 1

bla
bla

Reputation: 26069

In Matlab: start by just substituting the different values of x and y you wrote in the expression a*x^3 + b*x^2 + c*x + d = y as:

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 ;

Then Use equationsToMatrix to convert the equations into the form AX = B. The second input to equationsToMatrix specifies the independent variables in the equations.:

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

and the solution for a,b,c,d is:

 X = linsolve(A,B)

you can also use if you want

sol = solve([eqn1, eqn2, eqn3, eqn4], [a, b, c,d ])

Upvotes: 1

Related Questions