首页 > 解决方案 > 用 scipy 进行数值求解

问题描述

我有一些使用 Python 编程的经验,但在科学应用方面没有。我知道 scipy 提供了一个fsolve (func, initial_guess)数值求解方程的函数。但是,我不知道如何用我的方程式来实现它。使用 TI CAS 软件,它看起来像这样,而“0.196”当然是一个变化的值: n求解(1/3tan(100/73.85t)+1/3t^(2)-1/10t=0.196,t)

标签: python-3.xscipysolver

解决方案


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]

推荐阅读