import numpy as np
import matplotlib.pyplot as pltrow_num = int(input("input nums of row:"))# 用0初始化矩阵
mat = [[0] * row_num] * row_num# 字符串分割成数字并转为复数类型
for i in range(row_num):mat[i] = input().split()mat[i] = [complex(j) for j in mat[i]]mat = np.array(mat)
print(mat)# 画圆采样
sample = np.linspace(-np.pi, np.pi, 100)# 保持x,y轴刻度比例相同
plt.axis('equal')for i in range(row_num):# 行盖尔圆半径r1 = sum(abs(mat[i, :])) - abs(mat[i][i])# 列盖尔圆半径r2 = sum(abs(mat[:, i])) - abs(mat[i][i])# 盖尔圆圆心point_x = mat[i][i].realpoint_y = mat[i][i].imag# 绘制圆心plt.plot(point_x, point_y, '.b')# 绘制圆(填充)plt.fill(r1 * np.sin(sample) + point_x,r1 * np.cos(sample) + point_y,'b',alpha=0.2)plt.fill(r2 * np.sin(sample) + point_x,r2 * np.cos(sample) + point_y,'g',alpha=0.2)# 标注plt.text(point_x,point_y,"G" + str(i + 1),fontdict={'size': '12','color': 'k'})# 绘制特征值点
[e, _] = np.linalg.eig(mat)
for i in e:plt.plot(i.real, i.imag, 'ro')ax = plt.gca()
# 去掉默认边框刻度
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')# 设置x与y轴的位置
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))# 指定x与y轴刻度数字位置
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')plt.show()

输入test:

输出:

红点为特征值点,浅绿色是列盖尔圆,浅紫色是行盖尔圆,蓝点为圆心。

画圆部分,matplotlib 中没有直接根据圆心和半径画圆的方法,所以用采样(微分)的方法来绘制

import numpy as np
import matplotlib.pyplot as pltsample = np.linspace(-np.pi, np.pi, 100)
# 半径为 r,圆心为(point_x, point_y)
plt.fill(r * np.sin(sample) + point_x, r * np.cos(sample) + point_y)

对 list 中元素类型进行统一转换,可一句搞定

l = ["12", "2.333", 23]
l1 = [float(i) for i in l]

python3 绘制盖尔圆相关推荐

  1. 【Matlab 控制】绘制盖尔圆

    Matlab 绘制盖尔圆 关于盖尔圆的原理可参考文章: [控制]盖尔圆盘定理 [数理知识]第4章-赋范线性空间与矩阵范数-<矩阵论>方保镕 根据输入矩阵,绘制盖尔圆 clear; clc; ...

  2. python绘制盖尔圆并做特征值的隔离

    本程序并非智能到直接运行隔离出所有特征值,而是需要高抬贵手,手动调节变换矩阵D的参数,以实现特征值的隔离.若期待直接找到能特征值隔离的D矩阵参数变化范围,怕足下要失望了,鄙人暂没有做到那一步,一是因为 ...

  3. 使用Python+pillow绘制矩阵盖尔圆

    盖尔圆是矩阵特征值估计时常用的方法之一,其定义为: 与盖尔圆有关的两个定理为: 定理1:矩阵A的所有特征值均落在它的所有盖尔圆的并集之中. 定理2:将矩阵A的全体盖尔圆的并集按连通部分分成若干个子集, ...

  4. html 怎么在画布上绘制一个圆,javascript – 如何在画布上画一个圆圈?

    我使用 javascript和画布绘制一个数学设计的尺度(用于测量扭矩,包括牛顿米和英尺磅).我已经用三角法来定位我的刻度,自然地用弧线绘制电弧线.问题来了,当他们需要排队,但有一些奇怪的失真.然后我 ...

  5. 矩阵论复习笔记:盖尔圆的隔离技巧

    1.Gerschgorin定理 对于复数矩阵C={cij}n×nC=\{c_{ij}\}_{n\times n}C={cij​}n×n​,其矩阵特征值满足: ∣λ−ckk∣≤∑j≠k∣ckj∣∣λ−c ...

  6. python3绘制皮卡丘

    前两篇博文我们实现了 python3绘制哆啦A梦以及python3绘制小猪佩奇 python3绘制哆啦A梦 python3绘制小猪佩奇 现在我们任然使用python的turtle库来绘制皮卡丘 具体代 ...

  7. 【矩阵论】特征值的估计(上下界和盖尔圆)

    前言:为什么不直接求特征值而是去估计特征值? 当我们遇到的不是书本上的3阶或4阶矩阵,而是高阶矩阵时(如图像中的256×256),我们再使用特征方程det⁡(λI−A)=0\det(\lambda I ...

  8. MFC绘制实心圆(点)、坐标轴及参数显示、直线

    MFC绘制实心圆(点).坐标轴及参数显示.直线 在myTestview.cpp中绘制,通过以下步骤,可以实现基本绘制操作,如果搭积木般,函数实现还需自己构造. void CmyTestView::Dr ...

  9. html5_画布绘制绘制实心圆和空心圆

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

最新文章

  1. 十大经典排序算法Python版实现(附动图演示)
  2. java xml文件内容替换_java读取xml文件并转换成对象,并进行修改
  3. POJ3104 Drying [二分]
  4. PHP框架 one 1.6.0 发布
  5. 转:3d max 2013 安装教程,凭着一种互联网精神提供给广大朋友
  6. Java熔断框架有哪些_降级熔断框架 Hystrix 源码解析:滑动窗口统计
  7. ASP.NET Core 中间件分类
  8. MySQL数据查询新人须知
  9. VC++实现混合静态分裂视窗的方法
  10. react 拆分组件于组件
  11. 计算机基础第五章知识,计算机基础第5次作业-第五章-Powerpoint知识题
  12. C语言—— 符号函数
  13. axios 上传文件 封装_axios 封装上传文件的请求方法
  14. 【Analytics Kit】【FAQ】集成华为分析服务问题集合 SDK初始化失败/应用调试界面没有数据/常见错误提示
  15. 台式计算机检测不到无线网卡,台式机检测不到无线网卡怎么办
  16. 为什么手机里的小爱音响app里搜不到家里的小爱音箱_水哥岁末诚意奉献:基于米家App的家庭智能安全方案详解...
  17. 计算机专业就业尴尬问题,计算机专业就业困境初探
  18. 1、cell 内容最大长度 The maximum length of cell contents (text) is 32767 characters
  19. 《以太坊攻略》,小白如何逆袭成为技术大咖?要学的全在这里了
  20. puppeteer在linux上模拟浏览器截图——截取微信公众号文章全文实例

热门文章

  1. krita源码提供了Tarball 和KDE Repository两套源码的区别
  2. Proe5 修改默认模板单位为公制
  3. 京东物流实时风控实践
  4. Python尝试爬取同花顺A股行情
  5. 计算机域账号更改添加
  6. python画出K线图及技术指标
  7. 瑞芯微RK3328硬件设计指南
  8. 《苏菲的世界》——读书笔记
  9. Android开发-蓝牙遥控器(字符串形式发送)-应用例程
  10. Word文档中最后一页底端的表格制作