迭代计算

数值计算实验报告

匿名 (未验证) 提交于 2019-12-03 00:18:01
问题描述 算法分析 高斯消去法 高斯消去法的过程与我们平常进行人工解方程组的过程相似,即通过行倍加,倍乘变换,行交换等将矩阵化简为一个三角矩阵再进行求解。化简过程通过每次迭代计算出乘数因子进行化简。以第一次迭代为例: 第一次迭代的乘数因子为 m i 1 = a ( 1 ) i 1 / a ( 1 ) 11 m i 1 = a i 1 ( 1 ) / a 11 ( 1 ) 再将 -m_{ij} 乘第一个方程,加到第i个方程。 这就是我们常说的行倍加变换。 需要注意的是,每次迭代的每行首位都不能为0,因此常常需要交换行 列主元消去法 列主元消去法和高斯消去法特别相似,只是增加了一些交换行的步骤。每次选取列主元中最大的一个,判断它是否为零,若非零,与第一行(相对于子矩阵)进行交换。 数值实验 高斯消去法 编写函数guasselim进行高斯消元,并计算其运行时间。迭代过程通过循环完成 for k = 1 :n- 1 ; %compute the kth column of M m(k+ 1 :n ) = A (k+ 1 :n ,k)/ A (k,k); %compute % An = Mn * An - 1 %bn= Mn *bn- 1 ; for i=k+ 1 :n A (i,k+ 1 :n ) = A (i,k+ 1 :n )-m(i)* A (k,k+ 1 :n ); end ; b

蚁群算法求解TSP问题

匿名 (未验证) 提交于 2019-12-03 00:17:01
一、蚁群算法简介 二、TSP问题(旅行商问题) 1、构建图:构建图与问题描述图是一致的,成份的集合C对应着点的集合(即:C=N),连接对应着边的集合(即L=A),且每一条边都带有一个权值,代表点i和j之间的距离。 2、约束条件:所有城市都要被访问且每个城市最多只能被访问一次。 3、信息素和启发式信息:TSP 问题中的信息素表示在访问城市i后直接访问城市j的期望度。启发式信息值一般与城市i和城市j的距离成反比。 4、解的构建:每只蚂蚁最初都从随机选择出来的城市出发,每经过一次迭代蚂蚁就向解中添加一个还没有访问过的城市。当所有城市都被蚂蚁访问过之后,解的构建就终止。 随机生成50个城市进行测试,初始蚂蚁数量为50,信息素重要程度因子alpha = 1,启发函数重要程度因子beta = 5,信息素挥发因子rho = 0.1, 最大迭代次数为150 %% 旅行商问题(TSP)优化 %% 清空环境变量 clear all clc %% 导入数据 %load citys_data.mat city = ceil(rand(50,2) * 5000) load city.mat %% 计算城市间相互距离 fprintf('Computing Distance Matrix... \n'); n = size(city,1); D = zeros(n,n); for i = 1:n for j =

数字化转型

匿名 (未验证) 提交于 2019-12-03 00:17:01
华为在大量的行业数字化转型实践中,摸索积累了一套应用数字化技术实现业务成功的战略框架与战术工具集,对业务可持续创新发展的最佳实践做了总结,提炼了其中具有通用性,普世性的关键点与要素,形成了一份简单可操作的方法。 坚持1个企业级转型战略,把数字化转型定位为企业级战略,全局谋划。 创造2个保障条件,通过组织转型激发组织活力,通过文化转型创造转型氛围。 贯彻3个核心原则,将核心原则贯穿转型全过程,保证转型始终在正确的轨道上。 推进4个关键行动,通过4个关键行动控制转型关键过程。 1、坚持一个企业级转型战略 数字化战略是指筹划和指导数字化转型的方略,在高层次上面向未来,在方向性全局性的重大决策问题上选择做什么,不做什么,数字化转型是企业长期的战略,是企业总体战略的重要组成部分,以战略为指引开展数字化转型,将大大提高转型成功的概率。 数字化转型战略主要包括: 数字化转型愿景和使命。 数字化转型定位目标。 新商业模式,新业务模式,新管理模式。 数字化转型战略举措。 2、创造2个保障条件,组织机制和文化氛围 组织机制保障 数字化转型需要强有力的组织来支撑,需要明确转型的责任主体,制定合理的组织业务目标,配套考核和激励机制,优化组织间协作流程。 在适合的条件下,还应成立专门的数字化转型组织,协调业务和技术部门,建立数字世界和物理世界间的协同运作机制,统筹推进数字化转型落地。 创造文化氛围

点读系列《流畅的python》

