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.

Contents

TOPIC

How do I solve a nonlinear equation if I need to set it up?

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
% that needs to set up as opposed that is just given to you.
clc
clear all

INTRODUCTION

disp('ABSTRACT')
disp('   This program shows you how to solve')
disp('   a nonlinear equation that needs to be setup')
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 17, 2009')
disp(' ')
ABSTRACT
   This program shows you how to solve
   a nonlinear equation that needs to be setup
 
AUTHOR
   Autar K Kaw of http://autarkaw.wordpress.com
 
MFILE SOURCE
   http://numericalmethods.eng.usf.edu/blog/nonlinearequation.m
 
LAST REVISED
   April 17, 2009
 

INPUTS

Solve the nonlinear equation where you need to set up the equation For example to find the depth 'x' to which a ball is floating in water is based on the following cubic equation 4*R^3*S=3*x^2*(R-x/3) R= radius of ball S= specific gravity of ball So how do we set this up if S and R are input values

S=0.6
R=0.055
S =

    0.6000


R =

    0.0550

DISPLAYING INPUTS

disp('INPUTS')
func=['  The equation to be solved is 4*R^3*S=3*x^2*(R-x/3)'];
disp(func)
disp('  ')
INPUTS
  The equation to be solved is 4*R^3*S=3*x^2*(R-x/3)
  

THE CODE

Define x as a symbol

syms x
% Setting up the equation
C1=4*R^3*S
C2=3
f=[num2str(C1) '-3*x^2*(' num2str(R) '-x/3)']
% Finding the solution of the nonlinear equation
soln=solve(f,x);
solnvalue=double(soln);
C1 =

  3.9930e-004


C2 =

     3


f =

0.0003993-3*x^2*(0.055-x/3)

DISPLAYING OUTPUTS

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

The solution# 1 is 0.0623776
The solution# 2 is 0.14636
The solution# 3 is -0.0437371