Re: Solutions for functions containing jump discontinuities
- To: mathgroup at smc.vnet.net
- Subject: [mg38963] Re: Solutions for functions containing jump discontinuities
- From: "David W. Cantrell" <DWCantrell at sigmaxi.org>
- Date: Thu, 23 Jan 2003 08:02:59 -0500 (EST)
- References: <b0lvo5$5b2$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
newspostings at burkert.de (Burkert, Philipp) wrote: > we are searching all solutions where the function f results null. > > f[x_] := -7500 * Ceiling[(0.5 * x) / 880] + (5 * x) > Solve[{f[x] == 0}, x] > > As f contains jump discontinuities, we recieved the following error: > > InverseFunction::"ifun": "Inverse functions are being used. Values may be > \ lost for multivalued inverses." > > Solve::"tdep": "The equations appear to involve the variables to be > solved \ for in an essentially non-algebraic way." > > We would be pleased if anybody could help us. Your equation has 7 roots. To see them, let me suggest that you first Plot[f[x], {-2000, 15000}]. (BTW, please ignore the spurious vertical segments!) As you can then guess from the graph, the solutions are 0, 1500, 3000, 4500, 6000, 7500, and 9000. You discovered that Solve will not help you. However, FindRoot can be used. For example, try FindRoot[f[x]==0, {x, 7000, 8000}]. It does find a root, but not the one expected! (It gives the root 9000, rather than 7500.) So even with FindRoot, you must be savvy, not depending on Mathematica too heavily. David