python3 绘制盖尔圆
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 绘制盖尔圆相关推荐
- 【Matlab 控制】绘制盖尔圆
Matlab 绘制盖尔圆 关于盖尔圆的原理可参考文章: [控制]盖尔圆盘定理 [数理知识]第4章-赋范线性空间与矩阵范数-<矩阵论>方保镕 根据输入矩阵,绘制盖尔圆 clear; clc; ...
- python绘制盖尔圆并做特征值的隔离
本程序并非智能到直接运行隔离出所有特征值,而是需要高抬贵手,手动调节变换矩阵D的参数,以实现特征值的隔离.若期待直接找到能特征值隔离的D矩阵参数变化范围,怕足下要失望了,鄙人暂没有做到那一步,一是因为 ...
- 使用Python+pillow绘制矩阵盖尔圆
盖尔圆是矩阵特征值估计时常用的方法之一,其定义为: 与盖尔圆有关的两个定理为: 定理1:矩阵A的所有特征值均落在它的所有盖尔圆的并集之中. 定理2:将矩阵A的全体盖尔圆的并集按连通部分分成若干个子集, ...
- html 怎么在画布上绘制一个圆,javascript – 如何在画布上画一个圆圈?
我使用 javascript和画布绘制一个数学设计的尺度(用于测量扭矩,包括牛顿米和英尺磅).我已经用三角法来定位我的刻度,自然地用弧线绘制电弧线.问题来了,当他们需要排队,但有一些奇怪的失真.然后我 ...
- 矩阵论复习笔记:盖尔圆的隔离技巧
1.Gerschgorin定理 对于复数矩阵C={cij}n×nC=\{c_{ij}\}_{n\times n}C={cij}n×n,其矩阵特征值满足: ∣λ−ckk∣≤∑j≠k∣ckj∣∣λ−c ...
- python3绘制皮卡丘
前两篇博文我们实现了 python3绘制哆啦A梦以及python3绘制小猪佩奇 python3绘制哆啦A梦 python3绘制小猪佩奇 现在我们任然使用python的turtle库来绘制皮卡丘 具体代 ...
- 【矩阵论】特征值的估计(上下界和盖尔圆)
前言:为什么不直接求特征值而是去估计特征值? 当我们遇到的不是书本上的3阶或4阶矩阵,而是高阶矩阵时(如图像中的256×256),我们再使用特征方程det(λI−A)=0\det(\lambda I ...
- MFC绘制实心圆(点)、坐标轴及参数显示、直线
MFC绘制实心圆(点).坐标轴及参数显示.直线 在myTestview.cpp中绘制,通过以下步骤,可以实现基本绘制操作,如果搭积木般,函数实现还需自己构造. void CmyTestView::Dr ...
- html5_画布绘制绘制实心圆和空心圆
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
最新文章
- 十大经典排序算法Python版实现(附动图演示)
- java xml文件内容替换_java读取xml文件并转换成对象,并进行修改
- POJ3104 Drying [二分]
- PHP框架 one 1.6.0 发布
- 转:3d max 2013 安装教程,凭着一种互联网精神提供给广大朋友
- Java熔断框架有哪些_降级熔断框架 Hystrix 源码解析:滑动窗口统计
- ASP.NET Core 中间件分类
- MySQL数据查询新人须知
- VC++实现混合静态分裂视窗的方法
- react 拆分组件于组件
- 计算机基础第五章知识,计算机基础第5次作业-第五章-Powerpoint知识题
- C语言—— 符号函数
- axios 上传文件 封装_axios 封装上传文件的请求方法
- 【Analytics Kit】【FAQ】集成华为分析服务问题集合 SDK初始化失败/应用调试界面没有数据/常见错误提示
- 台式计算机检测不到无线网卡,台式机检测不到无线网卡怎么办
- 为什么手机里的小爱音响app里搜不到家里的小爱音箱_水哥岁末诚意奉献:基于米家App的家庭智能安全方案详解...
- 计算机专业就业尴尬问题,计算机专业就业困境初探
- 1、cell 内容最大长度 The maximum length of cell contents (text) is 32767 characters
- 《以太坊攻略》,小白如何逆袭成为技术大咖?要学的全在这里了
- puppeteer在linux上模拟浏览器截图——截取微信公众号文章全文实例