Учитывая две функции, я хочу найти касательную линию (и) между ними.Формула / система для этого, если даны две произвольные функции f (x) и g (x), имеет вид:
f(x)-x*f'(x)-g(y)+y*g'(y)=0
f'(x)-g'(y)=0
, где при решении, скажем, x = a и y = b, дает две точки:(a, f (a)) и (b, g (b)), чтобы можно было провести линию между ними.Я хочу найти касательную линию между x ^ -x и ее первой производной (x ^ -x (-ln (x) -1)).Код, который я имею:
import sympy as sp
import numpy as np
import scipy.optimize as opt
n=1
s1,s2=sp.symbols('s1 s2')
def f1(z1):
return z1**-z1
def myFunction(z):
x=z[0]
y=z[1]
q1=f1(s1)-s1*sp.diff(f1(s1),s1,n)-
sp.diff(f1(s2),s2,n)+s2*sp.diff(f1(s2),s2,n+1)
q2=sp.diff(f1(s1),s1,n)-sp.diff(f1(s2),s2,n+1)
F=np.empty((2))
F[0]=abs(q1.subs([(s1,x),(s2,y)]))
F[1]=abs(q2.subs([(s1,x),(s2,y)]))
return F
zGuess=np.array([0.6,1.3])
z=opt.fsolve(myFunction, zGuess)
print(z)
Решение должно быть x = 0.59515 и y = 1.37866, но там написано: «Невозможно вычислить 1-ю производную по 0,6».Я не знаю, как заставить его ввести начальные значения для решения системы после взятия производной по x и y соответственно.Как бы я получил решение для этих значений при возможности изменить n, чтобы касательная линия также могла быть найдена между первой производной и второй производной и так далее?Вот картинка, показывающая, как это выглядит.