Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1999
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: How to find solutions for conditioned equations?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg19909] Re: [mg19861] How to find solutions for conditioned equations?
  • From: "Wolf, Hartmut" <hwolf at debis.com>
  • Date: Tue, 21 Sep 1999 02:22:45 -0400
  • Organization: debis Systemhaus
  • References: <199909190520.BAA10200@smc.vnet.net.>
  • Sender: owner-wri-mathgroup at wolfram.com

Wen-Feng Hsiao schrieb:
> 
> Suppose I have an equation
> 
> A(x)= (x+1)/2, for -1<x<=1
>     = (3-x)/2, for 1<x<=3
>     = 0      , otherwise
> 
> Now if I want to find solutions for A(x)==a, how can I otain the
> solutions simultaneously (i.e., represented as (2a-1, 3-2a))? I always
> use the stupid method to solve them separately, but I found it's laborous
> when I have B(x), C(x) needed to be solved together. (I am trying to use
> alpha-cut to proceed the interval operations) Any suggestions?

Dear Hsiao,

what to do best, depends on your intents. If you continually use the
triangle-functions (e.g. as fuzzy sets) then an idea would be to define
your own appropriate funtional calculus, e.g. as such:

A[x_, x0_, width_] := 
   (x - x0 + width)/width  UnitStep[x - x0 + width] UnitStep[-(x - x0)]
 - (x - x0 - width)/width  UnitStep[-(x - x0 - width)] UnitStep[x - x0]

(width is the width at half height), so you have a function you can
integrate, differentiate etc., or e.g.

In[128]:= Plot[A[x, 1, 2], {x, -2, 4}]


To find the inverse, calculate once (by hand):

Ainvers[a_, x0_, width_] := If[0 <= a <= 1, width {-1, 1}(1 - a) +
x0,{}] 

In[134]:= Simplify[Ainvers[a, 1, 2], 0 <= a <= 1]
Out[134]= {-1 + 2 a, 3 - 2 a}

Of course if you want to deal with the case a==0 you may include
Interval[{-Infinity, -width + x0}, {width + x0, Infinity}] or not, that
depends on what you want, perhaps that could be something more like

In[147]:= chi[A, a_, x0_, width_] :=  
  If[0 <= a <= 1, Interval[width {-1, 1}(1 - a) + x0] ]

In[149]:= chi[A, 1/2, 1, 2]
Out[149]= Interval[{0, 2}]
In[150]:= chi[A, 1, 1, 2]
Out[150]= Interval[{1, 1}]
In[152]:= chi[A, 0, 1, 2]
Out[152]= Interval[{-1, 3}]

Kind regards, hw



  • Prev by Date: Re: Limits of multi-var. functions
  • Next by Date: Re: How to find solutions for conditioned equations?
  • Previous by thread: How to find solutions for conditioned equations?
  • Next by thread: Re: How to find solutions for conditioned equations?