non linear implicit equation

Good morning, I'm new in using Matlab and I would like to know if it is possible to solve the following implicit equation
sin(x)-y*sin(acos((3+sin(x))/y)) = 0
where: x = linspace(0,2*pi,50)
In particular I would like to explicit y and after plot y against x.
Thank you so much!

 Risposta accettata

Alan Stevens
Alan Stevens il 23 Ott 2020
Surprisingly, this has an explicit solution for y (I didn't use Matlab to get it as I don't have the symbolic toolbox to hand) . See the following code:
x = linspace(0,2*pi,50);
y = zeros(1,numel(x));
for i = 1:numel(x)
y(i) = yfn(x(i));
end
subplot(2,1,1)
plot(x,y),grid
xlabel('x'),ylabel('y')
subplot(2,1,2)
plot(x,sin(x),'b',x,y.*sin(acos((3+sin(x))./y)),'r--'),grid
xlabel('x'),ylabel('check functions')
legend('sin(x)','y.*sin(acos((3+sin(x))./y))')
function y = yfn(x)
y = sqrt(6*sin(x)-cos(2*x)+10);
if mod(x,2*pi)>pi
y = -y;
end
end
This results in

4 Commenti

Thank you Alan,
I don't understand how did you find this function y = sqrt(6*sin(x)-cos(2*x)+10).
Could you kindly explain me?
As follows:
I've just taken the positive sign for y above, but you need the negative sign between pi and 2pi.
Hope that helps.
Thank you very much!!
One more last question: if I would find a numerical method as for example fsolve function, what I have to do to set the problem?
fsolve is part of the Optimisation toolbox, which I don't have, so I'm not much help to you on that. I suggest you either type doc fsolve, or ask as a separate question in the forum (or both!).

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Mathematics in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by