miércoles, 6 de marzo de 2013

Producto de elementos de una Matriz

Desarrollar un programa en Matlab que cumpla lo siguiente: - lo llamaremos desde el cursor de Matlab escribiendo (argumentos) > - el programa llenará una matriz de orden 1 x n (este n será el primer argumento a dar por el usuario) en la que el primer elemento será el número 1,00, y cada elemento de los siguientes se irá incrementado una cantidad constante (cantidad que será el segundo argumento a dar por el usuario) con respecto al anterior; posteriormente, el programa multiplicará todos los elementos de la matriz entre sí - el programa mostrará en pantalla, cuando se ejecute, solamente: la matriz resultante, y el producto resultante. Ejemplo de comprobación: prodmat ( 5 , 0.15 ) matriz = 1.0000 1.1500 1.3000 1.4500 1.6000 producto = 3.4684

Contents

PROGRAMA PRINCIPAL

function [matriz1,Prod1,matriz2,Prod2,matriz3,Prod3,matriz4,Prod4]=prodmat(n,razon);
if nargin<1
n=5;
razon=0.15;
end
[matriz1,Prod1]=prodmat1(n,razon)
[matriz2,Prod2]=prodmat2(n,razon)
[matriz3,Prod3]=prodmat3(n,razon)
[matriz4,Prod4]=prodmat4(n,razon)
end

DIFERENTES FORMAS DE HACER LA PREGUNTA

function [matriz1,Prod1]=prodmat1(n,razon)
matriz1=1:razon:1+(n-1)*razon;
Prod1=prod(matriz1);
end

function [matriz2,Prod2]=prodmat2(n,razon)
matriz2=zeros(1,n);
for i=1:n
matriz2(i)=1+(i-1)*razon;
end
Prod2=1;

for i=1:n
Prod2=Prod2*matriz2(i) ;
end
end

function [matriz3,Prod3]=prodmat3(n,razon)
matriz3=zeros(1,n);
Prod3=1;
for i=1:n
matriz3(i)=1+(i-1)*razon;
Prod3=Prod3*matriz3(i) ;
end
end

function [matriz4,Prod4]=prodmat4(n,razon)
matriz4=zeros(1,n);
Prod4=1;
i=1;
while i<=n
matriz4(i)=1+(i-1)*razon;
Prod4=Prod4*matriz4(i) ;
i=i+1;
end
end

 SALIDA DE LOS RESULTADOS

matriz1 =
1.0000 1.1500 1.3000 1.4500 1.6000
Prod1 =
3.4684

matriz2 =
1.0000 1.1500 1.3000 1.4500 1.6000
Prod2 =
3.4684

matriz3 =
1.0000 1.1500 1.3000 1.4500 1.6000
Prod3 =
3.4684

matriz4 =
1.0000 1.1500 1.3000 1.4500 1.6000
Prod4 =
3.4684
Published with MATLAB® R2012b

José Jeremías Caballero
Servicios de Programación en MatLab
Lima - Perú

Para mayor información, contactarse a jjcc94@hotmail.com

sábado, 18 de agosto de 2012

Clases Particulares de Matlab Intermedio

SYLLABUS DE MATLAB INTERMEDIO

