How do I solve a nonlinear equation in MATLAB?


Many students ask me how do I do this or that in MATLAB.  So I thought why not have a small series of my next few blogs do that.  In this blog, I show you how to solve a nonlinear equation.

The MATLAB program link is here.

The HTML version of the MATLAB program is here.

%% HOW DO I DO THAT IN MATLAB SERIES?
% In this series, I am answering questions that students have asked
% me about MATLAB.  Most of the questions relate to a mathematical
% procedure.

%% TOPIC
% How do I solve a nonlinear equation?

%% SUMMARY

% Language : Matlab 2008a;
% Authors : Autar Kaw;
% Mfile available at
% http://numericalmethods.eng.usf.edu/blog/integration.m;
% Last Revised : March 28, 2009;
% Abstract: This program shows you how to solve a nonlinear equation.
clc
clear all

%% INTRODUCTION

disp(‘ABSTRACT’)
disp(‘   This program shows you how to solve’)
disp(‘   a nonlinear equation’)
disp(‘ ‘)
disp(‘AUTHOR’)
disp(‘   Autar K Kaw of http://autarkaw.wordpress.com’)
disp(‘ ‘)
disp(‘MFILE SOURCE’)
disp(‘   http://numericalmethods.eng.usf.edu/blog/nonlinearequation.m’)
disp(‘ ‘)
disp(‘LAST REVISED’)
disp(‘   April 11, 2009′)
disp(‘ ‘)

%% INPUTS
% Solve the nonlinear equation x^3-15*x^2+47*x-33=0
% Define x as a symbol
syms x
% Assigning the fleft hand side o the equation f(x)=0
f=x^3-15*x^2+47*x-33;
%% DISPLAYING INPUTS

disp(‘INPUTS’)
func=['  The equation to be solved is ' char(f), '=0'];
disp(func)
disp(‘  ‘)

%% THE CODE

% Finding the solution of the nonlinear equation
soln=solve(f,x);
solnvalue=double(soln);

%% DISPLAYING OUTPUTS

disp(‘OUTPUTS’)
for i=1:1:length(solnvalue)
fprintf(‘\nThe solution# %g is %g’,i,solnvalue(i))
end
disp(‘  ‘)

This post is brought to you by Holistic Numerical Methods: Numerical Methods for the STEM undergraduate at http://numericalmethods.eng.usf.edu, the textbook on Numerical Methods with Applications available from the lulu storefront, and the YouTube video lectures available at http://numericalmethods.eng.usf.edu/videos and http://www.youtube.com/numericalmethodsguy

Subscribe to the blog via a reader or email to stay updated with this blog. Let the information follow you.

About these ads

18 responses to “How do I solve a nonlinear equation in MATLAB?

  1. Nice …. and thnx….

  2. Can u please tell me how i can solve a nonlinear equation with a set of constraints in matlab….

    thnx.
    chris

  3. Hi
    Can you help me to solve this equation?

    h (d2h/dx2)=4.822h-1.5h3-3.322
    Boundary conditions:
    X=0 h=0.73
    X=-2 dh/dx=0

    Regards,
    Vahid

  4. i need help with solving nonlinear system of three equations that repeated over 30000000
    nodes see the number of nodes a lot and due to saving the function problem i cant use the fsolve please help me

  5. i need to solve system of three equations over a 30000000 node my problem is how to save them to use in fsolve you know the node number

  6. please help me to solve this nonlinear oderinery differntial equation
    ydot1 = 20*y(1)*((y(2)-30.6176)/30.6176)-0.03*y(1);
    ydot2 = -0.07*y(2)-(28.7776)*((1.4873)^t)*(y(2)^2)/y(1)^0.38-10*y(2)^2*(y(2)-30.6176)^2/30.6176;
    and initial conditions are y1(0)=1706115.9
    y2(0)=30.75819596
    thanx alot

  7. please help me it is very important for me
    i used ode45 for solving it but the answer was NaN!!!!!

    • I have a similar problem, I want to solve a non linear 2nd order system of 3 equations & when i use ode45 the answer is NAN :s. Have you solved yours ??

  8. Pingback: 2010 in review | The Numerical Methods Guy

  9. Nice blog!

  10. <a href=" to get detail knowledge about mathlab and soln with their quastions

  11. Thanks man!! That really helped my work.

  12. i want to solve this four equations;
    x(3) – ((log(x(1)/ 65792043000 )) -( 0.07+(0.5*(x(2)^2))))/x(2);
    x(4) – x(3) + x(2);
    8507000337- x(1)*normcdf(x(3)) + 65792043000*exp(-0.07)*normcdf(x(4));
    (8507000337* 0.347089018056744) – x(1)*x(2)*normcdf(x(3))];
    can u solve?
    please help me!!!!

  13. Hi sir…
    i need a point to solve a nonlinear equation state space in matlab…
    AX+Bu=0
    [0 1 ] [x1] [0 ]
    =[ ]
    [x^4 -1] [x2] [sin(t)]

    thanks for your guide..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s