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://nm.mathforcollege.com/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://nm.mathforcollege.com/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://nm.mathforcollege.com, the textbook on Numerical Methods with Applications available from the lulu storefront, and the YouTube video lectures available at http://nm.mathforcollege.com/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.

0 thoughts on “How do I solve a nonlinear equation in MATLAB?”

  1. 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

  2. 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

  3. 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

  4. 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

    1. 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 ??

  5. 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!!!!

  6. 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!!!!

Leave a Reply