MATLAB Answers

Omur
1

Determining polynomial coefficients by known derivatives

Asked by Omur
on 18 Oct 2012
Latest activity Commented on by Star Strider
on 8 Jul 2017
Hello community, I'm trying to create a cubic polynomial function, I know these: y(0)=1 y(30)=0.5 dy(0)/dx=-1 dy(30)/dx=-1 Can I determine the values for coefficients ?

  0 Comments

Sign in to comment.

2 Answers

Answer by Dr. Seis
on 18 Oct 2012
Edited by Dr. Seis
on 18 Oct 2012
 Accepted Answer

Yes. Just in case this is homework, I will give an example to get you started.
Let's say you have the case below (I will start with the case where we do not have derivatives at a location).
We are trying to solve for A, B, and C
y(x) = A*x^2 + B*x + C
Knowns:
x1 = 0; y1 = 1;
x2 = 3; y2 = 6;
x3 = 7; y3 = 7;
So we can construct an inverse problem of the form G * m = d, where:
G = [x1^2,x1,1; x2^2,x2,1; x3^2,x3,1];
d = [y1; y2; y3];
We determine m (equal to [A; B; C] in our example) by:
m = G\d;
And we get:
plot(-1:10,polyval(m,-1:10),'r-', [x1,x2,x3],[y1,y2,y3],'k+')

  8 Comments

Almost... since you will need to expand to a 3-order polynomial, I will give you the G for a 2-order (which would give you the plot immediately above if dydx2 = +1). In your case, your y and y' info are at the same 2 x locations... so:
| x1^2, x1, 1 | | A | | y1 |
| x2^2, x2, 1 | | B | = | y2 |
| 2*x1, 1, 0 | | C | | dydx1 |
| 2*x2, 1, 0 | | dydx2 |
You still need to have contribution from your "B", which is why the second column of the last two rows have the 1. Once you expand to a 3-order polynomial for your data, you should get something like:
To learn more about using mark-up to format your questions/answers/comments you can check out this page:

Sign in to comment.


Answer by Suzie Oman on 8 Jul 2017

This answer doesn't incorporate the derivative. How would this be solved taking into account the derivative?
What about in 3 dimensions?

  1 Comment

Sign in to comment.