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://nm.mathforcollege.com/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://nm.mathforcollege.com/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://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.
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.
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.