% matlab2ltex execute LaTex à partir de matlab % %ouverture du fichier preambule pour LaTeX fid1 = fopen('preambule1.tex','r'); F1 = fread(fid1); s1 = char(F1'); fclose(fid1); % fichier en sortie en format .tex [f_s,path_s] = uiputfile('*.tex','sauver le fichier'); %écriture dans le fichier *.tex ffs=char(f_s); fid=fopen(ffs,'w'); [path_s,nom_s,ext_s,versn_s] = fileparts(horzcat(path_s, f_s)); fprintf(fid,'%c',s1); fprintf(fid,' \n'); % commandes LaTeX %%%%%%%%%% pour produire un tableau à partir des %%%%%%%%%% calculs faits par matlab %%%%%%%%% tableau pour la fonction y=exp(x) x = 0:.2:10.2; y = [x(1:26); exp(x(1:26));x(27:52); exp(x(27:52))]; % commandes LaTeX fprintf(fid,'\\begin{tabular}{|c|c|c|c|} \\hline\n'); fprintf(fid,'$x$ & $e^x$ & $x$ & $e^x$\\\\ \\hline\n'); fprintf(fid,'%6.2f & %12.8f & %6.2f & %12.8f\\\\ \\hline\n',y); fprintf(fid,'\\end{tabular} \n'); fprintf(fid,' \n'); fprintf(fid,'\\newpage \n'); fprintf(fid,'\\section*{Application de la loi faible des grands nombres} \n'); % Loi faible des grands nombres % calcul numérique des intégrales N=[50:50:3000]'; % N=taille de simulations % g(x)=exp(x^3) % 1) theta=int(e^x^3,0..1) % 2) theta=int(e^x^3,1..2) % g(x)=exp(-x^3) % 3) theta=int(e^(-x^3),0..infini) % pour 2) : h(y)=(b-a)*g(a+(b-a)y) % pour 3) : h(y)=(1/y^2)*g((1/y)-1) X_1=[]; X_2=[]; X_3=[]; % initialisation % valeurs de a et b a=1; b=2; for i=1:length(N) U(i)={[rand(N(i),1)]}; X_1(i)=mean(exp(U{1,i}.^3)); X_2(i)=(b-a)*mean(exp((a+(b-a)*U{1,i}).^3)); X_3(i)=mean((1./U{1,i}.^2).*exp(-(1./U{1,i}-1).^3)); end % recuperer par : U{1,j} j=1,...,length(N) Y_1=[N(1:20),X_1(1:20)',N(21:40),X_1(21:40)',N(41:60),X_1(41:60)']; Y_2=[N(1:20),X_2(1:20)',N(21:40),X_2(21:40)',N(41:60),X_2(41:60)']; Y_3=[N(1:20),X_3(1:20)',N(21:40),X_3(21:40)',N(41:60),X_3(41:60)']; % présentation graphique des simulations figure(1) set(gcf, 'PaperUnits', 'centimeters'); set(gcf, 'PaperType', 'A4'); set(gcf, 'PaperSize', [10 10]); plot(N,X_1,N,mean(X_1)*ones(length(N),1)) box off % sauver la figure en format eps pour LaTeX print -depsc -tiff fig1.eps close(1) figure(2) set(gcf, 'PaperUnits', 'centimeters'); set(gcf, 'PaperType', 'A4'); set(gcf, 'PaperSize', [10 10]); plot(N,X_2,N,mean(X_2)*ones(length(N),1)) box off % sauver la figure en format eps pour LaTeX print -depsc -tiff fig2.eps close(2) figure(3) set(gcf, 'PaperUnits', 'centimeters'); set(gcf, 'PaperType', 'A4'); set(gcf, 'PaperSize', [10 10]); plot(N,X_3,N,mean(X_3)*ones(length(N),1)) box off % sauver la figure en format eps pour LaTeX print -depsc -tiff fig3.eps close(3) % % écriture dans le fichier en format tex (*.tex) fprintf(fid,' \n'); fprintf(fid,' $$\\displaystyle{\\hat{\\theta}=\\int_0^1 e^{x^3}\\, dx}$$ \n'); fprintf(fid,' \n'); fprintf(fid,'\\verb+mean(exp(rand(N,1).^3))+ \\\\[.2cm]\n'); fprintf(fid,' \n'); fprintf(fid,'\\begin{tabular}{|c|c||c|c||c|c|} \\hline\n'); fprintf(fid,'$N$ & $\\hat{\\theta}$ & $N$ & $\\hat{\\theta}$ &$N$ & $\\hat{\\theta}$ \\\\ \\hline\n'); for i=1:length(N)/3 fprintf(fid,'%d & %12.4f & %d & %12.4f & %d & %12.4f \\\\ \\hline\n',Y_1(i,:)); end fprintf(fid,'\\end{tabular} \n'); fprintf(fid,' \n'); fprintf(fid,'\\includegraphics[width=10cm]{fig1.eps} \n'); fprintf(fid,' \n'); fprintf(fid,'\\newpage \n'); fprintf(fid,' \n'); fprintf(fid,' $$\\displaystyle{\\hat{\\theta}=\\int_1^2 e^{x^3}\\, dx}$$ \n'); fprintf(fid,' \n'); fprintf(fid,'\\verb mean((2-1)*exp((1+(2-1)*rand(N,1)).^3)) \\\\[.2cm]\n'); fprintf(fid,' \n'); fprintf(fid,'\\begin{tabular}{|c|c||c|c||c|c|} \\hline\n'); fprintf(fid,'$N$ & $\\hat{\\theta}$ &$N$ & $\\hat{\\theta}$ &$N$ & $\\hat{\\theta}$ \\\\ \\hline\n'); for i=1:length(N)/3 fprintf(fid,'%d & %12.4f & %d & %12.4f & %d & %12.4f \\\\ \\hline\n',Y_2(i,:)); end fprintf(fid,'\\end{tabular} \n'); fprintf(fid,' \n'); fprintf(fid,'\\includegraphics[width=10cm]{fig2.eps} \n'); fprintf(fid,'\\newpage \n'); fprintf(fid,' \n'); fprintf(fid,' $$\\displaystyle{\\hat{\\theta}=\\int_0^{\\infty} e^{-x^3}\\, dx}$$ \n'); fprintf(fid,' \n'); fprintf(fid,'\\verb U=rand(N,1) \\\\[.2cm]\n'); fprintf(fid,' \n'); fprintf(fid,'\\verb mean((1./U.^2).*exp(-(1./U-1).^3)) \\\\[.2cm]\n'); fprintf(fid,' \n'); fprintf(fid,'\\begin{tabular}{|c|c||c|c||c|c|} \\hline\n'); fprintf(fid,'$N$ & $\\hat{\\theta}$ &$N$ & $\\hat{\\theta}$ &$N$ & $\\hat{\\theta}$ \\\\ \\hline\n'); for i=1:length(N)/3 fprintf(fid,'%d & %12.4f & %d & %12.4f & %d & %12.4f \\\\ \\hline\n',Y_3(i,:)); end fprintf(fid,'\\end{tabular} \n'); fprintf(fid,' \n'); fprintf(fid,'\\includegraphics[width=10cm]{fig3.eps} \n'); fprintf(fid,'\\end{document}'); fclose(fid); %%%%%%%%%%%%%%%% Exécution de LaTeX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % création du fichier en format dvi % le répertoire de latex.exe % %latex : C:\texmf\miktex\bin\latex [f_latex, path_latex] = uigetfile('*.exe', 'répertoire de latex.exe'); [pathstr,name,ext,versn] = fileparts(horzcat(path_latex, f_latex)) fich_latex = fullfile(pathstr,name) latex=[char(fich_latex),' ',char(f_s)]; latex=char(latex) % appel à dos dos(latex); % création du fichier en format ps % le répertoire de dvips.exe % dvips : C:\texmf\miktex\bin\dvips [f_dvips, path_dvips] = uigetfile('*.exe', 'répertoire de dvips.exe'); [pathdvips,nomdvips,extdvips,versdvips] = fileparts(horzcat(path_dvips, f_dvips)); fich_dvips = fullfile(pathdvips,nomdvips); % on récupère le nom de fichier en format 'dvi' n_dvi=char([nom_s,'.dvi']) dvips=[char(fich_dvips),' ',n_dvi]; dvips=char(dvips); % appel à dos dos(dvips); % création du fichier en format pdf à partir du format ps % le répertoire de ghostscript (gswin32c.exe) [f_ps2pdf, path_ps2pdf] = uigetfile('*.exe', 'répertoire de gswin32c.exe'); [path_gs,nom_gs,ext_gs,vers_gs] = fileparts(horzcat(path_ps2pdf, f_ps2pdf)); fich_ps2pdf = fullfile(path_gs,nom_gs) % on récupère le nom de fichier en format 'ps' n_ps=char([nom_s,'.ps']) % le nom du fichier en sortie format 'pdf' n_pdf=char([nom_s,'.pdf']) ghostscript=[char(fich_ps2pdf),' -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=',n_pdf,' -c save pop -f ',n_ps]; ghostscript=char(ghostscript) % appel à dos dos(ghostscript); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%