Matlab - Proceso de ortogonalización de Gram-Schmidt

Поділитися
Вставка
  • Опубліковано 19 січ 2025

КОМЕНТАРІ • 27

  • @samlocr388
    @samlocr388 3 роки тому +2

    me has salvado, gracias

    • @programmath
      @programmath  3 роки тому

      Me alegra que te haya sido de utilidad el video.

  • @ramyhir123
    @ramyhir123 6 місяців тому +1

    Se puede ejecutar el programa con vectores que tienen variables?

    • @programmath
      @programmath  6 місяців тому

      Sí se puede, solo cambia la línea U=zeros(m,n) por U=V ya que Matlab puede molestar si se intenta almacenar variables simbólicas en vectores de números.

  • @juandiegorodriguezjimenez5041
    @juandiegorodriguezjimenez5041 3 роки тому

    a mi me sale esto al poner GramSchmidt, Unrecognized function or variable 'GramSchmidt'. que hago?

    • @programmath
      @programmath  3 роки тому

      Ese error aparece cuando la función no ha sido creada; es posible que la hayas guardado en una carpeta diferente a la carpeta desde la cual está trabajando Matlab. Para estar seguros, escribe en la terminal
      pwd
      Eso nos dirá cuál es la carpeta de trabajo; si no coincide con la ubicación del programa, puedes copiar el programa a la carpeta o cambiar la carpeta por el lugar donde se almacena el programa

    • @juandiegorodriguezjimenez5041
      @juandiegorodriguezjimenez5041 3 роки тому

      @@programmath mil gracias ya lo hare

    • @juandiegorodriguezjimenez5041
      @juandiegorodriguezjimenez5041 3 роки тому

      @@programmath nd jajajaja ya mire y no se que mas hacer :(

    • @programmath
      @programmath  3 роки тому

      Muéstrame el código, puede ser algún problema con el nombre de la función.

  • @elnoctambulo1387
    @elnoctambulo1387 3 роки тому

    Hola, me podrías decir porqué me aparece este error.
    error: 'GramSchmidt' undefined near line 1, column 1.
    De antemano muchas gracias.

    • @programmath
      @programmath  3 роки тому

      Déjame ver las primeras líneas del código y como hiciste la ejecución en la terminal.

    • @elnoctambulo1387
      @elnoctambulo1387 3 роки тому

      @@programmath
      1 function U=GramSchmidt (V)
      2 % V es la matriz que contiene los vectores considerados
      3 % almacenados en sus columnas.
      4 [m,n]=size(V); %n vectores, con m componentes.
      5 U=zeros(m,n);
      6 U(:,1)=V(:,1);
      7 for k=2:n
      8 S=V(:,k);
      9 for j=1:k-1
      10 S=S-(dot(V(:,k),U(:,j))/dot(U(:,j),U(:,j)))*U(:,j);
      11 endford
      12 U(:,k)=S;
      13 endford
      14 endfunction
      Comand windows
      v1 = [1 1 0];
      v2 = [2 0 -1];
      v3 = [1; 1; 3]
      V = [v1' v2' v3']
      1 2 1
      1 0 1
      0 -1 2
      Gramschmidt (V)
      error: 'GramSchmidt' undefined near linea 1, column 1.

    • @elnoctambulo1387
      @elnoctambulo1387 3 роки тому

      @@programmath lo corregí y lo copie tal cual explicas en el video.
      Ejecuto en la ventana de comandos y ahora me aparece esto.
      Error: U(_0+li): subscripts must be real (forgot to initializen i or j?)
      Error: called from
      Gramschmidt at line 10 column 8

    • @programmath
      @programmath  3 роки тому

      @@elnoctambulo1387 Según dice el error, hay un problema con los contadores del for., ya que no se usó i sino k.

    • @programmath
      @programmath  3 роки тому

      @@elnoctambulo1387 No es necesario aclarar qué cierra el end; evita escribir endfor y deja simplemente end. El endfunction no es necesario.
      En cuanto al posible error, puede deberse a que el llamado en la terminal se hizo como "Gramschmidt(V)" con la "s" en minúscula, cuando el nombre de la función es en mayúscula.

  • @cristiansedano2644
    @cristiansedano2644 4 роки тому

    hola, me podrias decir, por qué me sale este error ?
    >> GramSchimidt
    Not enough input arguments.
    Error in GramSchimidt (line 4)
    [m n]=size(V); %n vectores con m componentes
    igual que en el video previamente puse los mismos vectores columnas

    • @programmath
      @programmath  4 роки тому

      No pasaste los parámetros.
      Al ejecutar, debes escribir GramSchmidt(V)
      Donde V es la matriz con los vectores

    • @cristiansedano2644
      @cristiansedano2644 4 роки тому

      @@programmath puse tal cual, pusiste en tu video
      function U=GramSchmidt(V)
      %V es la matriz que contiene los vectores considerados almacenados en sus
      %columnas
      [m n]=size(V); %n vectores con m componentes
      U=zeros(m,n);
      U(:,1)=V(:,1);
      for k=2:n
      S=V(:,k);
      for j=1:k-1
      S=S-(dot(V(:,k),U(:,j))/dot(U(:,j),U(:,j)))*U(:,j);
      end
      U(:,k)=S;
      end
      end

    • @programmath
      @programmath  4 роки тому +2

      El problema está en la ejecución. En el comand window escribe
      V=[1 2 1; 1 0 1; 0 -1 2];
      GramSchmidt(V)

    • @cristiansedano2644
      @cristiansedano2644 4 роки тому +1

      @@programmath tenias razón, ahora si corre el código, muchas gracias

  • @DavidMercury89
    @DavidMercury89 3 роки тому

    no faltó una coma? entre n y m en la linea de size ?

    • @programmath
      @programmath  3 роки тому

      En Matlab los vectores permiten separar elementos con espacio o con coma; en pocas palabras [m n] es equivalente a [m,n]

    • @programmath
      @programmath  3 роки тому

      Por cierto. Acostumbrarse a separar con comas, como sugieres, es mejor ya que en otros lenguajes de programación, como Python, es la forma válida de separar elementos.

  • @fernandovargas5873
    @fernandovargas5873 3 роки тому

    alguien me podria ayudar para el codigo en python

    • @programmath
      @programmath  3 роки тому +1

      En este video lo encontrarás
      ua-cam.com/video/_Yawo2TLuXQ/v-deo.html