Solve non-separateable equation

1 Ansicht (letzte 30 Tage)
Masood Salik
Masood Salik am 30 Jan. 2021
Bearbeitet: John D'Errico am 31 Jan. 2021
I have a equation like this . Its just a simplified form of my actual equation to illustrate my query. The output y and input time t are non seperatable.
equation
I wanted to solve it in Matlab to find the value of y for the time interval t
I saw examples of fsolve and fzero. But all of them are for seperatable functions. How can I solve this one?
I tried this too. But Error
y^2 = @(x)y*x^2 +(1+x)/(y+1);
t = linspace(-3.5,3.5);
plot(t,y(t),t,zeros(size(t)),'k-')
xlabel('x')
ylabel('y(x)')

Akzeptierte Antwort

John D'Errico
John D'Errico am 31 Jan. 2021
Bearbeitet: John D'Errico am 31 Jan. 2021
The usual name for this is an implicit function. There is no relationship where you can solve directly for y as a function of x. Actually, in the function you wrote, it is technically possible, but you said this is not your real problem.)
Of course, this syntax is meaningless in MATLAB:
y^2 = @(x)y*x^2 +(1+x)/(y+1);
You have an implicit function. The simplest way to solve the problem is to use fimplicit to plot it.
Fxy = @(x,y) -y.^2 + y.*x.^2 + (1 + x)./(1 + y);
fimplicit(Fxy,[-3.5,3.5])
xlabel X
ylabel Y
As you can see in the plot, for ANY given x, there are multiple values of y. So it is not a single valued function, but one with multiple branches, and a singularity.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by