# [Scilab-users] Having a Problem with fsolve

7 messages
Open this post in threaded view
|

## [Scilab-users] Having a Problem with fsolve

 I am trying to solve a system of two non-linear equations using fsolve. I define the following two functions: function z=g1(x,y) z = x^2 + y^2 endfunction function z=g2(x,y) z = x^4 + y^4 - 20 endfunction When I type something like: g2(2,2) I get 12 which is right. I then run the following command:      [xres]=fsolve([0,0],g1,g2); and I get the error message:      fsolve: exception caught in 'jac' subroutine.      at line     2 of function g1      in builtin                fsolve What am I doing wrong? Bob _______________________________________________ users mailing list [hidden email] http://lists.scilab.org/mailman/listinfo/users
Open this post in threaded view
|

## Re: Having a Problem with fsolve

 Hello, Le 15/10/2018 à 20:39, rsherry8 a écrit : I am trying to solve a system of two non-linear equations using fsolve. I define the following two functions: function z=g1(x,y) z = x^2 + y^2 endfunction function z=g2(x,y) z = x^4 + y^4 - 20 endfunction When I type something like: g2(2,2) I get 12 which is right. I then run the following command:     [xres]=fsolve([0,0],g1,g2); If it is provided, g2() must be the jacobian of g1(): it must compute and evaluate the partial derivatives of g1(), with respect to x and to y. That's definitely not the case with your g2(). It should rather return something like [2*x 2*y]. For what you likely want to do, here are two examples (extracted from a document of mine in french, sorry): Actually, the fsolve() page is rather poor : both given examples are about a single variable. https://help.scilab.org/docs/6.0.1/en_US/fsolve.html fsolve() is a key function. We should improve its help page. HTH Samuel _______________________________________________ users mailing list [hidden email] http://lists.scilab.org/mailman/listinfo/users
Open this post in threaded view
|

## Re: Having a Problem with fsolve

 Le 15/10/2018 à 23:52, Samuel Gougeon a écrit : .../... Actually, the fsolve() page is rather poor : both given examples are about a single variable. https://help.scilab.org/docs/6.0.1/en_US/fsolve.html fsolve() is a key function. We should improve its help page. This is now explicitly requested there. _______________________________________________ users mailing list [hidden email] http://lists.scilab.org/mailman/listinfo/users
Open this post in threaded view
|

## Re: Having a Problem with fsolve

 In reply to this post by Samuel GOUGEON You Wrote:     If it is provided, g2() must be the jacobian of g1(): it must compute and evaluate the partial derivatives of g1(), with respect to x and to y.     That's definitely not the case with your g2(). It should rather return something like [2*x 2*y]. I do not understand this because I am trying to solve a system of equations and g2 represents the second equation. I suspect I am missing something. I do not know French. Bob On 10/15/2018 5:52 PM, Samuel Gougeon wrote: Hello, Le 15/10/2018 à 20:39, rsherry8 a écrit : I am trying to solve a system of two non-linear equations using fsolve. I define the following two functions: function z=g1(x,y) z = x^2 + y^2 endfunction function z=g2(x,y) z = x^4 + y^4 - 20 endfunction When I type something like: g2(2,2) I get 12 which is right. I then run the following command:     [xres]=fsolve([0,0],g1,g2); If it is provided, g2() must be the jacobian of g1(): it must compute and evaluate the partial derivatives of g1(), with respect to x and to y. That's definitely not the case with your g2(). It should rather return something like [2*x 2*y]. For what you likely want to do, here are two examples (extracted from a document of mine in french, sorry): Actually, the fsolve() page is rather poor : both given examples are about a single variable. https://help.scilab.org/docs/6.0.1/en_US/fsolve.html fsolve() is a key function. We should improve its help page. HTH Samuel ```_______________________________________________ users mailing list [hidden email] http://lists.scilab.org/mailman/listinfo/users ``` _______________________________________________ users mailing list [hidden email] http://lists.scilab.org/mailman/listinfo/users
Open this post in threaded view
|

## Re: Having a Problem with fsolve

 Le 16/10/2018 à 02:00, rsherry8 a écrit : > You Wrote: > >     If it is provided, g2() must be the jacobian of g1(): it must > compute and evaluate the partial derivatives of g1(), with respect to > x and to y. >     That's definitely not the case with your g2(). It should rather > return something like [2*x 2*y]. > > I do not understand this because I am trying to solve a system of > equations and g2 represents the second equation. I suspect I am > missing something. > > I do not know French. You may mimic the given example #3. You do not need to speak french to try and test the given code, understand, and imitate it for your own case. BR _______________________________________________ users mailing list [hidden email] http://lists.scilab.org/mailman/listinfo/users