如何在不使用 numpy.linspace() 的情况下在 Python 中创建线性函数
How to create linear function in Python without using numpy.linspace()
所以,我试图在 python 中创建一个线性函数,例如 y = x
,而不使用 numpy.linspace()
。在我的理解中 numpy.linspace() 给你一个不连续的数组。但是为了
我试图找到 y = x
和一个无法解析的函数的交集(如图中所示)。
这是我的代码 我不知道如何定义 x。有没有办法表达 y 有一个简单的连续函数?
import random as rd
import numpy as np
a = int(input('choose a :'))
eps = abs(float(input('choose epsilon :')))
b = 0
c = 10
x = ??????
y1 = x
y2 = a*(1 - np.exp(x))
z = abs(y2 - y1)
while z > eps :
d = rd.uniform(b,c)
c = d
print(c)
print(y1 , y2 )
因为你的函数是可微分的,你可以使用 scipy.optimize
实现的 Newton-Raphson method:
>>> scipy.optimize.newton(lambda x: 1.5*(1-math.exp(-x))-x, 10)
0.8742174657987283
计算误差非常简单:
>>> def f(x): return 1.5*(1-math.exp(-x))
...
>>> x = scipy.optimize.newton(lambda x: f(x)-x, 10)
>>> error = f(x) - x
>>> x, error
(0.8742174657987283, -4.218847493575595e-15)
我有点武断地选择 x0=10 作为起点。此处需要注意确保该方法不会收敛到 x=0,在您的示例中它也是一个根。
我不是数学家所以也许你可以在这里解释一下,但我不明白你所说的 "unsolvable analytically".
到底是什么意思
这就是同情 returns:
from sympy import *
x = symbols('x')
a = 1.5
y1 = x
y2 = a*(1 - exp(-x))
print(solve(y1-y2))
# [0.874217465798717]
“Not solvable analytically”表示没有closed-form解。换句话说,你不能在纸上写下一个单一的答案,比如数字或方程式,然后把它圈起来,然后说“这就是我的答案”。对于某些数学问题,这样做是不可能的。相反,对于这类问题,我们可以通过 运行 模拟并获取值或解决方案的图表来近似解决方案。
所以,我试图在 python 中创建一个线性函数,例如 y = x
,而不使用 numpy.linspace()
。在我的理解中 numpy.linspace() 给你一个不连续的数组。但是为了
我试图找到 y = x
和一个无法解析的函数的交集(如图中所示)。
这是我的代码 我不知道如何定义 x。有没有办法表达 y 有一个简单的连续函数?
import random as rd
import numpy as np
a = int(input('choose a :'))
eps = abs(float(input('choose epsilon :')))
b = 0
c = 10
x = ??????
y1 = x
y2 = a*(1 - np.exp(x))
z = abs(y2 - y1)
while z > eps :
d = rd.uniform(b,c)
c = d
print(c)
print(y1 , y2 )
因为你的函数是可微分的,你可以使用 scipy.optimize
实现的 Newton-Raphson method:
>>> scipy.optimize.newton(lambda x: 1.5*(1-math.exp(-x))-x, 10)
0.8742174657987283
计算误差非常简单:
>>> def f(x): return 1.5*(1-math.exp(-x))
...
>>> x = scipy.optimize.newton(lambda x: f(x)-x, 10)
>>> error = f(x) - x
>>> x, error
(0.8742174657987283, -4.218847493575595e-15)
我有点武断地选择 x0=10 作为起点。此处需要注意确保该方法不会收敛到 x=0,在您的示例中它也是一个根。
我不是数学家所以也许你可以在这里解释一下,但我不明白你所说的 "unsolvable analytically".
到底是什么意思这就是同情 returns:
from sympy import *
x = symbols('x')
a = 1.5
y1 = x
y2 = a*(1 - exp(-x))
print(solve(y1-y2))
# [0.874217465798717]
“Not solvable analytically”表示没有closed-form解。换句话说,你不能在纸上写下一个单一的答案,比如数字或方程式,然后把它圈起来,然后说“这就是我的答案”。对于某些数学问题,这样做是不可能的。相反,对于这类问题,我们可以通过 运行 模拟并获取值或解决方案的图表来近似解决方案。