Mientras estudié la carrera de ingeniería acústica en la Universidad Austral de Chile, tuve que realizar muchísimas gráficas funciones matemáticas en 2D y 3D, para trabajos e informes de los cursos de matemática y física en ingeniería acústica, que son la base para cálculos matemáticos más complejos para estudiar el problema del ruido en general: como ser modelos de propagación de ruido, aislamiento de ruido, interacción con barreras acústicas, entre otros. La matemática asociada a los problemas físico matemático son la base de los diversos algoritmos incluidos en software para modelaciones acústicas, y resulta útil el uso de la acústica computacional para resolver diversas situaciones.
Comparto aquí un script para realizar una gráfica de una función matemática en MATLAB, que ademas de graficar la función matemática, escribe la ecuación sobre la gráfica mediante sintaxis en codigo Latex y finalmente guarda un archivo pdf con la imagen de la función creada.
clear clc close all x=[-100:1:100]; dim=get(0,'ScreenSize'); figure('position',[dim(1) dim(2) dim(3) dim(4)]); y=(0.25)*x.*x; plot(x,y) axis([-100 100 -20 180]) daspect([1 1 1]) grid on title('Grafica matemática') xlabel('eje x') % etiqueta para el nombre del eje x ylabel('eje y') % etiqueta para el nombre del eje y str = '$$ y=(1/4)x^2 $$'; texto=text(55,120 ,str,'Interpreter','latex') texto.FontSize = 14; annotation('arrow','X',[0.65,0.55],'Y',[0.65,0.4]) %% guardar archivos de imagenes de la grafica nc='imagenes_salida' % nombre carpeta mkdir(nc) ruta=['./' nc '/'] print(figure(1),[ruta 'imagen_de_datos_png'],'-dpng') % para guardar una imagen pixelada print(figure(1),[ruta 'imagen_de_datos_eps'],'-depsc')% para guardar una imagen vectorial (para latex) print(figure(1),[ruta 'imagen_de_datos_pdf'],'-dpdf')% para guardar una imagen en un documento pdf print(figure(1),[ruta 'imagen_de_datos_svg'],'-dsvg')% para guardar una imagen en svg (vectorial para web) winopen(['./' nc '/imagen_de_datos_pdf.pdf'])
Pincha aqui para ver codigo latex para funciones matematicas de uso habitual.
Si requieres crear graficar una superficie matematica en 3D aqui una mejora al código original.

clear clc close all %x=[-100:1:100]; maximiza_imagen = false; dim=get(0,'ScreenSize'); X=[-100:10:100]; Y=[-100:10:100]; [x y] = meshgrid(X,Y); if maximiza_imagen figure('position',[dim(1) dim(2) dim(3) dim(4)]); end figure(1) z = x.^2 + y.^2; mesh(z) title('Ejemplo funcion mesh') if maximiza_imagen figure('position',[dim(1) dim(2) dim(3) dim(4)]); end figure(2) z = x.^2 + y.^2; surf(z) title('Ejemplo funcion surf') xx = [-100:1:100]; yy = [-100:1:100]; yy=(0.25)*xx.*xx; if maximiza_imagen figure('position',[dim(1) dim(2) dim(3) dim(4)]); end figure(3) plot(xx,yy) axis([-100 100 -20 180]) daspect([1 1 1]) grid on title('Grafica matemática') xlabel('eje x') % etiqueta para el nombre del eje x ylabel('eje y') % etiqueta para el nombre del eje y str = '$$ y=(1/4)x^2 $$'; texto=text(55,120 ,str,'Interpreter','latex') texto.FontSize = 14; annotation('arrow','X',[0.65,0.55],'Y',[0.65,0.4]) %% guardar archivos de imagenes de la grafica nc='imagenes_salida_1' % nombre carpeta mkdir(nc) ruta=['./' nc '/'] print(figure(1),[ruta 'imagen_de_datos_png'],'-dpng') % para guardar una imagen pixelada print(figure(1),[ruta 'imagen_de_datos_eps'],'-depsc')% para guardar una imagen vectorial (para latex) print(figure(1),[ruta 'imagen_de_datos_pdf'],'-dpdf','-bestfit')% para guardar una imagen en un documento pdf print(figure(1),[ruta 'imagen_de_datos_svg'],'-dsvg')% para guardar una imagen en svg (vectorial para web) winopen(['./' nc '/imagen_de_datos_pdf.pdf']) pause(1) nc='imagenes_salida_2' % nombre carpeta mkdir(nc) ruta=['./' nc '/'] print(figure(2),[ruta 'imagen_de_datos_png'],'-dpng') % para guardar una imagen pixelada print(figure(2),[ruta 'imagen_de_datos_eps'],'-depsc')% para guardar una imagen vectorial (para latex) print(figure(2),[ruta 'imagen_de_datos_pdf'],'-dpdf','-bestfit')% para guardar una imagen en un documento pdf print(figure(2),[ruta 'imagen_de_datos_svg'],'-dsvg')% para guardar una imagen en svg (vectorial para web) winopen(['./' nc '/imagen_de_datos_pdf.pdf']) pause(1) nc='imagenes_salida_3' % nombre carpeta mkdir(nc) ruta=['./' nc '/'] print(figure(3),[ruta 'imagen_de_datos_png'],'-dpng') % para guardar una imagen pixelada print(figure(3),[ruta 'imagen_de_datos_eps'],'-depsc')% para guardar una imagen vectorial (para latex) print(figure(3),[ruta 'imagen_de_datos_pdf'],'-dpdf','-bestfit')% para guardar una imagen en un documento pdf print(figure(3),[ruta 'imagen_de_datos_svg'],'-dsvg')% para guardar una imagen en svg (vectorial para web) winopen(['./' nc '/imagen_de_datos_pdf.pdf']) pause(1)
LEONARDO PARADA VALENCIA
Latest posts by LEONARDO PARADA VALENCIA (see all)
- Ruido blanco para dormir - 10/04/2021
- Music and Sound Design for movies - 02/04/2021
- Musicalización corto audiovisual - 02/04/2021
