difficult inequality to solve

abs((cos(x)+1/2*x^2)-1)*x^4)<=1/24, does anybody have any idea how to solve this on matlab or write down some possible codes?

 Respuesta aceptada

Niels
Niels el 25 de En. de 2017
Editada: Niels el 25 de En. de 2017
since your function is even it is symmetric and it is monotone for x>0 or x<0
use fzero
>> f=@(x)((cos(x)+1./2.*x.^2)-1).*x.^4 - 1/24 % subtract the value to transform it into an issue of roots
>> solution=abs(fzero(f,0))
solution =
1.0042
>> range=[-solution solution]
range =
-1.0042 1.0042

19 comentarios

bk97
bk97 el 25 de En. de 2017
i didn't undertand what you did here. Can you be more accurate please?
Niels
Niels el 25 de En. de 2017
if f(x)=b then subtract b so that f(x)-b=0 make this your new function
after that you can use fzero, cause the value you are looking for is the root of the new created function.
if you are wondering about the @(x) read this
bk97
bk97 el 25 de En. de 2017
Editada: bk97 el 25 de En. de 2017
i made a mistake my friend the inequation is this abs(((cos(x)+1/2*x^2)-1)*x^4)<=1/24
Niels
Niels el 25 de En. de 2017
you are missing a * before x^4
Niels
Niels el 25 de En. de 2017
and the abs does not change anything
bk97
bk97 el 25 de En. de 2017
yes i'm sorry and looking forward to your answer!
Niels
Niels el 25 de En. de 2017
the answer is still the same
Niels
Niels el 25 de En. de 2017
maybe you meant
(cos(x)+1./ ->(2.*x.^2)<-)-1
and not
(cos(x)+ (1./2) .*x.^2)-1 ??
bk97
bk97 el 25 de En. de 2017
no if you put absolute to your first line it gives an error!
Niels
Niels el 25 de En. de 2017
nope
it does not:
>> f=@(x)abs(((cos(x)+1./2.*x.^2)-1).*x.^4) - 1/24 % subtract the value to transform it into an issue of roots
solution=abs(fzero(f,0))
range=[-solution solution]
f =
function_handle with value:
@(x)abs(((cos(x)+1./2.*x.^2)-1).*x.^4)-1/24
solution =
1.0042
range =
-1.0042 1.0042
Niels
Niels el 25 de En. de 2017
since your function is >0 for all x the abs does not change anything anyway, so it is pretty unnecessary
bk97
bk97 el 25 de En. de 2017
alright thank you a lot my friend. Whenever you have time check another question that i made because i get an error in this link:http://www.mathworks.com/matlabcentral/answers/321923-runge-kutta-4th-order
Walter Roberson
Walter Roberson el 25 de En. de 2017
The abs() makes a difference if you are expecting complex numbers for input.
bk97
bk97 el 25 de En. de 2017
so what you propose?
Walter Roberson
Walter Roberson el 26 de En. de 2017
Are you looking for real valued solutions or complex valued solutions?
bk97
bk97 el 26 de En. de 2017
complex valued
There are an infinity of complex solutions, symmetric in positive and negative real components, and symmetric in positive and negative imaginary components. The boundaries on the imaginary components are +/- -.9958714409867068 approximately and the boundaries on the real components are +/- -1.004205445912837 approximately.
The area is not circular in real and imaginary components, but it is approximately circular.
For any given real component inside the given range, there are two imaginary components that lead to solution; likewise for any given imaginary component within the range, there are two real components that lead to solution.
When I talk about infinity of solutions, I am referring just to the boundary; because if the inequality, everything within the boundary is included too.
The boundary is the solutions for
(1/2)*sqrt((2*cosh(2*b)+2*cos(2*a)+(4*a^2-4*b^2-8)*cos(a)*cosh(b)-8*a*b*sin(a)*sinh(b)+a^4+(2*b^2-4)*a^2+b^4+4*b^2+4)*(a^2+b^2)^4)-1/24
where a is the real component and b is the imaginary component.
bk97
bk97 el 26 de En. de 2017
alright thank you for the code about complex value! So could you please tell me if the code with the abs that @Niels has written before does work correctly for real solutions? And what is the conclusion for that
Walter Roberson
Walter Roberson el 26 de En. de 2017
The +/- -1.004205445912837 I show occurs when the imaginary component is 0. It is a higher precision version of the value that Niels posted. The code Niels posted is fine.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Programming en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 25 de En. de 2017

Comentada:

el 26 de En. de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by