如何在Maxima CAS中求解指数方程 [英] How can I solve exponential equation in Maxima CAS
问题描述
我在Maxima CAS中具有功能:
f(t):=(2 * exp(2 *%i *%pi * t)-exp(4 *%pi * t *%i))/4;
>
此处:
- t是0到1之间的实数
- 函数应在Mandelbrot集的主要心形心的边界上给出一个点
如何求解方程式:
eq1:c = f(t);
(其中c是复数)
?
解决不起作用
solve(eq1,t);
结果为空列表
[]
该方程式的结果应给出复数点c的实数t(内角或旋转数)
感谢@JosehDoggie发表评论
我可以使用以下方法绘制初始方程:
加载(绘制)$f(t):=(2 * exp(%i * t)-exp(2 * t *%i))/4;draw2d(key ="main cardioid",nticks = 200,参数(0.5 * cos(t)-0.25 * cos(2 * t),0.5 * sin(t)-0.25 * sin(2 * t),t,0,2 *%pi),title ="M集的主心形")$
或
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)解决(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));
但是效果不好.
也许我应该从头开始.我有:
- 复数c(=心形的边界)
- 实数t(从0到1,有时从0到2 * pi)
- 从t计算c的函数f:c = f(t)
我想找到从c计算t的函数: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 c = 0.346828007859920 + 0.088702386914555 *%i
- t = 0.618033988749895,c = -0.390540870218399 -0.586787907346969 *%i
- t = 0.718033988749895 c = 0.130349371041523 -0.587693986342220 *%i
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)$/*解压缩%union的参数*/ratexpand(s);
输出
%i log(1-sqrt(1-4 c))%i log(sqrt(1-4 c)+1)(%o6)[%z7--------------------------,%z9--------------------------]2%pi 2%pi
I have function in Maxima CAS :
f(t) := (2*exp(2*%i*%pi*t) - exp(4*%pi*t*%i))/4;
here:
- t is a real number between 0 and 1
- function should give a point on the boundary of main cardioid of Mandelbrot set
How can I solve equation :
eq1:c=f(t);
(where c is a complex number)
?
Solve doesn't work
solve( eq1,t);
result is empty list
[]
Result of this equation should give real number t ( internal angle or rotation number ) from complex point c
EDIT: Thx to comment by @JosehDoggie
I can draw initial equation using:
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 "
)$
or
draw2d(polar(abs(exp(t*%i)/2 -exp(2*t*%i)/4),t,0,2*%pi));
Similar image ( cardioid) is here
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
So :
f1(c):=float(cabs( - %i* log(1 - sqrt(1 - 4* c))/%pi));
f2(c):=float(cabs( - %i* log(1 + sqrt(1 - 4* c))/%pi));
but the results are not good.
Edit 3 :
Maybe I shoud start from it. I have:
- complex numbers c ( = boundary of cardioid)
- real numbers t ( from 0 to 1 or sometimes from 0 to 2*pi )
- function f which computes c from t : c= f(t)
I want to find function which computes t from c: t = g(c)
testing values :
- 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 c = 0.346828007859920 +0.088702386914555*%i
- t = 0.618033988749895 , c = -0.390540870218399 -0.586787907346969*%i
- t = 0.718033988749895 c = 0.130349371041523 -0.587693986342220*%i
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);
Outputs
%i log(1 - sqrt(1 - 4 c)) %i log(sqrt(1 - 4 c) + 1)
(%o6) [%z7 - -------------------------, %z9 - -------------------------]
2 %pi 2 %pi
这篇关于如何在Maxima CAS中求解指数方程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!