EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 360+ Courses All in One Bundle
  • Login
Home Data Science Data Science Tutorials Matlab Tutorial fminsearch in Matlab
Secondary Sidebar
Matlab Tutorial
  • Functions
    • MATLAB Functions
    • MATLAB user defined function
    • Calling Functions in MATLAB
    • Transfer Functions in MATLAB
    • Anonymous Functions in MATLAB
    • Inline Functions in MATLAB
    • Bessel Functions in MATLAB
    • Mean Function in MATLAB
    • Find Function MATLAB
    • Filter Function in MATLAB
    • IIR Filter MATLAB
    • Piecewise Function in MATLAB
    • Sum Function in MATLAB
    • Simulink MATLAB Function
    • MATLAB Create Function
    • MATLAB Inverse Function
    • MATLAB Count
    • Step Function MATLAB
    • MATLAB limit
    • Fminsearch in MATLAB
    • Covariance in MATLAB
    • Summation in MATLAB
    • Linear Fit MATLAB
    • MATLAB?linear regression
    • MATLAB Derivative
    • MATLAB Derivative of Function
    • MATLAB Comet()
    • Fzero MATLAB
    • xlabel MATLAB
    • Matplotlib Legend
    • Matplotlib Subplots
    • Plot graph MATLAB
    • MATLAB Format
    • MATLAB plot title
    • Multiple Plots in MATLAB
    • MATLAB Indexing
    • Ceil MATLAB
    • Curve Fitting MATLAB
    • MATLAB trapz()
    • MATLAB Normalize
    • MATLAB diff
    • MATLAB sym()
    • MATLAB Syms
    • Absolute Value MATLAB
    • MATLAB Exponential
    • Kalman Filter MATLAB
    • Low Pass Filter MATLAB
    • Bandpass Filter MATLAB
    • MATLAB Unique
    • Trapezoidal Rule MATLAB
    • MATLAB Root Finding
    • MATLAB stem()
    • MATLAB loglog()
    • MATLAB Autocorrelation
    • MATLAB Sort
    • Simplify MATLAB
    • Cumsum MATLAB
    • Eval Function MATLAB
    • Polyval MATLAB
    • MATLAB Colon
    • MATLAB Eigenvalues
    • MATLAB fit
    • Delta Function MATLAB
    • MATLAB Remainder
    • Differentiation in MATLAB
    • Permute MATLAB
    • isempty MATLAB
    • MATLAB text()
    • MATLAB Display Text
    • Varargin in MATLAB
    • MATLAB gca
    • MATLAB fill()
    • MATLAB pcolor()
    • MATLAB min
    • MATLAB xcorr
    • MATLAB? color codes
    • Semilogy MATLAB
    • MATLAB? eye
    • feval MATLAB
    • num2str in MATLAB
    • MATLAB Images
    • MATLAB Image? Segmentation
    • Imagesc MATLAB
    • MATLAB Image Processing
    • MATLAB Image Resize
    • MATLAB Flag
    • MATLAB fopen
    • Strcmp MATLAB
    • MATLAB fwrite
    • MATLAB fft()
    • MATLAB zeros()
    • MATLAB textread
    • Arctan MATLAB
    • MATLAB Scripts
    • Butterworth filter MATLAB
    • MATLAB Findpeaks
    • MATLAB find Index
    • MATLAB Cell
    • MATLAB Unit Step Function
    • MATLAB Backslash
    • MATLAB Mod
    • Size Function in MATLAB
    • Secant MATLAB
  • Basic
    • MATLAB Area Under Curve
    • MATLAB not equal
    • MATLAB max
    • MATLAB exist
    • MATLAB Table
    • MATLAB regression
    • MATLAB Lists
    • MATLAB quantile
    • MATLAB Round
    • MATLAB readtable
    • MATLAB disp
    • MATLAB Standard Deviation
    • MATLAB quadprog
    • MATLAB Transpose
    • Introduction to MATLAB
    • Advantages of MATLAB
    • MATLAB Features
    • Taylor Series MATLAB
    • MATLAB Z Transform
    • fsolve in MATLAB
    • MATLAB QR
    • Career in MATLAB
    • Uses Of MATLAB
    • MATLAB Free
    • How to Install MATLAB
    • How to Use MATLAB?
    • MATLAB Version
    • MATLAB Compiler
    • MATLAB Commands
    • MATLAB Block Comment
    • MATLAB? sprintf
    • MATLAB fprintf
    • Data Types in MATLAB
    • MATLAB Integral
    • MATLAB Double Integral
    • MATLAB boolean
    • MATLAB vpa
    • MATLAB Object
    • MATLAB Annotation
    • MATLAB Variables
    • MATLAB Global Variables
    • MATLAB Operators
    • MATLAB Logical Operators
    • MATLAB nan
    • MATLAB Patch
    • MATLAB AND Operator
    • MATLAB OR Operator
    • Vectors in MATLAB
    • What is Simulink in MATLAB
    • MATLAB Interpolation
    • MATLAB Imread
    • fscanf MATLAB
    • Euler Method MATLAB
    • Root Locus MATLAB
    • MATLAB return
    • Bode Plot MATLAB
    • Nargin MATLAB
    • MATLAB Matrix Inverse
    • MATLAB String to Number
    • MATLAB string
    • MATLAB ColorBar
    • MATLAB Surfc
    • MATLAB Concatenate
    • NUMEL MATLAB
    • MATLAB? File Extension
    • MATLAB File
    • MATLAB Smooth
    • MATLAB ones
    • Exponential in MATLAB
    • MATLAB ksdensity
    • MATLAB log
    • MATLAB Append
    • MATLAB hold on
    • MATLAB Magnitude of Vector
    • Heatmap in MATLAB
    • MATLAB xticks
    • MATLAB randn
  • Control Statements
    • IF-Else Statement in MATLAB
    • If Statement in MATLAB
    • Loops in MATLAB
    • For Loop in MATLAB
    • While Loop in MATLAB
    • do while loop in MATLAB
    • Nested Loop in MATLAB
    • Switch Statement in MATLAB
    • Break in MATLAB
  • Matrix
    • Matrix in MATLAB
    • 3D Matrix in MATLAB
    • Transpose Matrix MATLAB
    • Sparse Matrix in MATLAB
    • Matrix Multiplication in MATLAB
    • Identity Matrix in MATLAB
    • MATLAB?writematrix
  • Advanced
    • MATLAB Class
    • Arrays in MATLAB
    • Matlab find value in array
    • MATLAB Grader
    • Power Spectral Density MATLAB
    • Matlab Textscan
    • String Array in MATLAB
    • MATLAB Random Numbers
    • Matlab Dot
    • MATLAB 2D Array
    • MATLAB? zero padding
    • MATLAB sort matrix
    • MATLAB Plot Function
    • 2D Plots in MATLAB
    • 3D Plots in MATLAB
    • MATLAB Fread
    • Spectrogram MATLAB
    • MATLAB Average
    • MATLAB exponent
    • MATLAB not enough input arguments
    • MATLAB comment
    • MATLAB zpk
    • Scatter Plots in MATLAB
    • MATLAB 3d scatter plot
    • Bar Graph in MATLAB
    • Bar Plot MATLAB
    • Log Plot MATLAB
    • Polar Plot in MATLAB
    • Surface Plot in MATLAB
    • MATLAB Plot Circle
    • Boxplot in MATLAB
    • MATLAB Plot Multiple Lines
    • Linspace MATLAB
    • Histogram in MATLAB
    • Plot Vector MATLAB
    • MATLAB Legend
    • MATLAB Plot Legend
    • MATLAB ezplots
    • Column Vector MATLAB
    • MATLAB Plot Marker
    • MATLAB LineWidth
    • MATLAB Line Style
    • Contour plot in MATLAB
    • MATLAB Sine Wave
    • Reshape in MATLAB
    • Natural Log in MATLAB
    • Random Number Generator in MATLAB
    • Complex Numbers in MATLAB
    • MATLAB Figure
    • Heatmap in MATLAB
    • MATLAB Technical Computing
    • Colors in MATLAB
    • Colormap in MATLAB
    • MATLAB Plot Colors
    • MATLAB fplot()
    • MATLAB Stacked Bar
    • MATLAB sphere()
    • MATLAB cylinder()
    • MATLAB mesh()
    • Pie Chart in MATLAB
    • MATLAB Gradient
    • Grid on MATLAB
    • Repmat in MATLAB
    • dlmread in MATLAB
    • Meshgrid in MATLAB
    • MATLAB Struct
    • MATLAB Cross Product
    • MATLAB colorbar Label
    • MATLAB Save Variable
    • MATLAB Saveas
    • MATLAB Cell Array
    • Polynomial in MATLAB
    • ismember MATLAB
    • Heaviside MATLAB
    • MATLAB rref
    • MATLAB polyfit()
    • MATLAB xlim
    • MATLAB Variance
    • Optimset MATLAB
    • Quiver MATLAB
    • Newton Raphson MATLAB
    • Mat2cell MATLAB
    • Magnitude MATLAB
    • format long MATLAB
    • Dot Product MATLAB
    • Jacobian MATLAB
    • What is Matlab?
    • Convolution MATLAB
    • Moving Average MATLAB
    • Fourier Series MATLAB
    • Gaussian Fit MATLAB
    • Bisection Method MATLAB
    • Laplace Transform MATLAB
    • Fourier Transform MATLAB
    • Signal Processing MATLAB
    • MATLAB Forms
    • Complex Conjugate MATLAB
    • MATLAB Write to File
    • uigetfile MATLAB
    • MATLAB Toolbox
    • MATLAB Errorbar
    • MATLAB Index Exceeds Matrix Dimensions
    • Nyquist MATLAB
    • Impulse Response MATLAB
    • xlsread MATLAB
    • MATLAB xlswrite
    • Matplotlib Scatter
    • MATLAB Import Data
    • MATLAB Export Data
    • MATLAB Read CSV
  • Programs
    • Square Root in MATLAB
    • Square Wave MATLAB
    • Squeeze MATLAB
    • Factorial in MATLAB
    • Cell to String MATLAB
  • Interview Questions
    • MATLAB Interview Questions

