fsolve accuracy

13 次查看(过去 30 天)
John Mulvihill
John Mulvihill 2011-11-17
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

采纳的回答

the cyclist
the cyclist 2011-11-17
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.

更多回答(1 个)

Mahyar
Mahyar 2014-4-24
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 个评论
John Mulvihill
John Mulvihill 2014-4-24
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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Surrogate Optimization 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by