参考百度百科: 黄金分割是指将整体一分为二,较大部分与整体部分的比值等于较小部分与较大部分的比值,其比值约为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. 定义两个符号变量x, y

x, y = sp.symbols('x y')

3. 定义方程组: (要注意转换成 '表达式=0' 的形式, 我们取左边的表达式参与运算即可)

fx = x / (x + y) - y / x
fx2 = x + y - 1

4. 使用solve解方程:

result_list = sp.solve([fx, fx2], [x, y])

5. 我们打印看看结果是什么:

print(result_list)

结果如下:

[(-1/2 + sqrt(5)/2, 3/2 - sqrt(5)/2), (-sqrt(5)/2 - 1/2, sqrt(5)/2 + 3/2)]

其中对于每一个元组来说左边部分为x的值, 右边部分为y的值, 我们尝试使用math模块把他转换成小数形式:

x1 = eval(str(result_list[0][0]))
y1 = eval(str(result_list[0][1]))
x2 = eval(str(result_list[1][0]))
y2 = eval(str(result_list[1][1]))

输出打印结果:

print(f'x1={x1}')
print(f'y1={y1}')
print(f'x2={x2}')
print(f'y2={y2}')

结果为:

x1=0.6180339887498949
y1=0.3819660112501051
x2=-1.618033988749895
y2=2.618033988749895

又因为x与y都大于0, 所以要增加下面代码:

result = [(x1, y1), (x2, y2)]
for x, y in result:if x > 0 and y > 0:print('满足条件的值:')print(f'x={x}')print(f'y={y}')
最终结果为:
满足条件的值:
x=0.6180339887498949
y=0.3819660112501051

6. 所用代码如下:

import sympy as sp
from math import *x, y = sp.symbols('x y')
fx = x / (x + y) - y / x
fx2 = x + y - 1
result_list = sp.solve([fx, fx2], [x, y])
print(result_list)
x1 = eval(str(result_list[0][0]))
y1 = eval(str(result_list[0][1]))
x2 = eval(str(result_list[1][0]))
y2 = eval(str(result_list[1][1]))
print(f'x1={x1}')
print(f'y1={y1}')
print(f'x2={x2}')
print(f'y2={y2}')
result = [(x1, y1), (x2, y2)]
for x, y in result:if x > 0 and y > 0:print('满足条件的值:')print(f'x={x}')print(f'y={y}')

我是刚刚学习的, 所以思路可能就显得非常乱, 请多多包含-_-

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

  1. python写一个表白程序_用Python写一个能算出自己年龄的小程序

    用Python写一个能算出自己年龄的小程序. 其实我连我今年多少岁都不知道,最近看到了python的datetime库里面有很多好用的方法,于是就写了这样一个程序作为练习,然后又写了这样一篇文章来梳理 ...

  2. 如何用python计算年龄_用Python写一个能算出自己年龄的小程序

    用Python写一个能算出自己年龄的小程序. 其实我连我今年多少岁都不知道,最近看到了python的datetime库里面有很多好用的方法,于是就写了这样一个程序作为练习,然后又写了这样一篇文章来梳理 ...

  3. Python筛选法(算出十亿之内所有的质数之和)

    其实别人写的挺好的了....直接上链接吧http://blog.csdn.net/power721/article/details/8216619 转载于:https://www.cnblogs.co ...

  4. python 估值模型_利用RFM模型建模,并通过聚类分析、分类,分别算出8中不同的价值会员...

    RFM-Clustering 利用RFM模型建模,并通过聚类分析.分类,分别算出8中不同的价值会员 RFM模型构建会员价值标签 R:最近一次消费(Recency) F:消费频率(Frequency) ...

  5. python 实现ip分配_Python实现根据IP地址和子网掩码算出网段的方法

    本文实例讲述了Python实现根据IP地址和子网掩码算出网段的方法.分享给大家供大家参考.具体如下: 该代码在Linux环境2.6.6python版本测试通过! #!/usr/bin/env pyth ...

  6. python图像识别车票_警惕啊,不要随便发车票照片了,用Python可以算出了你的身份证号码!...

    原标题:警惕啊,不要随便发车票照片了,用Python可以算出了你的身份证号码! 为了一杯奶茶. 事情的经过是这样的: 我的同事李大伟最近出差去了. 昨晚睡觉前翻了翻朋友圈, 就跟他愉快地 互怼交流了起 ...

  7. 用python实现时间的动态(动态时钟)+ 算出某年某月星期几的所有日期

    一个玩得好的朋友突然大晚上的给我布置作业,吓得我精神抖擞.他的原话是: 感觉发现新大陆了,利用小海龟画的,上次玩海龟已经是几个月之前的事情了 https://blog.csdn.net/hanhanw ...

  8. 怎么用python算单价和总价_怎样用EXCEL表格自动算出数量单价总金额

    展开全部 日常用EXCEL表格自动算出数量单2113价的总金额,5261需要用到EXCEL里面的公式,具体操作4102步骤如下: 1.创建1653一个EXCEL表格,在表格上输入有关于"数量 ...

  9. python笔记: 生成器

    元素按照某种算法推算出来,我们在循环的过程中不断推算出后续的元素 不必创建完整的list,从而节省了大量的空间 这种一边循环一遍计算的机制,称之为生成器generator 1 列表生成器 把列表生成式 ...

最新文章

  1. random类的使用
  2. 《百面机器学习》笔记-特征工程相关面试题
  3. 成为DBA的10条规则
  4. mysql 织梦 索引_Mysql索引详解 建立索引的优势劣势以及索引规范
  5. mysql router测试_MySQL 主从复制配置 + MySQL Router 部署使用测试
  6. thymeleaf th:if 案例
  7. 百度地图滚轮缩放,所在点偏移问题
  8. u盘启动 联想一体机_联想Y430pAT-ISE(H)U盘安装Win7系统教程
  9. 三层BP神经网络的python实现
  10. php无限极 left right,php无限极分类实现的两种解决方法
  11. SAP License:MM-采购订单migo,101收货,有三种方式冲销,可以使库存减少,有何不同?
  12. poj 3261 Milk Patterns
  13. 8.2、磁盘、目录和文件计算
  14. JDBC中的Statement和PreparedStatement的差别
  15. SkinSharp使用方法
  16. Python基础之文件和数据格式化
  17. unity粒子编辑器详解
  18. echarts树形结构实现组织架构图
  19. 随手写程序-t检验计算置信区间
  20. BeanFactory not initialized or already closed - call ‘refresh‘ before accessing beans via the Applic

热门文章

  1. java小光棍数_小光棍数 - NYNU_ACM - 博客园
  2. 新津李老八の博客之集合(1)
  3. C#编程实践:将输入的单词用下划线连接起来(学习笔记)
  4. 黑马程序员Java零基础视频教程_下部(P52-P134)
  5. 比较Excel数据透视图中的年度数据
  6. flask vue 文件流的方式下载word
  7. Flask 文件上传与下载
  8. arcgis栅格计算器python教程_利用Python实现ARCGIS中栅格计算器的简单功能
  9. ERROR 10004
  10. 线程安全第一期○CSA乐观锁