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?
采纳的回答
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 个评论
i didn't undertand what you did here. Can you be more accurate please?
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.
i made a mistake my friend the inequation is this abs(((cos(x)+1/2*x^2)-1)*x^4)<=1/24
you are missing a * before x^4
and the abs does not change anything
yes i'm sorry and looking forward to your answer!
the answer is still the same
maybe you meant
(cos(x)+1./ ->(2.*x.^2)<-)-1
and not
(cos(x)+ (1./2) .*x.^2)-1 ??
no if you put absolute to your first line it gives an error!
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
since your function is >0 for all x the abs does not change anything anyway, so it is pretty unnecessary
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
The abs() makes a difference if you are expecting complex numbers for input.
so what you propose?
Are you looking for real valued solutions or complex valued solutions?
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.
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
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.
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Programming 的更多信息
标签
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