fminsearch in Matlab

By Priya PedamkarPriya Pedamkar

fminsearch in Matlab

Introduction to fminsearch in Matlab

fminsearch function is one of the most important function that is used in Matlab to find the minimum value of the function and it returns a scalar value where the provided inputs can be in the form of matrix or vector. It starts initially at a particular point and then executes the minimum function to the specified objective function in the input argument. It follows Nelder-Mead simplex algorithm approach. The algorithm used is a direct search method and it does not use any complex analytical gradient in it.

Working of fminsearch in Matlab

In Matlab, fminsearch function uses a derivative-free methodology to find the minimum of the unconstrained function as mentioned in the input argument of the syntax. It is specified by f(x) where f(x) is a function where x can be of vector or matrix type and it returns a scalar quantity.

Start Your Free Data Science Course

Hadoop, Data Science, Statistics & others

Syntax:

a=fminsearch (function, a0)

  • This is used to find the minimum value that starts at an initial point (a0) to calculate the local minimum value of the function(function) mentioned in the input argument.

a=fminsearch (function, a0, options)

  • This is used to minimize the optimization options that are mentioned in the options of the structure. The input argument “options” can be set by optimset.

a=fminsearch (problem)

  • This is used to find the minimum of a problem where the problem mentioned in syntax is a structure.

