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 that needs to be set up.

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)

where

R= radius of ball

S= specific gravity of ball

So how do we set this up if S and R are input values?

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 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 https://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(‘ ‘)

%% 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

%% DISPLAYING INPUTS

disp(‘INPUTS’)

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

disp(func)

disp(‘ ‘)

%% 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);

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

Now, Rohedi would add another example of nonlinear equation V*sqrt(1-x) – arctan(sqrt(x/(1-x))) – arctan(sqrt((a+x)/(1-x)))=m*pi, that maybe it can be solved using the above scheme. On the dispersion relation of optical modes for optical slab waveguide, both V and a are positive numbers, while the value of x for every integer m is in the range 0<x<1.

For instance, what does the x value that satisfy 16*sqrt(1-x) – arctan(sqrt(x/(1-x))) – arctan(sqrt((1000+x)/(1-x)))=3*pi. Here we must use pi=3.141593, because optical wavelength used in designing optical waveguides is in micro meter.

Best Regards,

Rohedi.

LikeLike