A simple question about solving the polynomial

This might be a very simple question to the programming gurus. any kind of help will be largely appreciated!!
x=[100 330 380 500 550];
y=[100 450 500 600 700];
p=polyfit(x,y,1); % first degree polynomial curve fitting
yFit=polyval(p,10); % return the value of y (named yFit) evaluated at 10 for example
My question is how can I returen the value of x evaluated at a value of y?

回答(2 个)

Well, there's two things here. Did you even want a polynomial in terms of x? If not, why not initially solve in terms of y?
Otherwise, if you want to express that single answer in terms of either y or x, remember that your vector 'p' contains the solved coefficients for a line:
y = Ax + B
So you tell us how you would find the value of x.

3 个评论

I want to build a relationship between x and y so that when I know a value of x, then I can get the corresponding value of y. the other way round, when I know a value of y, I want to know the value of x.
Well, I reminded you of the formula for a line. By calling polyfit() you found the values for A and B. That just leaves you to rearrange the equation for x.
You can't mean algebra? We have really big computers for that kind of stuff!

请先登录,再进行评论。

X_At_Particular_Y = interp1(y, x, The_Particular_Y, 'linear');
and conversely
Y_At_Particular_X = interp1(x, y, The_Particular_X, 'linear');
Warning: this formulation will only work if both x and y are strictly increasing or strictly decreasing.
If one of your variables is not strictly monotonic, then there are multiple locations for projecting that variable on to the other axis.

类别

在 帮助中心 和 File Exchange 中查找有关 Polynomials 的更多信息

提问:

2012-3-22

Community Treasure Hunt

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

Start Hunting!

Translated by