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?

 Akzeptierte Antwort

Niels
Niels am 25 Jan. 2017
Bearbeitet: Niels am 25 Jan. 2017

1 Stimme

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 Kommentare

bk97
bk97 am 25 Jan. 2017
i didn't undertand what you did here. Can you be more accurate please?
Niels
Niels am 25 Jan. 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 am 25 Jan. 2017
Bearbeitet: bk97 am 25 Jan. 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 am 25 Jan. 2017
you are missing a * before x^4
Niels
Niels am 25 Jan. 2017
and the abs does not change anything
bk97
bk97 am 25 Jan. 2017
yes i'm sorry and looking forward to your answer!
Niels
Niels am 25 Jan. 2017
the answer is still the same
Niels
Niels am 25 Jan. 2017
maybe you meant
(cos(x)+1./ ->(2.*x.^2)<-)-1
and not
(cos(x)+ (1./2) .*x.^2)-1 ??
bk97
bk97 am 25 Jan. 2017
no if you put absolute to your first line it gives an error!
Niels
Niels am 25 Jan. 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 am 25 Jan. 2017
since your function is >0 for all x the abs does not change anything anyway, so it is pretty unnecessary
bk97
bk97 am 25 Jan. 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 am 25 Jan. 2017
The abs() makes a difference if you are expecting complex numbers for input.
bk97
bk97 am 25 Jan. 2017
so what you propose?
Walter Roberson
Walter Roberson am 26 Jan. 2017
Are you looking for real valued solutions or complex valued solutions?
bk97
bk97 am 26 Jan. 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 am 26 Jan. 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 am 26 Jan. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Hilfe-Center und File Exchange

Tags

Gefragt:

am 25 Jan. 2017

Kommentiert:

am 26 Jan. 2017

Community Treasure Hunt

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

Start Hunting!

Translated by