[a, fval] =fminsearch (__)

  • This is used to find value in fval of the given function at a given point.

[a fval, exitflag condition] = fminsearch (__)

  • This is used when we want to give any exit condition that returns a value in the exitflag.

[a fval, exitflag condition, output] = fminsearch (__)

  • This is used to return the structure output that contains information about the process of optimization.

The input arguments and output arguments should follow certain criteria and conditions before using the fminsearch function in Matlab. The input argument “function” can be of function handle type or any function name. It can accept inputs as a vector of the array which returns a scalar quantity. The data types that can be accepted are char, string, and function_handle. The input argument “a0” decides the initial point which can take inputs as real vector or real array. The data type that can be accepted by a0 should of type double. The input argument option is specified of the type structure that is returned by optimset. We can use this to change the values of the input by setting the field in the respective structure.

Given below are Set options that are used in Matlab:

1. Display Option: There are different levels of display like:

  • Notify is the default level which is meant to display the output if the function mentioned does not converge.
  • Final level displays the last or final output.
  • Off option gives no output.
  • Iter is meant to display the output if there is any iteration.

2. FunValCheck Option: It checks the function values are valid or not. If it is ‘on’ then there is an error when the value of the resultant function is complex or NaN. Similarly, if it is ‘off’ then there is no error.

