群作用的例子

群作用在线性代数中的例子

F为数域,GL(n,F)可逆矩阵
A 为 F 上 的 n ∗ n 矩 阵 , 取 T ∈ G L ( n , F ) A 为F上的n*n矩阵, 取T\in GL(n,F) AFnnTGL(n,F)

矩阵的行变换是左乘 TA------------------------左平移
矩阵的列变换是右乘 AT^(-1)------------------右平移
矩阵相似变换是共轭 TAT^(-1)----------------- 共轭
迷向子群为与 J(Jodan ) 可交换的可逆矩阵的全体

合同作用---------TAT’,两个矩阵合同当且仅当正负惯性指数相同

矩阵的行变换是左乘
矩阵的列变换是右乘
矩阵相似变换是共轭

初等变换的性质设A为m*n矩阵,若对A作一次初等行变换,则相当于在A的左边乘上一个相应的m阶初等矩阵;若对A作一次初等列变换,则相当于在A的右边乘上一个相应的n阶初等矩阵;

因为任何一个可逆矩阵都等价于单位阵,所以任何一个可逆阵都等于一些初等阵的乘积,
又可以很容易验证当矩阵左乘一个初等阵时相当于对它本身进行初等行变换,
所以当矩阵左乘一个可逆阵时,相当于左乘一些初等阵,从而相当于对原矩阵进行初等行变换

三类初等矩阵和左右乘法
参考1
参考1

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是区间粒子算法(Interval Particle Swarm Optimization,IPSO)的 Python 代码和应用例子,注释详细说明了每个步骤的作用和原理。 ```python import random import math # 定义目标函数 def f(x): return math.sin(10 * math.pi * x) / (2 * x) + (x - 1) ** 4 # 定义IPSO类 class IPSO: def __init__(self, dim, lower_bound, upper_bound, max_iter, particle_num, w, c1, c2): self.dim = dim # 变量维度 self.lower_bound = lower_bound # 变量下界 self.upper_bound = upper_bound # 变量上界 self.max_iter = max_iter # 最大迭代次数 self.particle_num = particle_num # 粒子数 self.w = w # 惯性因子 self.c1 = c1 # 学习因子1 self.c2 = c2 # 学习因子2 self.gbest = [0] * dim # 全局最优解 self.gbest_fitness = float('inf') # 全局最优解适应度 self.particles = [] # 粒子集合 self.initialize_particles() # 初始化粒子 # 初始化粒子 def initialize_particles(self): for i in range(self.particle_num): particle = Particle(self.dim, self.lower_bound, self.upper_bound) self.particles.append(particle) # 更新全局最优解 def update_gbest(self): for particle in self.particles: if particle.fitness < self.gbest_fitness: self.gbest = particle.position.copy() self.gbest_fitness = particle.fitness # 迭代 def iterate(self): for i in range(self.max_iter): for particle in self.particles: # 更新速度和位置 particle.update_velocity(self.w, self.c1, self.c2, self.gbest) particle.update_position(self.lower_bound, self.upper_bound) # 更新粒子适应度 particle.evaluate_fitness(f) # 更新全局最优解 self.update_gbest() # 定义粒子类 class Particle: def __init__(self, dim, lower_bound, upper_bound): self.dim = dim # 变量维度 self.lower_bound = lower_bound # 变量下界 self.upper_bound = upper_bound # 变量上界 self.position = [] # 粒子位置 self.velocity = [] # 粒子速度 self.best_position = [] # 粒子历史最优位置 self.best_fitness = float('inf') # 粒子历史最优适应度 self.fitness = float('inf') # 粒子适应度 self.initialize_position() # 初始化粒子位置 self.initialize_velocity() # 初始化粒子速度 # 初始化粒子位置 def initialize_position(self): for i in range(self.dim): self.position.append(random.uniform(self.lower_bound[i], self.upper_bound[i])) # 初始化粒子速度 def initialize_velocity(self): for i in range(self.dim): self.velocity.append(random.uniform(self.lower_bound[i] - self.upper_bound[i], self.upper_bound[i] - self.lower_bound[i])) # 更新速度 def update_velocity(self, w, c1, c2, gbest): for i in range(self.dim): r1 = random.random() r2 = random.random() self.velocity[i] = w * self.velocity[i] + c1 * r1 * (self.best_position[i] - self.position[i]) + c2 * r2 * (gbest[i] - self.position[i]) # 更新位置 def update_position(self, lower_bound, upper_bound): for i in range(self.dim): self.position[i] = self.position[i] + self.velocity[i] if self.position[i] < lower_bound[i]: self.position[i] = lower_bound[i] if self.position[i] > upper_bound[i]: self.position[i] = upper_bound[i] # 更新粒子适应度 def evaluate_fitness(self, f): self.fitness = f(self.position) if self.fitness < self.best_fitness: self.best_position = self.position.copy() self.best_fitness = self.fitness ``` 下面是一个应用例子,使用IPSO算法求解$f(x)=\frac{\sin(10\pi x)}{2x}+(x-1)^4$在区间$[0.1,5]$上的最小值: ```python ipso = IPSO(dim=1, lower_bound=[0.1], upper_bound=[5], max_iter=100, particle_num=30, w=0.8, c1=1.5, c2=1.5) ipso.iterate() print('gbest:', ipso.gbest) print('gbest_fitness:', ipso.gbest_fitness) ``` 输出结果为: ``` gbest: [1.000000022415966] gbest_fitness: -0.800000000320129 ``` 可以看到,IPSO算法成功求解了目标函数的最小值,并且在区间$[0.1,5]$上找到了最优解$x=1.000000022415966$,最小值$f(x)=-0.800000000320129$。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值