Is it possible to use Matlab to get expressions for the coefficients in polynomial regression? (I.e., not just constant coefficients)

조회 수: 2 (최근 30일)
I'm trying to modify one section of an old code so that it uses my new data for one of its parameters. The code expresses an equation as a fourth-order power series in X and y. I know how to do polynomial regression on a curve like the one below to get an expression like:
Phi=k0+k1y+k2y2+k3y3+k4y4
However, my problem is that the code uses a more sophisticated expression for k. I.e.,
I need to express the k this way (in terms of a coefficients) because they're needed elsewhere in the code. Right now, the a coefficients are provided in a table in the code, but I have no idea how to calculate them.
I'm comfortable using Matlab and would be grateful if someone could tell me whether there is a way to do polynomial regression for a fourth-order power series (based on curves like the one in the top figure above) and get the coefficients in terms of a coefficients as shown in the figure above. I have looked around but it does not seem like it is possible. For example "multiple linear regression" and "multivariate regression" don't seem to do what I need. Maybe they do though and I'm not experienced enough to see it? Thank you for any advice.
  댓글 수: 2
Torsten
Torsten 2022년 5월 25일
So X and Y are independent variables and phi = f(X,Y) ?
I ask this because in your ansatz for phi
phi = k0 + k1*Y + k2*Y^2 + k3*Y^3 + k4*Y^4
X as variable does not appear.
Srh Fwl
Srh Fwl 2022년 5월 26일
편집: Srh Fwl 2022년 5월 26일
Torsten, thank you for your help and apologies for the wait (fell asleep!). Yes, they are independent variables. Yes, I also don't understand why X does not appear in my expression, but I think it's OK. Each curve (like in the top figure) is for a specific X. So the phi–Y relationship, I can figure out how to get the correct "a" coefficients," should be correct for X as well.

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

채택된 답변

Torsten
Torsten 2022년 5월 25일
M = [X.^(-1).*Y,X.^(-1).*Y.^2,Y.^2,X.*Y.^2,X.^(-1).*Y.^3,X.*Y.^3,X.^2.*Y.^3,X.^(-2).*Y.^4,X.^(-1).*Y.^4,Y.^4];
b = PHI - 1.0;
a = M\b;
where X,Y and PHI are column vectors of the same size.
Here, a(i) = ai in your problem description.
  댓글 수: 7
Torsten
Torsten 2022년 5월 26일
It makes sense that the a coefficients are going to be in the form of a vector, but I'm hung up on what Bruno has done to get his "M = " expression.
M*a = b
written out gives
x^(-1)*y*a(1)+x^(-1)*y^2*a(2)+y^2*a(3)+x*y^2*a(4) ... = PHI - 1
thus your model function equation.
You want to solve this equation for a, thus
a = M\b
Srh Fwl
Srh Fwl 2022년 5월 26일
편집: Srh Fwl 2022년 5월 26일
Thank you both so much. I finally get it! Really appreciate your patience. It's great to finally understand what's going on with this.

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

추가 답변 (1개)

Walter Roberson
Walter Roberson 2022년 5월 25일
For each equation divide both sides by the highest negative coefficient,
k4(Xhat)/Xhat^(-2) = a8*Xhat^(-2)/Xhat^(-2) + etc
k4(Xhat)*Xhat^2 = a8 + a9*Xhat + a10*Xhat^2
subtract left from right and you have a standard polynomial that you can do fitting on
  댓글 수: 1
Srh Fwl
Srh Fwl 2022년 5월 26일
편집: Srh Fwl 2022년 5월 26일
Sorry, Walter, I don't follow (very rusty at algebra!). If you have time, would you please explain how to get the "a" values from this? Are you saying that I should use each individual k equation to fit the data in the figure? I'm embarrassed to be so clueless on this!

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

카테고리

Help CenterFile Exchange에서 Get Started with Curve Fitting Toolbox에 대해 자세히 알아보기

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by