3. MaxFunEvals Option: This gives the maximum number of evaluations that can be allowed and it should be always positive.

4. MaxIter: This is used to give the maximum number of iterations that are allowed and it should be always positive.

5. PlotFcns: This is used to plot the values graphically. We can use the default functions or can write custom plot function to plot the results.

  • @optimplotx: This is used to plot the current plot that is being executed.
  • @optimplotfunccount: This is used to plot the count of the function.
  • @optimplotfval: This is meant to plot the value of the function.

Another input argument ‘problem’ can be specified as type ‘structure ‘with the below fields:

  • If the field name is ‘objective’, then the entry is an objective function.
  • If the field name is ‘a0’, then the entry is starting point for the value x.
  • If the field name is ‘solver’, then the entry is fminsearch function.
  • If the field name is ‘options’, then the entry is an options structure.

The data type that is accepted by the respective input argument is of type structure.

The output argument a is the solution which can be a real array or a real vector. a and a0 size should be the same. Exitflag is another output argument that gives us the reason why the fminsearch algorithm stopped. It can take integer values like -1,0 and 1. If the value is -1 then the specified function converged. If the value is 0 then the iterations number exceeded, then the values mentioned in the MaxIter or the evaluations number exceeded then the values mentioned in the MaxFunEvals Option. If the value is 0, then it was stopped by the output function.

Examples of fminsearch in Matlab

Please find the below examples that show the use of fminsearch function in Matlab:

Example #1

To use fminsearch function for the below objective function:

f = @(a)200*(a(1) - a(1)^2)^2 + (1 - a(1))^2;
a0 = [-1,1];
a = fminsearch(f,a0)

Output:

fminsearch in matlab 1

Example #2

To use fminsearch function for the below objective function with extra parameters:

f = @(b,a)200*(b(2) - b(1)^2)^2 + (a-b(1))^2;
a = 2;
fu = @(b)f(b,a);
b0 = [-1,2];
b = fminsearch(fu,b0)

Output:

fminsearch in matlab 2

Example #3

To find the minimum location and its value for the below objective function using fminsearch:

a0 = [3,4,5];
fu = @(a)-norm(a+a0)^2*exp(-norm(a-a0)^2 + sum(a));
[a,fval] = fminsearch(fu,a0)

Output:

Example 3

Conclusion

fminsearch is widely used in Matlab, so it is important to understand it’s working. There are certain things that should be looked into like fminsearch only minimizes if it contains real numbers. If the input has complex value, then it splits it into real and imaginary components before using fminsearch function.

Recommended Articles

This is a guide to fminsearch in Matlab. Here we discuss the introduction, working, and examples along with its code implementation and outputs. You may also have a look at the following articles to learn more –

  1. Meshgrid in Matlab
  2. do while loop in Matlab
  3. dlmread in Matlab
  4. Matlab Cross Product
Popular Course in this category
MATLAB Training (3 Courses, 1 Project)
  3 Online Courses |  1 Hands-on Project |  8+ Hours |  Verifiable Certificate of Completion
4.5
Price

View Course

Related Courses

R Programming Training (13 Courses, 20+ Projects)4.9
All in One Data Science Bundle (360+ Courses, 50+ projects)4.8
Primary Sidebar
Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Live Classes
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Database Management
  • Machine Learning
  • All Tutorials
Certification Courses
  • All Courses
  • Data Science Course - All in One Bundle
  • Machine Learning Course
  • Hadoop Certification Training
  • Cloud Computing Training Course
  • R Programming Course
  • AWS Training Course
  • SAS Training Course

ISO 10004:2018 & ISO 9001:2015 Certified

© 2023 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Data Science Course

Hadoop, Data Science, Statistics & others

By continuing above step, you agree to our Terms of Use and Privacy Policy.
*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you

Let’s Get Started

By signing up, you agree to our Terms of Use and Privacy Policy.

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

By signing up, you agree to our Terms of Use and Privacy Policy.

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more