Cálculo de la Longitud de una Tubería con MATLAB y ASCII Gráficos

Cálculo de la Longitud de una Tubería con MATLAB y ASCII Gráficos

  ·  1 min read

Abrir terminal

¿Alguna vez te has preguntado cómo calcular la longitud de una tubería curva a partir de su función matemática? En este post exploraremos cómo hacerlo con MATLAB, utilizando gráficos en ASCII con gnuplot para una visualización directa desde la terminal.

🧮 Fundamento Matemático #

La longitud de arco de una curva ( y = f(x) ) entre los puntos ( x = a ) y ( x = b ) se calcula con la siguiente fórmula:

$$ L = \int_a^b \sqrt{1 + \left(\frac{dy}{dx}\right)^2} , dx $$

Para este ejercicio, la curva es:

$$ y(x) = 0.5x^2 \quad \text{con} \quad \frac{dy}{dx} = x $$


🧑‍💻 Código en MATLAB #

graphics_toolkit('gnuplot');
setenv('GNUTERM','dumb');

y      = @(x) 0.5*x.^2;
dy_dx  = @(x) x;

a = input('Ingrese el límite inferior (a): ');
b = input('Ingrese el límite superior (b): ');
if a >= b, error('a debe ser < b'); end

integrand   = @(x) sqrt(1 + (dy_dx(x)).^2);
arc_length = integral(integrand, a, b);

xv = linspace(a,b,98);
yv = y(xv);

tmp = [tempname() '.dat'];
dlmwrite(tmp, [xv' yv'], ' ');

cmd = sprintf([
    'gnuplot -e "set terminal dumb size 98,28; ', ...
    'set title \\"y(x)=0.5x^2\\"; ', ...
    'plot ''%s'' using 1:2 with lines"'], tmp);

fprintf('\nGráfica ASCII:\n');
system(cmd);
delete(tmp);

fprintf('\nLongitud de arco en [%0.2f,%0.2f] ≈ %0.4f\n', a, b, arc_length);