Sumilla Programación en Matlab, tipos de archivos, bucles, formatos de salida y entrada; importación de datos.
  • 1ra sesión

  • Programación en Matlab: Como entrar en el entorno de Matlab. Tipo de archivos de Matlab: archivos función, archivos script. Abrir, Crear, guardar y ejecutar un programa m. Ayuda (help) para programas creados por el usuario. Crear archivos p, archivos exe, conversiones de archivos *.m a archivos html. Operadores Lógicos. El uso de la funciones nargin, nargout, return, y error para la correcta ejecución de los archivos m.
  •  2da sesión

  • Raíces de funciones, Creación de funciones, evaluación de funciones simbólicas de distintas maneras: feval, inline, etc. Formatos de salida, uso de fprintf, disp, display, sprintf para las impresiones, input. Ejercicios Resueltos.
  •  3ra sesión

  • Funciones lógica. Sentencias de decisión (if, case, otherwise continue, elseif,), problemas resueltos. Bucles finitos (for, while). Codificación de algoritmos con bucles finitos
  •  4ta sesión
  • Bucles infinitos (bucle while 1) subprogramas, argumentos de entrada y salida. Codificación de algoritmos. Comandos de manejo interactivo (la función menú) . Problemas resueltos.
  •  5ta sesión

  • Tratamiento de archivos de datos, uso de fprintf, fopen, fclose, textscan, importdata, load, xlsread, xlswrite, xlsfinfo, fgets y fgetl. Importación y exportación de datos. Lectura y exportación de datos: de Excel, de texto, de imágenes. Problemas Resueltos.
  • 6ta sesión

  • Evaluación y calificación
    José Jeremías Caballero 
    Servicios de Programación en MatLab
    Lima - Perú
    Para mayor información, contactarse a jjcc94@hotmail.com

    Area de un Triangulo

    Haga un programa a nivel Matlab Guide que calcule el área de un triángulo mediante la formula: clip_image002[4] Donde p es el semiperímetro, clip_image004, siendo a, b, c los tres lados del triángulo, además graficarlo en un axis y ubicar su centro de gravedad. Se debe leer los vértices del triangulo triangulo
    Realizado por mis alumnos, Phierina  Tamara y  Cesar Muñoz, alumnos de Métodos Numéricos y Programación II, UNMSM.
    José Jeremías Caballero

    Servicios de Programación en MatLab

    https://programacioncaballero.blogspot.com/

    Lima - Perú

    Para mayor información, contactarse a jjcc94@hotmail.com

    viernes, 11 de mayo de 2012

    Intersección de dos rectas en el plano

     
    clear all

    figure(1)

    figure(gcf)

    syms  x

    y1=-3*x+18;

    y2=(-3*x+27)/4;

    figure(gcf)

    hold on

    X=solve(y1==y2);

    f1=inline(y1);

    f2=inline(y2);

    plot(X,f1(X),'*b')

    fplot(char(y1),[double(X)-5 double(X)+5],'r')

    fplot(char(y2),[double(X)-5 double(X)+5],'g')

    hold off





    clear all

    figure(2)

    figure(gcf)

    syms  x y

    e1=3*x+y-18;

    e2=3*x+4*y-27;

    figure(gcf)

    hold on

    [X,Y]=solve(e1,e2,'x','y');

     plot(X,Y,'*b')

     h1=ezplot(e1,[double(X)-5 double(X)+5]);

     set(h1, 'Color', 'r');

     h2=ezplot(e2,[double(X)-5 double(X)+5]);

     set(h2, 'Color', 'g');

    grid on

    hold off

    José Jeremías Caballero
    Servicios de Programación en MatLab
    https://programacioncaballero.blogspot.com/

    Lima - Perú

    Para mayor informacion, contactarse a jjcc94@hotmail.com

    domingo, 6 de mayo de 2012

    Splines Cubicos

    Programa de Splines Cúbicos

    %% http://www.lawebdelprogramador.com/foros/Matlab/1327174-Duda_spline.html
    % Hola, estoy haciendo un .m para obtener y dibujar las splines. Primero
    %introduces los puntos (x,y) que tu quieres.
    % 
    % El siguiente código te permite obtener los coeficientes para cada spline:
    %  De esta manera, se obtiene
    % 
    % [ A1 B1 C1 D1; A2 B2 C2 D2;............; AN BN CN DN]
    % 
    % El problema, es que aún teniendo esta matriz, no sé cómo hacer para
    %representar las funciones spline (correspondiente a cada intervalo).

    %Primero hay que introducir el vecto X e Y
    clear all
    X=[40   45  50  55  60  65  70];
    Y=[390  340 290 250 210 180 160];
    N=length(X)-1;
    H=diff(X);
    E=diff(Y)./H;
    diagsupinf=H(2:N-1);
    diagprinc=2*(H(1:N-1)+H(2:N));
    U=6*diff(E);
    % restricciones del spline natural
    Minicial=0; Mfinal=0;
    % construccion de la matriz de los coeficientes para el calculo de los
    % momentos
    A=diag(diagprinc)+diag(diagsupinf,1)+diag(diagsupinf,-1);
    % construccion del vector independiente para el calculo de los momentos
    B=U'; B(1)=B(1)-H(1)*Minicial; B(N-1)=B(N-1)-H(N)*Mfinal;
    % resolvemos el sistema y hallamos los momentos
    M=A\B;
    % añadimos los dos momentos naturales extremos y lo escribimos como vector
    % fila
    M=[Minicial,M',Mfinal];
    % calculo de los coeficientes del polinomio cubico i-esimo en potencias
    % de (x-x_i)
    for i=1:N
    S(i,1)=(M(i+1)-M(i))/(6*H(i));
    S(i,2)=M(i)/2;
    S(i,3)=E(i)-H(i)*(M(i+1)+2*M(i))/6;
    S(i,4)=Y(i);
    end

    % creamos los polinomios  para cada intervalo
    syms x
    for i=1:N
        s=0;
        for j=1:size(S,2)
            s=s+expand(S(i,j)*(x-X(j))^(4-j));
        end
        Es(i,:)=s;
    end

    % Es(1)--->f1---> Intervalo X [40,45)
    %  Es(2)--->f2---> Intervalo X [45,50)
    %  Es(3)--->f3---> Intervalo X [50,55)
    %  Es(4)--->f4---> Intervalo X [55,60)
    %  Es(5)--->f5---> Intervalo X [60,65)
    %  Es(6)--->f6---> Intervalo X [65,70)

     %dibujamos los polinomios
    figure(gcf)
    hold on
    c='rgbcmk';
    for i=1:length(X)-1
     F=vectorize(inline(Es(i)));
     plot(linspace(X(i),X(i+1)),F(linspace(X(i),X(i+1))),c(i),'linewidth',5)
     %fplot(F,[X(i) X(i+1)],'r',);
    end
    plot(X,Y,'linewidth',5,'color',rand(1,3))
    axis([X(1) X(end) -200 500])
    grid on
    hold off

    José Jeremías Caballero
    Servicios de Programación en MatLab
    https://programacioncaballero.blogspot.com/
    Lima - Perú

    Para mayor informacion, contactarse a jjcc94@hotmail.com

    Programación y algoritmos: asesorías, servicios, revision, creación y cursos

    Asesorías, servicios, revisión, creación y cursos    modalidad online Servicios ofrecidos Asesoría Online Personalizada en MATLAB y...