# I have an equation that relies on previous values to get the next.

7 views (last 30 days)
joshua payne on 28 Sep 2022
Commented: Star Strider on 28 Sep 2022
this is the basic set up i have
P=[1 2 3 4 5]
M1=0
P2/P1=(1+M2^2)/(1+M1^2)
i need to solve for M2, then using M2 as the new M1, like so
P3/P2=(1+M3^2)/(1+M2^2), solve for M3
reiterate that process till i have all values of M in a matrix anbd plot them.

Star Strider on 28 Sep 2022
I am not certain how the ‘P’ vector enters into this. If:
P1 = P(1) = 1
P2 = P(2) = 2
P3 = P(3) = 3
in this instance, then:
P = [1 2 3 4 5];
P2P1 = @(M1,M2) (1+M2.^2)./(1+M1.^2) - P(2)./P(1);
P3P2 = @(M2,M3) (1+M3.^2)./(1+M2.^2) - P(3)./P(2);
Pfcn = @(M1,M2,M3) [P2P1(M1,M2); P3P2(M2,M3)]
Pfcn = function_handle with value:
@(M1,M2,M3)[P2P1(M1,M2);P3P2(M2,M3)]
format long
Pv = fsolve(@(b)Pfcn(b(1),b(2),b(3)), [0; 1; 1])
Warning: Trust-region-dogleg algorithm of FSOLVE cannot handle non-square systems; using Levenberg-Marquardt algorithm instead.
Equation solved. fsolve completed because the vector of function values is near zero as measured by the value of the function tolerance, and the problem appears regular as measured by the gradient.
Pv = 3×1
-0.000000009907974 1.000000000005345 1.414213562389785
Make appropriate changes to get the result you want.
.
Star Strider on 28 Sep 2022
I need you to describe step-by-step what you want to do.

### Categories

Find more on Axes Transformations in Help Center and File Exchange

R2020a

### Community Treasure Hunt

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

Start Hunting!

Translated by