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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!