en mi proyecto me he enfrentado a una fórmula que no puedo resolver. una versión muy simplificada y básica de esa ecuación puede ser reescrita como $ax + e^x = k$ por favor ayúdame a resolver esta ecuación de cálculo elemental.
Respuestas
¿Demasiados anuncios? myfunc=@(a,x,k) a*x+exp(x)-k;
>> a=1;
>> k=3;
>> fun=@(x) myfunc(a,x,k);
>> x=fzero(fun,0.1,k)
x =
0.7921
para diferentes valores de a y k, se obtiene una raíz diferente. o puede utilizar la función W de Lambert. gracias, espero que le ayude.
no es necesario utilizar parámetros adicionales $k$ simplemente hacer así
x=fzero(fun,0.1)
x =
0.7921
Su ecuación puede resolverse con la función Lambert $W$ función o el más simple de un solo valor Wright $\omega$ función :
$$x = \frac{k}{a} - W_0(e^{k/a}/a) = \frac{k}{a} - \omega(k/a-\ln a)$$
para $x, a, k \in \mathbb{Z}$ y donde $W_0$ es la rama superior (principal) de la curva de Lambert $W$ función. Como sugiere @Raskolnikov, todavía no son "elementales", aunque habrá soluciones exactas para combinaciones particulares de $a$ y $k$ (por ejemplo $x = 0$ para $a = k = 1$ ). Véase mi respuesta a esta pregunta reciente para algunas sugerencias sobre el cálculo de soluciones numéricas. El documento de 2012 de Lawrence, Corless y Jeffrey es una lectura recomendada si al final necesitas implementar un método para evaluar el Wright $\omega$ función en parte o en todo el plano complejo.
Sea $x=\log(u)$ entonces $$ ax+e^x=k\mapsto a\log(u)+u=k $$ dividir por $a$ exponenciar, dividir por $a$ otra vez: $$ (u/a)e^{u/a}=\frac1ae^{k/a} $$ En Función Lambert-W es la inversa de $x\mapsto xe^x$ por lo que obtenemos $$ \begin{align} u/a&=\mathrm{W}\left(\frac1ae^{k/a}\right)\\ u&=a\mathrm{W}\left(\frac1ae^{k/a}\right)\\ x&=\log\left(a\mathrm{W}\left(\frac1ae^{k/a}\right)\right)\\ &=\frac ka-\mathrm{W}\left(\frac1ae^{k/a}\right) \end{align} $$ La última fórmula se deduce de $u=e^x$ y $ax+u=k$
Iteración numérica para Lambert W
Utilizando el método de Newton, obtenemos la iteración $$ w_{\text{new}}=\frac{xe^{-w}+w^2}{w+1} $$ Valores iniciales
Para la rama principal cuando $-1/e\le x\lt0$ y cuando $0\le x\le10$ Utilice $w=0$ . En $x\gt10$ Utilice $w=\log(x)-\log(\log(x))$ .
Para la rama no principal, si $x\in[-1/e,-0.1]$ Utilice $w=-2$ y si $x\in(-0.1,0)$ Utilice $w=\log(-x)-\log(-\log(-x))$ .