Как я могу решить экспоненциальное уравнение в Maxima CAS - PullRequest
0 голосов
/ 09 мая 2018

У меня есть функция в Maxima CAS:

f(t) := (2*exp(2*%i*%pi*t) - exp(4*%pi*t*%i))/4;

здесь:

  • t - действительное число от 0 до 1
  • функция должна давать точку на границе основного кардиоида множества Мандельброта

Как я могу решить уравнение:

eq1:c=f(t);

(где c - комплексное число)

Решение не работает

solve( eq1,t);

результат - пустой список

[]

Результат этого уравнения должен давать действительное число t (внутренний угол или число вращения) из комплексной точки c

РЕДАКТИРОВАТЬ: Спасибо за комментарий @ JosehDoggie

Я могу нарисовать исходное уравнение, используя:

load(draw)$
f(t):=(2*exp(%i*t) - exp(2*t*%i))/4;
  draw2d(
  key="main cardioid",
  nticks=200,
  parametric( 0.5*cos(t) - 0.25*cos(2*t), 0.5*sin(t) - 0.25*sin(2*t), t,0,2*%pi),
  title="main cardioid of M set "
)$

или

draw2d(polar(abs(exp(t*%i)/2 -exp(2*t*%i)/4),t,0,2*%pi));

Аналогичное изображение (кардиоидное) здесь

Edit2:

(%i1) eq1:c = exp(%pi*t*%i)/2 -  exp(2*%pi*t*%i)/4;


                               %i %pi t     2 %i %pi t
                             %e           %e
(%o1)                    c = ---------- - ------------
                                 2             4
(%i2) solve(eq1,t);
              %i log(1 - sqrt(1 - 4 c))        %i log(sqrt(1 - 4 c) + 1)
 (%o2) [t = - -------------------------, t = - -------------------------]
                     %pi                              %pi

Итак:

f1(c):=float(cabs( -  %i* log(1 - sqrt(1 - 4* c))/%pi));
f2(c):=float(cabs( -  %i* log(1 + sqrt(1 - 4* c))/%pi));

но результаты не очень хорошие.

Редактировать 3:

Может быть, я должен начать с этого. У меня есть:

  • комплексные числа c (= граница кардиоида)
  • действительные числа t (от 0 до 1 или иногда от 0 до 2 * pi)
  • функция f, которая вычисляет c из t: c = f (t)

Я хочу найти функцию, которая вычисляет t из c: t = g (c)

значения тестирования:

  • t = 0, c = 1/4
  • t = 1/2, c = -3 / 4
  • t = 1/3, c = c = -0,125 + 0,649519052838329 *% i
  • t = 2/5, c = -0,481762745781211 + 0,531656755220025 *% i
  • t = 0,118033988749895 с = 0,346828007859920 + 0,088702386914555 *% i
  • t = 0,618033988749895, с = -0,390540870218399 -0,586787907346969 *% i
  • t = 0,718033988749895 c = 0,130349371041523 -0,587693986342220 *% i

1 Ответ

0 голосов
/ 10 мая 2018
load("to_poly_solve") $

e: (2*exp(2*%i*%pi*t) - exp(4*%pi*t*%i))/4 - c $
s: to_poly_solve(e, t)                         $
s: maplist(lambda([e], rhs(first(e))), s)      $ /* unpack arguments of %union */
ratexpand(s);

Выходы

             %i log(1 - sqrt(1 - 4 c))        %i log(sqrt(1 - 4 c) + 1)
(%o6) [%z7 - -------------------------, %z9 - -------------------------]
                       2 %pi                            2 %pi
...