
Multiple solutions with specific range input
조회 수: 8 (최근 30일)
이전 댓글 표시
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.
댓글 수: 0
답변 (1개)
Stephen23
2017년 4월 16일
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')

댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!