python-3.x - 用 scipy 进行数值求解
问题描述
我有一些使用 Python 编程的经验,但在科学应用方面没有。我知道 scipy 提供了一个fsolve (func, initial_guess)
数值求解方程的函数。但是,我不知道如何用我的方程式来实现它。使用 TI CAS 软件,它看起来像这样,而“0.196”当然是一个变化的值:
解决方案
从scipy 文档来看,它似乎相当简单,只需func(x) = 0
先将方程重新排列为预期的格式。
1/3.0*np.tan(100/73.85*t)+1/3.0*pow(t,2)-1/10.0*t - 0.196
from scipy.optimize import fsolve
import numpy as np
def func(t,k):
return 1/3.0*np.tan(100/73.85*t)+1/3.0*pow(t,2)-1/10.0*t - k
k = 0.196
root = fsolve(func, 1, args=(k))
print(root)
# [0.37653542]
推荐阅读
- shake-build-system - 摇动构建而不为每个输入文件生成文件
- python-3.x - 如果重心已知,如何沿 Z 方向在 3D 空间中以特定角度旋转(顺时针或逆时针)点?
- javascript - const fs = require("fs") 在 Node js 上无法正常工作
- javascript - 使用 Javascript 删除类后,如何为背景图像设置动画?
- javascript - 导航器窗口中是否加载了“隐藏”显示中的元素?
- amazon-web-services - AWS ASG 冷却期和运行状况检查宽限期有什么区别?
- bigdata - 如何访问hdfs中嵌套目录结构中的文件?
- python - yaml 将字典作为字符串加载,在 jinja 模板中没有引号和括号
- ruby - 为什么ruby语言中哈希的重复键不返回错误?
- excel - 在重复 ID 中找到更低的价格