Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: fminsearch and functions
Replies: 3   Last Post: Feb 1, 2013 5:24 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Alan Weiss

Posts: 1,208
Registered: 11/27/08
Re: fminsearch and functions
Posted: Jan 31, 2013 1:20 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

On 1/31/2013 11:57 AM, Robert Ahrens wrote:
> I should preface this post by saying that I have never used fminsearch
> for multivariable functions and I am not a heavy user of anonymous
> functions.
>
> I have defined a function myfun2:
>
> function f = myfun2(x,y,xc,yc)
>
> n = length(x)
> f = sqrt((sum((sqrt((xc - x).^2 + (yc - y).^2) - ...
> sum(sqrt((xc - x).^2 + (yc - y).^2)/n)).^2)/n))
> end
>
> where x and y are vectors (of length upwards of 10,000) and xc and yc
> are scalars. Basically, I have known x and y vectors and I want to
> find xc and yc such that f is minimized. I've read through the
> fminsearch documentation and posts on the Matlab newgroups and I have
> not been able to find any information as to how to do so.
>
> Any and all help is appreciated.
> Bob

There is an example showing you exactly how to do this case:
http://www.mathworks.com/help/matlab/math/example-curve-fitting-via-optimization.html

The main idea is fminsearch wants a function of one variable, say x.
I believe, from your description, that the variables you want to
minimize are xc and yc.
So in your function you should write something like

function f = myfun3(x,xdata,ydata)

xc = x(1) % the first scalar variable
yc = x(2) % the second variable
n = length(xdata);
...

Put the xdata and ydata vectors in your workspace, create an initial
guess x0, then call

xolution = fminsearch(@(x)myfun3(x,xdata,ydata),x0)

For more information about passing parameters xdata and ydata this way, see
http://www.mathworks.com/help/optim/ug/passing-extra-parameters.html#bskkr4z

Alan Weiss
MATLAB mathematical toolbox documentation




Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.