program Vectors_Matrices implicit none integer, parameter :: N = 100 !Never changes real :: V(N), W(N), A(N,N), P(N) !P es el producto de A por V integer :: i,j real :: S,T,H,G !Estas son las variables que voy a igualar a cero para hacer los sumatorios !Este es el producto escalar de dos vectores V= [(1./i**2 , i=1,N)] W= [((-1)**(i+1)/(2*i-1.) , i=1,N)] write (*,*) 'Dot product is=' , dot_product (V,W) S=0. do i=1,N S= S + V(i) * W (i) end do write (*,*) 'My dot product is=' , S !Ahora vamos con la parte de multiplicar una matriz por un vector y hacer el sumatorio del resultado !Primero definimos la matriz do i=1,N do j=1,N A(i,j) = (i/real (N)) ** j end do end do !Segundo hacemos la multiplicacion de vector por matriz do i=1,N P(i)= 0 do j=1,N P(i)= P(i) + A(i,j) * V(j) end do end do !Por ultimo hago el sumatorio de las componentes del vector S= 0. do i=1,N S= S + P(i) end do write (*,*) 'El sumatorio de las componentes del vector que resulta de multiplicar A y V es' , S !Vamos a hallar la traza de la matriz T= 0. do i=1,N T=T + A(i,i) end do write (*,*) 'La traza de la matriz A es' , T !Suma de las componentes del vector W mayores que cero H= 0. do i=1,N if (W(i) > 0.) then H=H + W(i) else end if end do write (*,*) 'El sumatorio de las componentes mayores que cero de W es' , H !Producto escalar del vector V y la columna N de la matriz A G= 0. do i=1,N G=G + V(i) * A (i,N) end do write (*,*) 'El producto escalar del vector V y la columna N de A es' , G end program