python笔记--使用solve算出黄金分割比近似值

参考百度百科: 黄金分割是指将整体一分为二,较大部分与整体部分的比值等于较小部分与较大部分的比值,其比值约为0.618。 这个比例被公认为是最能引起美感的比例,因此被称为黄金分割。

因此列方程: (设x为较大部分, y为较小部分)

其中: x + y = 1

使用python解决问题时要先下载sympy模块, 复制下面命令进入cmd中

py -m pip install sympy -i https://pypi.douban.com/simple/

若要提示你更新pip包, 复制下面命令:

py -m pip install --upgrade pip -i https://pypi.douban.com/simple/

 

1. 导入sympy模块与math模块:

import sympy as sp
from math import *

2. 定义两个符

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python牛顿-拉夫森迭代算法可以用于电力系统潮流计算。以下是步骤: 1. 定义节点导纳矩阵Y和节点电压U。 2. 假设某个节点的电压U为未知量,其他节点的电压已知。 3. 根据潮流方程,将该节点的功率平衡方程表示为非线性方程组。 4. 对该方程组进行牛顿-拉夫森迭代,求解出该节点的电压U。 5. 将求解出的电压U代入到其他节点的功率平衡方程中,继续迭代求解电压。 6. 直到所有节点的电压都满足一定的精度要求为止。 Python代码示例: ```python # 定义节点导纳矩阵和电压 Y = np.array([[0.5-0.5j, -0.2+0.1j, -0.3+0.4j], [-0.2+0.1j, 0.3-0.3j, -0.1+0.2j], [-0.3+0.4j, -0.1+0.2j, 0.4-0.6j]]) U = np.array([1.0+0.0j, 0.9+0.3j, 0.8+0.6j]) # 定义某个节点的功率平衡方程 def f(U): P = 0.5*(U[0]*np.conj(Y[0,0]*U[0]+Y[0,1]*U[1]+Y[0,2]*U[2])) Q = 0.5*(U[0]*np.conj(Y[1,0]*U[0]+Y[1,1]*U[1]+Y[1,2]*U[2])) return np.array([P-0.6, Q-0.2]) # 初始电压值 U0 = np.array([0.9+0.3j]) # 牛顿-拉夫森迭代 for i in range(10): J = np.array([[U0[0]*np.conj(Y[0,0])+0.5*(np.conj(Y[0,1])*U[1]+np.conj(Y[0,2])*U[2]), 0.5*U0[0]*np.conj(Y[0,0]), 0.5*U0[0]*np.conj(Y[0,0])], [U0[0]*np.conj(Y[1,0])+0.5*(np.conj(Y[1,1])*U[1]+np.conj(Y[1,2])*U[2]), 0.5*U0[0]*np.conj(Y[1,0]), 0.5*U0[0]*np.conj(Y[1,0])]]) delta_U = np.linalg.solve(J, -f(U0)) U0 = U0 + delta_U # 打印最终电压值 print(U0) ``` 这是一个简单的例子,实际的电力系统潮流计算可能涉及到更复杂的方程和更多的节点。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值