包括循环中导数的计算

Including the calculation of a derivative in a loop

我是 Python 的新手。我想编写一个包含导数和其他表达式的循环(到目前为止我只有导数)。

但是,我收到错误 "First variable cannot be a number: 1"。 我想我收到错误是因为 Python 试图将函数 wrt 区分为 t 但是由于范围函数已经指定了 t 的值。

我不知道如何解决这个错误(尤其是我认为函数和导数需要在循环中以用于我想编程的其他东西)。

## IMPORT PACKAGES
import numpy as np
import math
import sympy as sym
import matplotlib.pyplot as plt
from scipy import misc

## DEFINING THE SYMBOLS AND FUNCTIONS
t = sym.Symbol("t")
f_diff = sym.Function("f_diff")
f = sym.Function("f")

## LOOP WITH DERIVATIVE

for t in range (1,4,1):
    f = t**2
    f_diff = sym.diff(f, t)
    print(f_diff)

在您的第一个循环迭代中,您有效地调用了 sym.diff(1,1),这会引发相同的错误。这样做的原因是你只能根据符号来区分,而不是数字。

我不太确定你想做什么,但很可能潜在的问题是你在没有明显原因的情况下在循环头中重复使用变量 t。我怀疑你想做这样的事情:

for time in range (1,4,1):
    f = t**2
    f_diff = sym.diff(f, t)
    print(f_diff)

使用evalf

您传递的是变量值,而不是传递变量。如果你想找到某个值的导数,那么你可以使用 evalf

for i in range (1,4,1):
    f = t**2
    f_diff = sym.diff(f,t).evalf(subs={t: i})
    print(f_diff)

2.00000000000000
4.00000000000000
6.00000000000000