
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!