필터 지우기
필터 지우기

evaluate a cubic polynomial in an interval

조회 수: 1 (최근 30일)
Max
Max 2012년 11월 20일
Hi at everybody,
I have to evaluate a cubic polynomial in an interval;
I have a polynomials coefficients vector (C) in the form
v1= ( a1 * x^3 ) + ( b1 * x^2 ) + ( c1*x ) + (d1)
and the interval [i_k , i_(k+1)]
Is there a command to do this?
thanks
  댓글 수: 2
Matt Fig
Matt Fig 2012년 11월 20일
You don't show vector C. Is C like this:
C = [a1 b1 c1 d1];
or what?
Max
Max 2012년 11월 20일
Sorry, I forgot a step ;) Yes

댓글을 달려면 로그인하십시오.

답변 (2개)

John Petersen
John Petersen 2012년 11월 20일
If you mean you want to evaluate v1 at x values between the kth and (k+1)th values of x, then define x as the interval of interest, define an array for your coefficients and then use polyval to evaluate the polynomial at the values of x you have specified. You can plot the result to see if it's what you expected.
x = [starting_value:stepsize:ending_value];
c = [a1 b1 c1 d1];
v1 = polyval(c,x);
figure;plot(x,v1)

Max
Max 2012년 11월 20일
I try to be more explicit:
I have to calculate the inflection point of a cubic spline.
I have 2 vectors that contains experimental data; - temperature - - > temp = [t1 t2 t3 ... t7 ] - deepness (depth); - - > deep = [d1 d2 d3 ... d7]
with :
pp=spline(deep,temp);
I generate the spline; with :
[x,C,l,k,d]=unmkpp(pp);
I extrapolated the coefficient of spline in the C matrix: ervery rows represents a interpolating polynomial ( f(x) = ax^3 + bx^2 + cx + d);
To identify the inflection point, I calculate (first the first derivatives and then) the second derivative of the spline coefficients ( the polynomial derivatives is f''(x) = 6ax + 2b )
CoefDer2 = [6*C(:,1) 2*C(:,2)];
Cder2 = mkpp(x,CoefDer2);
Then, I impose f''(x)=0 and calculate all polynomials roots
xCder2 = cell2mat(arrayfun(@(X) roots(Cder2(X,:)), (1:size(Cder2,1)),'un',0))';
Now in xCder2 (vector) there are memorized all the x-components of the probable inflection points.
at this point I have to evaluate every polynomial in its interval:
for example, evaluate xCder2(1), in the interval (deep(1), deep(2)) xCder2(2), in the interval (deep(2), deep(3)) etc

카테고리

Help CenterFile Exchange에서 Splines에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by