python - 如何通过 sympy 在 python 中计算对数方程的解
问题描述
我尝试使用 sympy 通过这个公式找到穆迪图 (f) 的摩擦系数
from sympy import *
f = Symbol ('f')
Re = 3000
relative_roughness=0.1
solve(f**(-0.5)+2*log(relative_roughness/3.7+2.51/(Re*(f)**(0.5)), 10), domain=S.Reals)
但是程序以错误 NotImplementedError: multiple generators [log(1/37 + 836666666666667/(1000000000000000000 sqrt(f))), sqrt(f)] 结束方程 2 log(1/37 + 836666666666667/( 1000000000000000000*sqrt(f)))/log(10) + 1/sqrt(f)
它在 relative_roughness=0 时有效,但我需要超过 0。请帮忙。如何解决?
解决方案
使用 sympy 的nsolve
功能。这里有一个初步的猜测0.1
:
In [29]: eq = f**(-0.5)+2*log(relative_roughness/3.7+2.51/(Re*(f)**(0.5)), 10)
In [30]: nsolve(eq, f, 0.1)
Out[30]: 0.106947153535321
推荐阅读
- android - 安排重复的闹钟
- java - android studio上的程序不能在旧设备(android 6及以下)上运行,有指定最低版本的功能吗?,
- python - 如何在 Django 中的多对多关系中向数据透视表添加更多列?
- python - 获取文本并删除所有标签,但保留标题和粗体的标签
- excel - excel + vba + 编译错误 AutoOpenRequiredWorkbook (myFileNameToOpen, myFilePath) 无法弄清楚为什么我会收到此错误
- javascript - 基于具有唯一值的数组创建多个动态选择过滤器以过滤 Vue.js 中的另一个数组
- sql - 使用 SQL Server:如何使用基于 sum 的选择条件
- python - 每列中唯一值的切割表
- c# - 如何在基于部署环境的静态类中加载 appsettings.json,以便我可以在其他类库中使用
- javascript - 为什么我需要 setTimeout.bind(window)