A simple question about solving the polynomial
5 次查看(过去 30 天)
显示 更早的评论
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?
0 个评论
回答(2 个)
Geoff
2012-3-22
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 个评论
Geoff
2012-3-23
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.
John D'Errico
2012-3-23
You can't mean algebra? We have really big computers for that kind of stuff!
Walter Roberson
2012-3-23
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.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Polynomials 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!