Thread Closed

curve fit in MATLAB

 
Share Thread Thread Tools
Dec10-07, 09:45 PM   #1
 

curve fit in MATLAB


I have a set of data and I need to fit a curve to it. The equation of the curve is:
y=20-a*10*log(x)
My problem is just getting a curve fit to this equation. What function in MATLAB should I be looking for? How do I get the value of 'a'?

Is it easier to achieve this in Excel? How?
PhysOrg.com
PhysOrg
science news on PhysOrg.com

>> Intel's Haswell to extend battery life, set for Taipei launch
>> Galaxies fed by funnels of fuel
>> The better to see you with: Scientists build record-setting metamaterial flat lens
Dec10-07, 11:50 PM   #2
 
Recognitions:
Gold Membership Gold Member
Science Advisor Science Advisor
Retired Staff Staff Emeritus
Plot it, and then look in the menus in the plot window for a fitting tool.

All of the functions available in that menu are also available on the command line, but I find curve fitting to be much more intuitive when done in a plot window.

- Warren
Dec11-07, 09:24 AM   #3
 
will i be able to enter in my own custom equation? thanks
Dec13-07, 10:00 AM   #4
 

curve fit in MATLAB


In excel if you have all the points plotted out, it will curve fit the points to whatever order of polynomial you want.

In Matlab I am sure you can enter your custom equations.
Dec13-07, 12:07 PM   #5
 
Recognitions:
Gold Membership Gold Member
Science Advisor Science Advisor
Quote by ACLerok View Post
will i be able to enter in my own custom equation? thanks
Yes, you can fit to whatever function you want.
Note that if you use functions from the Optimization toolbox (if you have that installed) you can quite easily fit to a nonlinear Matlab function, i.e. you can "fit" to a piece of code which generates an output that depends on an number of inputs, even if the function includes e.g. interpolation (which is often used conventient when fitting to a large set of experimental data), if-then statements etc. This is often very useful.

Also, if you are able to rewrite your equations as a matrix equation (e.g. a sum of exponentials with unknown prefactors) you can of course also solve it directly, i.e. using something like "X\b" which gives you the best result in the least-square sense.
Mar14-08, 06:10 AM   #6
 
You can also try Ezyfit, a free curve fitting toolbox for Matlab:
www.fast.u-psud.fr/ezyfit
In your case just type
showfit('y=20-a*10*log(x)')
if your data are plotted in a figure, or
f = ezfit(x,y,'y=20-a*10*log(x)')
if your data are stored into the vectors x,y.
Thread Closed
Thread Tools


Similar Threads for: curve fit in MATLAB
Thread Forum Replies
Curve fitting in Matlab Math & Science Software 1
MATLAB help: determining the area under a plot (not a curve whose form is known) Math & Science Software 4
curve fitting using Matlab Math & Science Software 0
create bezier curve from 2 conected curve General Math 2
Differential Geometry: Showing a curve is a sphere curve Calculus & Beyond Homework 0