Check IN WHICH CASE symbolic logical expression is true

조회 수: 2 (최근 30일)
Hendrik Lorenz
Hendrik Lorenz 2019년 6월 27일
답변: Hendrik Lorenz 2019년 6월 27일
Is it possible to get the conditions under which an expression would be true. Example:
syms a b c
assume(a > 0)
c = a+ b
isAlways(c >0 )
Warning: Unable to prove '0 < a + b'.
> In symengine
In sym/isAlways (line 42)
In LiveEditorEvaluationHelperEID289025349 (line 314)
In matlab.internal.editor.evaluateRegions
In matlab.internal.editor.EvaluationOutputsService.evalRegions
Now I would like to receive the information that c > 0 if b >= 0.
That possible?

채택된 답변

Hendrik Lorenz
Hendrik Lorenz 2019년 6월 27일
Well what I stated is true: c > 0 if b >= 0 Although it is not true that b >= 0 if c > 0 right. But you got what I meant. Thanks for the answer!

추가 답변 (1개)

Steven Lord
Steven Lord 2019년 6월 27일
No, that's not possible because as you've stated your solution it's not true. c can be greater than 0 even if b is negative.
a = 1;
b = -0.5;
c = a+b
For c to be greater than 0, b must be greater than -a which does not necessarily require it to be greater than 0.You can ask solve to return conditions.
syms a b c
assume(a > 0)
c = a + b
[S, params, conditions] = solve(c > 0, b, 'ReturnConditions', true)
b can be any value x such that -a < x.

카테고리

Help CenterFile Exchange에서 Number Theory에 대해 자세히 알아보기

태그

제품


릴리스

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by