Question: Translate the following Matlab code to Mathematica ----------------------------------------------------------------------------- clc close all clear all max_iteration_limit = 50; percent_relative_error_threshold = 0.0001; g = 9.81; t = 4;
Translate the following Matlab code to Mathematica
-----------------------------------------------------------------------------
clc close all clear all
max_iteration_limit = 50; percent_relative_error_threshold = 0.0001; g = 9.81; t = 4; v = 36;
x_LOWER_bound_THIS_iteration = 140; x_UPPER_bound_THIS_iteration = 150;
iteration_counter = 1;
x_root_estimate_LAST_iteration = x_LOWER_bound_THIS_iteration; percent_relative_error_THIS_iteration = 100;
my_function = @(x) sqrt( g * x / 0.25) * tanh( sqrt(g * 0.25 / x) * t ) - v;
while percent_relative_error_THIS_iteration >= percent_relative_error_threshold && ... iteration_counter <= max_iteration_limit
fprintf(1,' Iteration Number = %i ',iteration_counter)
x_root_estimate_THIS_iteration = x_UPPER_bound_THIS_iteration - ... my_function(x_UPPER_bound_THIS_iteration)*... (x_LOWER_bound_THIS_iteration-x_UPPER_bound_THIS_iteration) / ... ( my_function(x_LOWER_bound_THIS_iteration) - my_function(x_UPPER_bound_THIS_iteration) );
if x_root_estimate_THIS_iteration ~= 0 percent_relative_error_THIS_iteration = ... abs( (x_root_estimate_THIS_iteration - x_root_estimate_LAST_iteration) ... / x_root_estimate_THIS_iteration ) * 100; else error('division by zero'); end
LEFT_BRACKET_LOWER_bound_function_value = my_function(x_LOWER_bound_THIS_iteration); LEFT_BRACKET_UPPER_bound_function_value = my_function(x_root_estimate_THIS_iteration); function_value_product = LEFT_BRACKET_LOWER_bound_function_value * LEFT_BRACKET_UPPER_bound_function_value;
if function_value_product < 0 x_UPPER_bound_THIS_iteration = x_root_estimate_THIS_iteration; elseif function_value_product > 0 x_LOWER_bound_THIS_iteration = x_root_estimate_THIS_iteration; end
x_root_estimate_LAST_iteration = x_root_estimate_THIS_iteration;
iteration_counter = iteration_counter + 1; end
fprintf(1,'The FINAL root estimate is: mass = %f ',x_root_estimate_THIS_iteration); fprintf(1,'The FINAL approximate percent error is :%f ',percent_relative_error_THIS_iteration);
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
