In general, global root finding is a hard problem to solve. One can get a
general feel for solutions with a contour plot. I recall this is possible
with plot though I don't recall the syntax off hand. On the other hand,
from FVJ4 5.3
load 'graphics/fvj4/raster'
f=:{{% (*:x) + ^.y}}"0
2 f 1
0.25
contours=:1 : 0
256 u contours y
:
y vwin 'contours'
'a c b d'=.y
xx=.a+(b-a)*(i.%<:){.VRAWH
yy=.c+(d-c)*(i.%<:){:VRAWH
VRA=:|:x cile xx u/ yy
vshow Hue 5r6*(i.%<:) x
)
f contours _2 0.1 2 2
Red is lowest, magenta highest, so the discontinuity induced by % is a
clear bell.
Best, Cliff
On Wed, Nov 4, 2020 at 11:39 PM Raul Miller <[email protected]> wrote:
> Well, for example: https://code.jsoftware.com/wiki/Essays/Newton's_Method
>
> If your function is not supported by J's differentiation mechanism,
> you would want to use a different approach. But the function you
> mention is differentiable and it looks like J can handle it:
>
> 9!:3(5)
> require 'math/calculus'
> %@(*: + ^.) deriv_jcalculus_ 1
> (+: + %) * -@%@*:@(*: + ^.)
>
> So this suggests that you should expect good numbers from newton's
> method (assuming that that's a valid representation of the derivative
> of that function -- it looks right but I have not tested it adequately
> to say for sure).
>
> That said, you might want to plot the function, as a sanity check. For
> example:
>
> require'plot'
> plot %@(*: + ^.) 0.01*i.300
>
> I hope this helps,
>
>
> --
> Raul
>
> On Wed, Nov 4, 2020 at 10:58 PM Piet de Jong <[email protected]> wrote:
> >
> > I was hoping for more of a “J” type solution.
> >
> > For example if f(x,y) = (x^2 + log y)^{-1} = c
> > Then given c and say x, I can solve for y. (ie write J function)
> > Or given c and y I can solve for x. (ie write a J function)
> > (I’m assuming domains etc are ok. — this is just an example.)
> >
> > So instead of following this long process of finding the two functions I
> was hoping in J there would be a “clean and tidy” way of doing things.
> >
> > Probably impossible even for simple functions f.
> >
> > > On 5 Nov 2020, at 2:24 pm, Raul Miller <[email protected]> wrote:
> > >
> > > The answer is: sometimes yes, sometimes no.
> > >
> > > See https://en.wikipedia.org/wiki/Equation_solving for some of the
> issues.
> > >
> > > If f can be expressed as a polynomial, you might want to consider
> > > using https://www.jsoftware.com/help/dictionary/dpdot.htm
> > >
> > > Thanks,
> > >
> > > --
> > > Raul
> > >
> > > On Wed, Nov 4, 2020 at 7:27 PM Piet de Jong <[email protected]>
> wrote:
> > >>
> > >> Still trying to learn/improve my J after 25 years.
> > >>
> > >> Here is the issue. I’m probably having a pipe dream.
> > >>
> > >> Suppose you have an implicit function f(x,y)=0 which is relatively
> “clean” (ie simple to specify)
> > >>
> > >> Is there a “clean/efficient” way in J to solve for y given x or vice
> versa.
> > >>
> > >> I know I can write a function g such that g x gives y and g^:_1 y
> gives x.
> > >> But is there a cleaner way? The g and its inverse may be
> complicated even if f is relatively simple.
> > >> ----------------------------------------------------------------------
> > >> For information about J forums see
> http://www.jsoftware.com/forums.htm
> > > ----------------------------------------------------------------------
> > > For information about J forums see http://www.jsoftware.com/forums.htm
> >
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm