theano程序(一)

本文介绍Theano库的基础使用方法,包括定义符号变量、创建函数、矩阵运算等,并通过实例演示如何利用Theano进行简单的数学计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面内容是此文章的练习,加了一些注释和个人理解,不当之处请赐教:



#导入头文件
import numpy as np
import matplotlib.pyplot as plt
import theano

import theano.tensor as T
from theano import pp



#symbolic variables 符号变量   编写theano代码更像写数学公式

foo = T.scalar('foo')  #定义一个标量
bar = foo**2     #另一个变量
bar2 = foo**3
print type(bar)   #class 'theano.tensor.var.TensorVariable'

print bar.type   #TensorType(float64, scalar)

print pp(bar)  # pretty print funtion  ,bar的内容: (foo ** TensorConstant{3})

#为了进行计算,需要定义符号函数
#funtion函数的第一个参数表示输入,输入部分必须用中括号[ ]括起,如果输入参数为空,则用[]表示
#第2个参数为函数表达式,如果有多个表达式则也必须用中括号[ ]括起,若只有一个则可括可不括
#这里定义了两个函数
f1 = theano.function([foo],[bar])  
f2 = theano.function([foo],bar2)
print f1(3)

#替代函数的另一个方式:用符号变量的eval方法
#eval的参数是字典形式,用“键-值对”表示
print bar.eval({foo:3})

#python定义的函数也可以给theano的变量赋值
def square(x):
    return x**2
bar = square(foo)
print 'hi:'
print bar.eval({foo:3})
print square(2)


#theano中有向量、矩阵等类型,在这些类型上可能施加各种操作

A = T.matrix('A')
x = T.vector('x')
b = T.vector('b')
y = T.dot(A,x) + b  #与其他矩阵语言不同,NumPy中的乘法运算符*按元素逐个计算,矩阵乘法可以使用dot函数
z = T.sum(A**2)    #这里先求A各元素平方,然后各列相加。
# theano.function函数可以同时做多个计算任务,如下所示同时计算y和z两个表示式。下面第3个参数b设置了默认值
linear_mix = theano.function([A,x,theano.Param(b,default=np.array([0,0]))],[y,z])
#下面的参数分别对应A,x,b
print linear_mix(np.array([[1,2,3],[4,5,6]]),np.array([1,2,3]),np.array([4,5])) 

#下面只有两个实参:A和x. 则第3个形参b使用默认的值 

print linear_mix(np.array([[1,2,3],[4,5,6]]),np.array([1,2,3]))


内容概要:本文探讨了在MATLAB/SimuLink环境中进行三相STATCOM(静态同步补偿器)无功补偿的技术方法及其仿真过程。首先介绍了STATCOM作为无功功率补偿装置的工作原理,即通过调节交流电压的幅值和相位来实现对无功功率的有效管理。接着详细描述了在MATLAB/SimuLink平台下构建三相STATCOM仿真模型的具体步骤,包括创建新模型、添加电源和负载、搭建主电路、加入控制模块以及完成整个电路的连接。然后阐述了如何通过对STATCOM输出电压和电流的精确调控达到无功补偿的目的,并展示了具体的仿真结果分析方法,如读取仿真数据、提取关键参数、绘制无功功率变化曲线等。最后指出,这种技术可以显著提升电力系统的稳定性与电能质量,展望了STATCOM在未来的发展潜力。 适合人群:电气工程专业学生、从事电力系统相关工作的技术人员、希望深入了解无功补偿技术的研究人员。 使用场景及目标:适用于想要掌握MATLAB/SimuLink软件操作技能的人群,特别是那些专注于电力电子领域的从业者;旨在帮助他们学会建立复杂的电力系统仿真模型,以便更好地理解STATCOM的工作机制,进而优化实际项目中的无功补偿方案。 其他说明:文中提供的实例代码可以帮助读者直观地了解如何从零开始构建个完整的三相STATCOM仿真环境,并通过图形化的方式展示无功补偿的效果,便于进步的学习与研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值