首页 > 其他分享 >fortran求矩阵特征值

fortran求矩阵特征值

时间:2023-09-21 09:35:50浏览次数:36  
标签:特征值 end 矩阵 u0 fortran m1

拿来即用的求矩阵特征值的fortran程序

摘自宋叶志《Fortran科学计算与工程》

! -----------------------------------------------
! input: A(n,n)为输入的n*n的矩阵,tol是迭代停止的阈值
! output: namda为主特征值,u(n)为输入矩阵的n个特征值
! -----------------------------------------------
      subroutine solveqr(A,n,namda,u,tol)
      implicit real*8 (a-h,o-z)
      integer :: n,i,k
      real*8 :: A(n,n),u(n),u0(n),v(n),m0,m1,namda
      u0(:) = 1.0d0  !迭代的初始向量
      u     = u0
      m0    = 0.0d0
      do k  = 1,500  !设置最大迭代次数
        v = matmul(A,u)
        call max_rou(v,n,m1)
        u = v/m1
        if(dabs(m1-m0)<tol) exit
        m0 = m1
      end do
      namda = m1
      end subroutine
      
      subroutine max_rou(r,n,ma)
      implicit real*8 (a-h,o-z)
      integer :: n,i,k
      real*8 :: r(n),ma
      ma = dabs(r(1))
      do i = 2,n
        if(dabs(r(i))>ma) then
          ma = dabs(r(i))
          k = i
        end if
      end do
      ma = r(k)
      end subroutine

标签:特征值,end,矩阵,u0,fortran,m1
From: https://www.cnblogs.com/liangxuran/p/17719101.html

相关文章

  • springboot中配置类型转换,设置开启矩阵变量
    2023-09-17packagecom.hh.springboot05.config;importcom.hh.springboot05.bean.Pet;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.core.convert.converter.Conver......
  • python系列教程215——列表解析与矩阵
    声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值......
  • 【设计模式】访问者模式Visitor:实现对象级别的矩阵结构
    (目录)访问者模式:一个原理看似很简单,但是理解起来有一定难度,使用场景相对较少的行为型模式:它能将算法与其所作⽤的对象隔离开来假如有这样⼀位⾮常希望赢得新客户的资深保险代理⼈。他可以拜访街区中的每栋楼,尝试向每个路⼈推销保险。所以,根据⼤楼内组织类型的不同,他可......
  • 矩阵之稀疏矩阵
    说明  稀疏矩阵是一种特殊类型的矩阵,其中大多数元素都为零。相反,稠密矩阵是大多数元素都非零的矩阵。  稀疏矩阵在很多实际应用中非常常见,因为许多现实世界的数据都具有高度的稀疏性,意味着只有少数几个元素是非零的,而其他元素都是零。使用稀疏矩阵可以有效地节省存储空......
  • 【代码随想录算法训练营第二天】977.有序数组的平方、209.长度最小的子数组 、59.螺旋
    Day2-数组2023.9.15Leetcode977有序数组的平方给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。初解我还是不能想到暴力解法之外的,对某个问题的最优复杂度也没有概念。就算提示我是用指针,我也想不到思路。现在我知......
  • 稀疏矩阵
    1、稀疏矩阵的定义:如果一个二维数组中有很多无效的数据,那么这些无效的数据就会导致大量的磁盘空间浪费,这个时候我们就可以考虑使用稀疏矩阵来存放有效数据,将原数组压缩成一个行数为有效数据之和加一,列数为三的二维数据,==其中这个二维数据的第一列表示有效数据在原数组中存放的行......
  • MATLAB:基本的数学运算与矩阵运算
    学习一门技术最好的方式就是阅读官方文档,你可以查看MATLAB官方文档MATLAB基本语法变量MATLAB中的变量不需要声明。使用=为变量赋值。变量名与大多数编程语言相同,MATLAB中的变量名是大小写敏感的。变量名只能由[0~9,a~z,A~Z,_]组成,且变量名不能以数字开头。保留变量......
  • 杨氏矩阵
    题目描述:有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。根据题目要求我们可以利用二维数组实现一个杨氏矩阵。如下图所示,我们可以看到矩阵每行从左到右递增,从上到下递增。在这样的二维数组中去查找一个数是否存在,我......
  • 透视投影矩阵的生成
    为何最新的OpenGL看不到gluPerspectiveAPI最新版本的OpenGL(OpenGL3.1及更高版本)中取消了对GLU(OpenGLUtilityLibrary)的支持。GLU是一个辅助库,提供了一些便捷的函数和工具函数,用于简化OpenGL编程过程。其中包括gluPerspective函数,用于生成透视投影矩阵。OpenGL的设计哲学......
  • 协方差矩阵
     概念协方差(Covariance)在概率论和统计学中用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。其实简单来讲,协方差就是衡量两个变量相关性的变量。当协方差为正时,两个变量呈正相关关系(同增同减);当协方差为负时,两个变量呈负相关关系(一增一减)。......