Laboratorio 1 de metodos numericos

download Laboratorio 1 de metodos numericos

of 14

description

ejemplos de calculo nmerico con matlab

Transcript of Laboratorio 1 de metodos numericos

  • INFORME

    LABORATORIO 1

    Edwin Callejas Pinto

    3 de diciembre de 2015

  • INFORME

    LABORATORIO 1

    1. Implementar los seis algoritmos de multiplicacion de matrices en funcion de ladimension n de una matriz cuadrada que debe generar aleatoriamente y calcularlos tiempos de ejecucion de cada uno de los mismos con tic y toc y presentar ungrafico comparativo de los tiempos estimados para n = 100; 200; 300; 400; 500; 600.

    Solucion.- El programa principal se denomina matxmatrun.m es:

    % archivo matxmatrun.m

    clc

    clear all

    ncols = 10*[1,2,3,4,5,6];

    ns=length(ncols); %numero de ns proporcionado

    tp1=zeros(ns,1); tp2=tp1; tp3=tp1; tp4=tp1; tp5=tp1; tp6=tp1; tp7=tp1;

    for i=1:ns

    tp1(i)=matxmat(ncols(i),1);

    tp2(i)=matxmat(ncols(i),2);

    tp3(i)=matxmat(ncols(i),3);

    tp4(i)=matxmat(ncols(i),4);

    tp5(i)=matxmat(ncols(i),5);

    tp6(i)=matxmat(ncols(i),6);

    tp7(i)=matxmat(ncols(i),7);

    end

    tp = [tp1 tp2 tp3 tp4 tp5 tp6 tp7];

    disp(tp);

    plot(ncols,tp);

    legend(ijk,jik,ikj,jki,kij,kji,cmd MATLAB,Location,northwest)

    title(Grafico de comparacion de tiempos C = A * B)

    el programa de la funcion matxmat.m es:

    %Sintaxis: [tp_ejec]=matxmat(n,op)

    %Calcula el tiempo de ejecucion de los agoritmos de multiplicacion de

    %matrices op=1: ijk, op=2: jik, op=3: ikj, op=4: jki, op=5: kij, op=6: kji

    %op>=7: Comando MATLAB, n=dimension de la matriz cuadrada.

    %Maestria en Modelaje Matematico 1ra version 2015-2016 Carrera Matematica

    %Autor: Dr. Porfirio Su~nagua S. Modulo: Analisis Numerico

    function [tp_ejec]=matxmat(n,op)

    if nargin

  • Lab 1 Edwin Callejas Pinto

    A=[2 4 -1 5;0 1 3 5; -2 3 5 -1; 4 0 2 -3];

    B=[3 5 7 1; 8 2 4 1; -3 -2 0 4; 2 5 7 1];

    n=size(A,1);

    else %A tiene entradas de 100 hasta 200, B entre 0 y 1

    A=100+(200-100)*rand(n,n);

    B=rand(n);

    end

    C=zeros(n,n);

    tic

    switch op

    case 1 %ijk version fila

    for i = 1:n

    for j=1:n

    s=0;

    for k = 1:n

    s=s+A(i,k)*B(k,j);

    end

    C(i,j)=s;

    end

    end

    case 2 % version columna jik

    for j = 1:n

    for i=1:n

    s=0;

    for k = 1:n

    s=s+A(i,k)*B(k,j);

    end

    C(i,j)=s;

    end

    end

    case 3 %version gaxpy fila ikj

    for i = 1:n

    for k=1:n

    aik=A(i,k);

    for j = 1:n

    C(i,j)=C(i,j)+aik*B(k,j);

    end

    end

    end

    case 4 %version gaxpy columna jki

    for j = 1:n

    for k=1:n

    bkj=B(k,j);

    for i = 1:n

    C(i,j)=C(i,j)+A(i,k)*bkj;

    end

    end

    end

    case 5 %vesrion outer product fila kij

    for k = 1:n

    for i=1:n

    aik=A(i,k);

    for j = 1:n

    C(i,j)=C(i,j)+aik*B(k,j);

    2

  • Lab 1 Edwin Callejas Pinto

    end

    end

    end

    case 6 %version outer product columna kji

    for k = 1:n

    for j=1:n

    bkj=B(k,j);

    for i = 1:n

    C(i,j)=C(i,j)+A(i,k)*bkj;

    end

    end

    end

    otherwise

    C=A*B;

    end %switch

    tp_ejec=toc;

    if nargin

  • Lab 1 Edwin Callejas Pinto

    Retomando los valores iniciales de ncols = 100*[1,2,3,4,5,6];, es decir de 100hasta 600, para un caso particular se obtiene los siguientes resultados:

    0.0662 0.0651 0.0921 0.0941 0.0925 0.0979 0.0022

    0.5195 0.5198 0.7489 0.7323 0.7483 0.7435 0.0088

    1.7651 2.0277 2.9488 2.4572 2.9166 2.4883 0.0219

    4.4598 4.9600 7.5394 5.8426 7.5418 5.8981 0.0668

    8.5502 9.8255 17.0247 11.3513 16.7801 11.4755 0.1104

    16.1720 18.4805 29.8210 19.6858 29.8428 19.8160 0.1864

    cuyo grafico es:

    100 150 200 250 300 350 400 450 500 550 6000

    5

    10

    15

    20

    25

    30Grfico de comparacin de tiempos C = A * B

    ijkjikikjjkikijkjicmd MATLAB

    2. Para cada matriz dada u otra generada, calcular los autovalores y autovectoresy comprobar si genera suficientes autovectores para autovalores repetidos.

    Solucion.-

    A=rand(10);

    [V1,D1]=eig(A)

    B=pascal(10);

    [V2,D2]=eig(A)

    C=diag([1 2 3 3 3 5 10 -1 2]);

    [V3,D3]=eig(A)

    Lo que proporciona el resultado

    A =

    0.5822 0.5447 0.4046 0.6963 0.3477 0.7363 0.8217 0.7904 0.5144 0.5341

    0.5407 0.6473 0.4484 0.0938 0.1500 0.3947 0.4299 0.9493 0.8843 0.0900

    0.8699 0.5439 0.3658 0.5254 0.5861 0.6834 0.8878 0.3276 0.5880 0.1117

    4

  • Lab 1 Edwin Callejas Pinto

    0.2648 0.7210 0.7635 0.5303 0.2621 0.7040 0.3912 0.6713 0.1548 0.1363

    0.3181 0.5225 0.6279 0.8611 0.0445 0.4423 0.7691 0.4386 0.1999 0.6787

    0.1192 0.9937 0.7720 0.4849 0.7549 0.0196 0.3968 0.8335 0.4070 0.4952

    0.9398 0.2187 0.9329 0.3935 0.2428 0.3309 0.8085 0.7689 0.7487 0.1897

    0.6456 0.1058 0.9727 0.6714 0.4424 0.4243 0.7551 0.1673 0.8256 0.4950

    0.4795 0.1097 0.1920 0.7413 0.6878 0.2703 0.3774 0.8620 0.7900 0.1476

    0.6393 0.0636 0.1389 0.5201 0.3592 0.1971 0.2160 0.9899 0.3185 0.0550

    V1 =

    Columns 1 through 6

    -0.3700 + 0.0000i 0.0610 - 0.0218i 0.0610 + 0.0218i -0.1860 + 0.0000i 0.0978 + 0.3509i 0.0978 - 0.3509i

    -0.2933 + 0.0000i 0.5336 + 0.0000i 0.5336 + 0.0000i 0.0617 + 0.0000i -0.2559 + 0.0554i -0.2559 - 0.0554i

    -0.3484 + 0.0000i 0.0046 - 0.2371i 0.0046 + 0.2371i 0.0426 + 0.0000i 0.5035 + 0.0000i 0.5035 + 0.0000i

    -0.2891 + 0.0000i -0.2199 - 0.4114i -0.2199 + 0.4114i 0.0635 + 0.0000i -0.1307 - 0.0050i -0.1307 + 0.0050i

    -0.2993 + 0.0000i -0.1471 - 0.1420i -0.1471 + 0.1420i -0.5054 + 0.0000i -0.0536 + 0.3823i -0.0536 - 0.3823i

    -0.3195 + 0.0000i 0.0844 - 0.1610i 0.0844 + 0.1610i 0.2216 + 0.0000i -0.0074 + 0.1152i -0.0074 - 0.1152i

    -0.3603 + 0.0000i 0.1001 + 0.1113i 0.1001 - 0.1113i 0.0693 + 0.0000i -0.3067 - 0.2849i -0.3067 + 0.2849i

    -0.3422 + 0.0000i -0.1448 + 0.1731i -0.1448 - 0.1731i -0.4467 + 0.0000i 0.0623 - 0.4069i 0.0623 + 0.4069i

    -0.2885 + 0.0000i -0.1012 + 0.4311i -0.1012 - 0.4311i 0.3540 + 0.0000i 0.0734 + 0.0255i 0.0734 - 0.0255i

    -0.2240 + 0.0000i -0.1239 + 0.2787i -0.1239 - 0.2787i 0.5671 + 0.0000i -0.1215 + 0.0151i -0.1215 - 0.0151i

    Columns 7 through 10

    0.3802 + 0.1639i 0.3802 - 0.1639i -0.0279 + 0.0000i 0.4355 + 0.0000i

    0.2714 + 0.1305i 0.2714 - 0.1305i 0.3559 + 0.0000i 0.1326 + 0.0000i

    0.0550 - 0.1289i 0.0550 + 0.1289i -0.1269 + 0.0000i -0.1343 + 0.0000i

    0.3116 + 0.2249i 0.3116 - 0.2249i 0.3642 + 0.0000i -0.0481 + 0.0000i

    -0.0124 - 0.2722i -0.0124 + 0.2722i -0.1039 + 0.0000i 0.0317 + 0.0000i

    -0.6274 + 0.0000i -0.6274 + 0.0000i 0.2203 + 0.0000i 0.1845 + 0.0000i

    -0.1350 - 0.0671i -0.1350 + 0.0671i -0.7036 + 0.0000i -0.6515 + 0.0000i

    -0.2536 - 0.0849i -0.2536 + 0.0849i -0.1588 + 0.0000i -0.0734 + 0.0000i

    -0.0175 + 0.0504i -0.0175 - 0.0504i 0.3793 + 0.0000i -0.0104 + 0.0000i

    0.0073 - 0.0745i 0.0073 + 0.0745i -0.0163 + 0.0000i 0.5544 + 0.0000i

    D1 =

    Columns 1 through 6

    5.1121 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

    0.0000 + 0.0000i 0.3300 + 0.7064i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.3300 - 0.7064i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i -0.8767 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i -0.3918 + 0.5283i 0.0000 + 0.0000i

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i -0.3918 - 0.5283i

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

    Columns 7 through 10

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

    -0.3482 + 0.2559i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i

    0.0000 + 0.0000i -0.3482 - 0.2559i 0.0000 + 0.0000i 0.0000 + 0.0000i

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.4063 + 0.0000i 0.0000 + 0.0000i

    0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.1888 + 0.0000i

    B =

    5

  • Lab 1 Edwin Callejas Pinto

    1 1 1 1 1 1 1 1 1 1

    1 2 3 4 5 6 7 8 9 10

    1 3 6 10 15 21 28 36 45 55

    1 4 10 20 35 56 84 120 165 220

    1 5 15 35 70 126 210 330 495 715

    1 6 21 56 126 252 462 792 1287 2002

    1 7 28 84 210 462 924 1716 3003 5005

    1 8 36 120 330 792 1716 3432 6435 11440

    1 9 45 165 495 1287 3003 6435 12870 24310

    1 10 55 220 715 2002 5005 11440 24310 48620

    V2 =

    0.0066 0.0385 0.1458 -0.4003 0.7240 0.5261 -0.1259 0.0149 -0.0010 0.0000

    -0.0538 -0.2125 -0.4778 0.5734 -0.0252 0.5444 -0.3063 0.0639 -0.0062 0.0002

    0.1965 0.4820 0.5010 0.0607 -0.3851 0.2829 -0.4676 0.1641 -0.0234 0.0012

    -0.4223 -0.5188 0.0488 -0.3974 -0.2144 -0.1026 -0.4848 0.3106 -0.0654 0.0046

    0.5870 0.1232 -0.4232 -0.1335 0.1792 -0.3262 -0.2748 0.4551 -0.1482 0.0145

    -0.5469 0.3562 0.0787 0.3297 0.2936 -0.1851 0.0996 0.4978 -0.2817 0.0392

    0.3413 -0.4742 0.3806 0.1503 -0.0514 0.1897 0.3736 0.3185 -0.4500 0.0951

    -0.1375 0.2790 -0.3795 -0.3941 -0.3223 0.2790 0.1951 -0.1148 -0.5710 0.2121

    0.0324 -0.0840 0.1495 0.2089 0.2321 -0.2783 -0.3996 -0.5050 -0.4305 0.4411

    -0.0034 0.0105 -0.0224 -0.0372 -0.0483 0.0664 0.1182 0.2184 0.4242 0.8658

    D2 =

    1.0e+04 *

    0.0000 0 0 0 0 0 0 0 0 0

    0 0.0000 0 0 0 0 0 0 0 0

    0 0 0.0000 0 0 0 0 0 0 0

    0 0 0 0.0000 0 0 0 0 0 0

    0 0 0 0 0.0001 0 0 0 0 0

    0 0 0 0 0 0.0002 0 0 0 0

    0 0 0 0 0 0 0.0010 0 0 0

    0 0 0 0 0 0 0 0.0095 0 0

    0 0 0 0 0 0 0 0 0.1628 0

    0 0 0 0 0 0 0 0 0 6.4461

    C =

    1 0 0 0 0 0 0 0 0

    0 2 0 0 0 0 0 0 0

    0 0 3 0 0 0 0 0 0

    0 0 0 3 0 0 0 0 0

    0 0 0 0 3 0 0 0 0

    0 0 0 0 0 5 0 0 0

    0 0 0 0 0 0 10 0 0

    0 0 0 0 0 0 0 -1 0

    0 0 0 0 0 0 0 0 2

    V3 =

    0 1 0 0 0 0 0 0 0

    0 0 1 0 0 0 0 0 0

    0 0 0 0 0 1 0 0 0

    0 0 0 0 0 0 1 0 0

    0 0 0 0 1 0 0 0 0

    0 0 0 0 0 0 0 1 0

    0 0 0 0 0 0 0 0 1

    1 0 0 0 0 0 0 0 0

    0 0 0 1 0 0 0 0 0

    D3 =

    6

  • Lab 1 Edwin Callejas Pinto

    -1 0 0 0 0 0 0 0 0

    0 1 0 0 0 0 0 0 0

    0 0 2 0 0 0 0 0 0

    0 0 0 2 0 0 0 0 0

    0 0 0 0 3 0 0 0 0

    0 0 0 0 0 3 0 0 0

    0 0 0 0 0 0 3 0 0

    0 0 0 0 0 0 0 5 0

    0 0 0 0 0 0 0 0 10

    De los resultados se puede observar que a pesar de que en ciertos casos, talescomo el ultimo que el autovalor = 2 tiene multiplidad 2 y el autovalor = 3tiene multiplicidad 3, la cantidad de autovectores corresponde al tamano de lamatriz, es decir los autovectores son linealmente independientes.

    3. Para cualquier matriz A calcule los autovalores de A y de AT.

    Solucion.- Aplicando los comandos

    clc

    clear all

    A=rand(10);

    [eig(A) eig(A)]

    se obtiene:

    5.2145 + 0.0000i 5.2145 + 0.0000i

    -1.1326 + 0.0000i -1.1326 + 0.0000i

    0.7957 + 0.2932i 0.7957 + 0.2932i

    0.7957 - 0.2932i 0.7957 - 0.2932i

    -0.1098 + 0.6297i -0.1098 + 0.6297i

    -0.1098 - 0.6297i -0.1098 - 0.6297i

    0.1692 + 0.3706i 0.1692 + 0.3706i

    0.1692 - 0.3706i 0.1692 - 0.3706i

    -0.1618 + 0.0000i -0.1618 + 0.0000i

    -0.4251 + 0.0000i -0.4251 + 0.0000i

    genera dos columnas en las que se puede observar los autovalores de la matriz Ay de su transpuesta, comparando ambos se observa que son los mismos.

    7

  • Lab 1 Edwin Callejas Pinto

    4. Verificar que los autovectores correspondientes a autovalores distintos son lineal-mente independientes.

    Solucion.- Para ello se construye el programa

    A=[2 0 0; 1 1 1;-1 1 1]

    [V,D]=eig(sym(A))

    cuyos resultados son:

    A =

    2 0 0

    1 1 1

    -1 1 1

    V =

    [ 0, 1, -1]

    [ -1, 1, 0]

    [ 1, 0, 1]

    D =

    [ 0, 0, 0]

    [ 0, 2, 0]

    [ 0, 0, 2]

    la independencia lineal se verifica mediante:

    a V1 + b V2 + c V3 = 0 a 01

    1

    + b11

    0

    + c10

    1

    = 0para lo cual necesariamente a = 0, b = 0 y c = 0.

    5. Genere una matriz simetrica que tenga autovalores repetidos y verifique la matriztiene n autovectores linealmente independientes.

    Solucion.- Se han realizado pruebas y general las matrices con vectores columna ofila ordenados mayores a 3, son simetricas y tienen autovalores repetidos, ademasgeneran autovectores linealmente independientes, por ejemplo:

    A=[0:4;1:5;2:6;3:7;4:8]

    [V,D]=eig((A))

    >>

    8

  • Lab 1 Edwin Callejas Pinto

    A =

    0 1 2 3 4

    1 2 3 4 5

    2 3 4 5 6

    3 4 5 6 7

    4 5 6 7 8

    V =

    0.7382 0.5759 0.2539 0.0620 0.2346

    0.4368 -0.7950 0.2477 -0.0809 0.3304

    0.1355 0.0465 -0.7926 -0.4118 0.4262

    -0.1659 -0.0116 -0.1736 0.8184 0.5220

    -0.4673 0.1842 0.4646 -0.3876 0.6178

    D =

    -2.2474 0 0 0 0

    0 0.0000 0 0 0

    0 0 0.0000 0 0

    0 0 0 0.0000 0

    0 0 0 0 22.2474

    para verificar se ha implementado el siguiente programa, el mismo muestra quela matriz es simetrica y tiene autovalores repetidos k = {0}k, donde k es el ordende repeticion y es de grado k = dim(A) 2

    n=7

    for i=1:n

    for j=1:n

    A(i,j)=i+j-1;

    end

    end

    A

    [V,D]=eig((A))

    >>

    n =

    7

    A =

    1 2 3 4 5 6 7

    2 3 4 5 6 7 8

    3 4 5 6 7 8 9

    4 5 6 7 8 9 10

    5 6 7 8 9 10 11

    6 7 8 9 10 11 12

    9

  • Lab 1 Edwin Callejas Pinto

    7 8 9 10 11 12 13

    V =

    0.6450 0.3788 0.5330 -0.2029 -0.1444 0.2148 0.2198

    0.4623 0.1948 -0.8025 0.1459 -0.0343 0.0997 0.2683

    0.2797 -0.8199 -0.0019 -0.3325 -0.1495 -0.1278 0.3168

    0.0970 -0.1734 0.2679 0.8486 0.1307 -0.1345 0.3653

    -0.0856 0.1164 0.0127 -0.2968 0.8399 -0.1189 0.4138

    -0.2683 0.3201 -0.0069 -0.1341 -0.4366 -0.6349 0.4623

    -0.4509 -0.0168 -0.0023 -0.0281 -0.2059 0.7016 0.5108

    D =

    -3.7179 0 0 0 0 0 0

    0 -0.0000 0 0 0 0 0

    0 0 -0.0000 0 0 0 0

    0 0 0 0.0000 0 0 0

    0 0 0 0 0.0000 0 0

    0 0 0 0 0 0.0000 0

    0 0 0 0 0 0 52.7179

    6. Generar matrices semejantes y comprobar que tienen los mismos autovalores ylos autovectores son transformados por la matriz de transicion de semejanza.

    Solucion.- Una matriz semejante a la matriz A se define mediante B = P1 A P, esdecir para que exista semejanza es suficiente que cualquier matriz sea inversible,en este caso la matriz P, tal como se muestra con el siguiente codigo, B es la matrizsemejante:

    clc

    clear all

    A=10*rand(5)

    P=10*rand(5);

    PI=inv(P);

    B=PI*A*P

    [VA,DA]=eig(A)

    [VB,DB]=eig(B)

    se obtiene:

    A =

    9.5163 4.2284 3.0145 6.6653 0.3260

    9.2033 5.4787 7.0110 1.7813 5.6120

    0.5268 9.4274 6.6634 1.2801 8.8187

    7.3786 4.1774 5.3913 9.9908 6.6918

    2.6912 9.8305 6.9811 1.7112 1.9043

    B =

    -41.4827 -35.7251 -37.8470 -42.7950 -31.3732

    10

  • Lab 1 Edwin Callejas Pinto

    -66.4118 -40.2534 -50.9012 -62.9559 -25.8552

    4.4905 0.1533 -3.2697 0.4686 2.7521

    90.0798 66.2238 78.2393 87.2882 57.9315

    45.4264 34.3489 35.1604 42.6034 31.2711

    VA =

    -0.4029 -0.2771 -0.0600 -0.6511 -0.6670

    -0.4521 0.4736 -0.4237 -0.2540 -0.0694

    -0.4174 0.1749 0.8259 0.6406 0.6644

    -0.5646 0.2776 0.0177 0.2578 -0.1731

    -0.3745 -0.7689 -0.3668 0.1862 0.2809

    DA =

    27.0268 0 0 0 0

    0 -5.3857 0 0 0

    0 0 -2.1007 0 0

    0 0 0 5.4679 0

    0 0 0 0 8.5452

    VB =

    -0.3869 0.1816 0.3635 -0.2997 -0.3032

    -0.4296 0.7019 0.5219 -0.5350 -0.7057

    -0.0165 0.0063 0.0806 -0.2215 0.0628

    0.7380 -0.6604 -0.7282 0.6935 0.4950

    0.3475 -0.1957 -0.2423 0.3066 0.4014

    DB =

    27.0268 0 0 0 0

    0 8.5452 0 0 0

    0 0 5.4679 0 0

    0 0 0 -2.1007 0

    0 0 0 0 -5.3857

    se puede observar los autovalores generados son los mismos, aunque vienen des-ordenados uno respecto del otro. Otras propiedades que cumplen las matricessimetricas son:

    Poseen el mismo rango.

    Tienen el mismo determinante.

    Tienen la misma traza.

    Tienen los mismos valores propios (aunque los vectores propios, en general,seran distintos).

    Tienen el mismo polinomio caracterstico.

    Tienen el mismo polinomio mnimo.

    7. Transcribir el programa que genera los crculos de Gerschgorin para diferentesmatrices. Se aconseja que el archivo se llame circulogersh.m, luego dada unamatriz A, ejecute circulogersh(A).

    11

  • Lab 1 Edwin Callejas Pinto

    Solucion.- Transcribiendo el programa:

    %---------------Pregunta7

    function circulogersh(A)

    n=size(A);

    if n(1) ~= n(2)

    error(Solo matrices cuadradas);

    else

    n=n(1);

    circler=zeros(n,201);

    circlec=circler;

    end

    center=diag(A);

    radiic=sum(abs(A-diag(center)));

    radiir=sum(abs(A-diag(center)));

    one=ones(1,201);

    cosisin=exp(1i*(0:pi/100:2*pi));

    figure(1);

    title(Circulos por Filas);

    xlabel(Re); ylabel(Im); figure(2);

    title(Circulos por Columnas);

    xlabel(Re); ylabel(Im);

    for k=1:n

    circlec(k,:)=center(k)*one + radiic(k)*cosisin;

    circler(k,:)=center(k)*one + radiir(k)*cosisin;

    figure(1);

    patch(real(circler(k,:)),imag(circler(k,:)),cyan);

    hold on;

    plot(real(circler(k,:)),imag(circler(k,:)),k-,...

    real(circler(k,:)),imag(circler(k,:)),kx);

    figure(2);

    patch(real(circlec(k,:)),imag(circlec(k,:)),green);

    hold on;

    plot(real(circlec(k,:)),imag(circlec(k,:)),k-,...

    real(circlec(k,:)),imag(circlec(k,:)),kx);

    end

    for k=1:n

    figure(1);

    plot(real(circler(k,:)),imag(circler(k,:)),k-,...

    real(circler(k,:)),imag(circler(k,:)),kx);

    figure(2);

    plot(real(circlec(k,:)),imag(circlec(k,:)),k-,...

    real(circlec(k,:)),imag(circlec(k,:)),kx);

    end

    figure(1); axis image; hold off;

    12

  • Lab 1 Edwin Callejas Pinto

    figure(2); axis image; hold off

    return

    y luego se ejecuta desde el promp, o tambien se hace otro programa, que tenga lalnea de comando

    clc

    A=[30 1 2 3;4 15 -4 -2; -1 0 3 5; -3 5 0 -1];

    circulogersh(A)

    cuyo resultado muestra el siguiente grafico:

    10 5 0 5 10 15 20 25 30 3510

    5

    0

    5

    10Circulos por Columnas

    Re

    Im

    5 0 5 10 15 20 25 30 3510

    5

    0

    5

    10Circulos por Filas

    ReIm

    Figura 2: Crculos de Gershgorin.

    Otro ejemplo para una matriz simetrica sera:

    A=[0:3;1:4;2:5;3:6]

    circulogersh(A)

    cuyo grafico es:

    5 0 5 10 15

    10

    5

    0

    5

    10

    Circulos por Columnas

    Re

    Im

    5 0 5 10 15

    10

    5

    0

    5

    10

    Circulos por Filas

    Re

    Im

    Figura 3: Crculos de Gershgorin para matrices simetricas con autovalores repetidos.

    13