fsolve accuracy

16 views (last 30 days)
John Mulvihill
John Mulvihill on 17 Nov 2011
Commented: John Mulvihill on 24 Apr 2014
Hi all,
I am fairly new to matlab so excuse my ignorance as this could be an easy problem.
I am using the fsolve function and it is working fine and it outputs my three parameters that I need. However all three numbers are limited to an accuracy of four decimal places which I would like to increase to 6 or even more.
Does anyone have any advice to help me improve the accuracy? This is a snapshot of the code...
Init_Guess = [0.05 0.02 0.0000406];
options=optimset('Display','iter','MaxIter',3000,'MaxFunEvals',3000, 'TolFun', 1.0e-12, 'TolX',1.0e-12);
Coeffs = fsolve(@Solution_1,Init_Guess,options)
As you can see with the Initial guess I am trying to force the code to increase the decimal places but it doesn't seem to want to do it.
Regards
John Mulvihill

Accepted Answer

the cyclist
the cyclist on 17 Nov 2011
My guess is that you are talking about what is displayed, as opposed to what is calculated. Try typing
>> format long
to see more digits in the output of the command window.

More Answers (1)

Mahyar
Mahyar on 24 Apr 2014
I have same problem too, and tried format long but it does not have any effect of the meaningful digits of results. Am I wrong?!
  1 Comment
John Mulvihill
John Mulvihill on 24 Apr 2014
Hey Mahyar,
This answer from the cyclist solved it for me from what I remember! When I run the "fsolve" function in my code it calls on another .m file (Solution_1 from the example I gave) and within this file I have placed "format long" just after the "function" line which gives me 15 decimal places answers.
Example of Solution_1 file:
function Cost = Solution_1(Init_Guess)
format long
C1 = Init_Guess(1); C2 = Init_Guess(2); % these are the answers I want for whatever equation I put in
Cost = sum(C1 - C2) % this doesn't matter
end
The answer I get from this looks like the folllowing:
C1 = 0.008198986069043 and C2 = 0.005224578396002
Hope this helps
John

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!