我只是一个虾纸丫 提交于 2019-12-03 00:13:41
第1章 python数据模型 python的写法是由背后的魔法方法实现的,比如obj[key],解释器实际调用的是obj.__getitem__(key) 作者把魔法方法叫做双下方法,因为有两个下划线 collections.namedtuple可以用来创建只有少数属性但没有方法的对象,比如 beer_card = Card('7', 'diamonds') random.choice和random.sample不一样的地方在于,sample是返回序列,choice是返回元素,当使用sample(list, 1)[0]的时候,不如直接使用choice(list) deck[12::13],是指先抽出索引是12的那张牌,然后每向后数13张牌拿一张 实现了__getitem__让对象变得可迭代了 sorted(deck, key=spades_high) python sorted函数 suit_values = dict(spades=3, hearts=2, diamonds=1, clubs=0) def spades_high(card): rank_value = FrenchDeck.ranks.index(card.rank) return rank_value * len(suit_values) + suit_values[card.suit]

Spark RDD 算子总结

大城市里の小女人 提交于 2019-12-03 00:10:19
Spark算子总结 算子分类 Transformation(转换) 转换算子 含义 map(func) 返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成 filter(func) 过滤, 返回一个新的RDD, 该RDD由经过func函数计算后返回值为true的输入元素组成 flatMap(func) 类似于map,但是每一个输入元素可以被映射为0或多个输出元素(所以func应该返回一个序列,而不是单一元素) mapPartitions(func) 类似于map,但独立地在RDD的每一个分片上运行,因此在类型为T的RDD上运行时,func的函数类型必须是Iterator[T] => Iterator[U] mapPartitionsWithIndex(func) 类似于mapPartitions,但func带有一个整数参数表示分片的索引值,因此在类型为T的RDD上运行时,func的函数类型必须是(Int, Interator[T]) => Iterator[U] union(otherDataset) 对源RDD和参数RDD求并集后返回一个新的RDD Intersection(otherDataset) 对源RDD和参数RDD求交集后返回一个新的RDD groupByKey([numTasks]) 在一个(K,V)的RDD上调用,返回一个(K, Iterator

第十一章-CRF的奇妙之处

匿名 (未验证) 提交于 2019-12-03 00:09:02
上篇中,我们了解到HMM的相关知识,并且知道HMM属于概率有向图模型,接下来,让我们一起学习总结概率无向图模型――条件随机场(Conditional Random Field, CRF)。 概率无向图模型又称为马尔可夫随机场,是一个可以由无向图表示的联合概率分布。 \[ 设有联合概率分布P(Y),由无向图G=(V,E)表示,V表示结点集合,E表示边集合,\\在图G中,结点表示随机变量,边表示随机变量之间的依赖关系。如果联合概率分布P(Y)满足\\成对、局部或全局马尔可夫性,就称此联合概率分布为概率无向图模型或马尔可夫随机场。 \] 如图上,一共有10个结点(即10个随机变量),任意找两个没有边直接连接的结点,假设有两个随机变量(u,v)没有边相连,剩下的8个随机变量记为O,当给定O时,u和v是独立的,即P(u,v|O)=P(u|O)P(v|O)。 如上图,任意找一个结点v,与v有边相连的所有结点记为W,其余5个结点记为O,当给定W时,v和O是独立的,即P(v,O|W)=P(v|W)P(O|W)。 一共有8个结点(即有8个随机变量),取中间两个随机变量记为集合C,当将集合C从图中删掉之后,那么剩下的6个结点分成了两个部分,可知左边的3个结点和右边的3个结点没有任何边将它们相连,当给定C时,A和B是独立的,即P(A,B|C)=P(A|C)P(B|C)。 注意

【算法】模拟退火算法解决TSP问题的matlab实现

匿名 (未验证) 提交于 2019-12-02 23:59:01
前言 模拟退火算法(SA)是较为常见的现代优化算法之一,常用于旅行商(TSP)问题中。数学建模里学生们常常使用该算法,甚至是为了使用这个算法而使用这个算法,让评委老师们审美疲劳。评委老师明确表明使用所谓"神算法"(神经网络,模拟退火,遗传算法等等)而过于牵强者拿不了高分(见: http://special.univs.cn/service/jianmo/sxjmyw/2018/1128/1187951_15.shtml )。希望大家不要觉得它名词高级就认为它能吸引评委眼睛,评委毕竟是教授,不可能被几个名词唬住。 但是呢,我们是学生,不能因为它不能随便用就不学习它,而在编程的环节中,我们亦有收获,况且爱因斯坦也是从一加一开始学起的,所以模拟退火算法还是有学习的必要的。话说的有点多,下面进入主题。 算法框架 模拟退火算法可以粗分为以下几个步骤:   1,初始温度的设置、初始解的生成、设置每个温度下产生解的个数。   2,产生新解。   3,计算代价函数差。   4,Metropolis判别。(别被名词吓住,形式上是很简单的一个原则)   5,降温。   6,判断温度是否小于一个给定量。是,则结束;否,则跳转到第2步。 以下对每个步骤做详细的解释。 初始温度的设置、初始解的生成、设置每个温度下产生解的个数:    初始温度与降温系数、终止温度息息相关,它们仨决定了迭代的次数,具体公式为

【吴恩达课后作业】Course 1-神经网络与深度学习-第四周编程作业

匿名 (未验证) 提交于 2019-12-02 23:43:01
前言 一、整个流程 1、处理数据 先下载数据: 点这里 ,提取码:smqn 提取数据,得到训练集,训练标签,测试集,测试标签,类别 import numpy as np import h5py #与H5文件中存储的数据集进行交互的常用软件包 def load_dataset(): train_dataset=h5py.File('datasets/train_catvnoncat.h5','r') train_set_x_orig=np.array(train_dataset['train_set_x'][:]) train_set_y_orig=np.array(train_dataset['train_set_y'][:]) test_dataset=h5py.File('datasets/test_catvnoncat.h5','r') test_set_x_orig=np.array(test_dataset['test_set_x'][:]) test_set_y_orig=np.array(test_dataset['test_set_y'][:]) classes=np.array(test_dataset['list_classes'][:]) train_set_y_orig=train_set_y_orig.reshape((1,train_set_y_orig

TENSORFLOW中基本概念的理解

匿名 (未验证) 提交于 2019-12-02 23:41:02
TensorFlow 里的一些概念并不straightforward。在这里我把自己经过这一段时间学习的一些理解写下来,希望能帮到其他人。 TensorFlow是一个机器学习框架,它的程序结构当然也都是为深度学习准备的。我们先来看一下一个机器学习的过程是怎样的: 问题 用户要解决一个多分类问题。以一个普通神经网络为例,用户有100条样本记录,每个记录里有8个feature,f1-f8。最终要把一个样本分为3个分类中的一个c1-c3。 网络设计 首先我们要做的就是设计这个网络,比如我们的输入层有8个神经元,一个隐藏层,有16个神经元,一个输出层有3个神经元。 输出层我们用给一个softmax来做分类。 定义loss函数 我们用交叉熵函数来定义loss 减少loss 我们通过loss值来计算梯度,并进行反向传播 多次迭代 正向传播->计算loss->减少loss(反向传播)->正向传播->计算loss->减少loss(反向传播)->… 这样经过多次迭代后loss越来越小。模型越来越精确。 下边我们来看TensorFlow是怎么帮助我们完成上边工作的。我们在进行正向传播是,计算的数字其实来自两个部分, 1. 输入的数据,以及每层的输出。他们每次迭代都是独立的。 2. 网络的参数,每次迭代他们都是在上次迭代的基础上根据梯度和学习率不断做修正的。 Variable

MLP手写数字识别实现

匿名 (未验证) 提交于 2019-12-02 23:36:01
手写数字识别是一个多分类问题,共有10个分类,每个手写数字图像的类别标签是0~9中的其中一个数。例如下面这三张图片的标签分别是0,1,2。 任务:利用sklearn来训练一个简单的全连接神经网络,即多层感知机(Multilayer perceptron,MLP)用于识别数据集DBRHD的手写数字。 DBRHD数据集的每个图片是一个由0或1组成的32*32的文本矩阵; 多层感知机的输入为图片矩阵展开的1*1024个神经元。 MLP输出:“one-hot vectors” 一个one-hot向量除了某一位的数字是1以外其余各维度数字都是0。 图片标签将表示成一个只有在第n维度(从0开始)数字为1的10维向量。比如,标签0将表示成[1,0,0,0,0,0,0,0,0,0,0]。即,MLP输出层具有10个神经元。 MLP的输入与输出层,中间隐藏层的层数和神经元的个数设置都将影响该MLP模型的准确率。 在本实例中,我们只设置一层隐藏层,在后续实验中比较该隐藏层神经元个数为50、100、200时的MLP效果。 本实例的构建步骤如下: 步骤1:建立工程并导入sklearn包 步骤2:加载训练数据 步骤3:训练神经网络 步骤4:测试集评价 1)创建sklearnBP.py文件 2)在sklearnBP.py文件中导入sklearn相关包 import numpy as np #导入numpy工具包