Multiple solutions with specific range input

Here is my function: fun(x) = abs(abs(abs(x)-5)-2) and the range of input x: -5~7
If fun(x)= 1, I know the solutions of x are -4,-2,6
But how can I realize it with MATLAB ? Thanks.

답변 (1개)

Stephen23
Stephen23 2017년 4월 16일

0 개 추천

Actually there are more solutions:
>> fun = @(x)abs(abs(abs(x)-5)-2);
>> foo = @(x)fun(x)-1;
>> x = -5:0.1:7;
>> idx = find(diff([1,diff(foo(x))>0,1])~=0);
>> baz = @(a,b)fzero(foo,x([a,b]));
>> out = arrayfun(baz,idx(1:end-1),idx(2:end))
out =
-4 -2 2 4 6
And you can see the solutions here:
plot(x,fun(x),'-',out,ones(size(out)),'o')

카테고리

도움말 센터File Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기

태그

질문:

2017년 4월 16일

답변:

2017년 4월 16일

Community Treasure Hunt

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

Start Hunting!

Translated by