千里马:为什么解决什么都不回报

时间:2015-05-14 10:05:39

标签: solver maxima

我希望求解返回t1的值,这是唯一的未知变量。但它会返回(%o3) []而我不明白为什么。

find_root执行预期的操作并返回t1的值,但我想了解问题的根源。

kill(all);
CIFV(K,r,t,m):= K*(1+r/m)^(t*m);
eq1: (CIFV(1000,0.06,t1,2)=1500);
solve(%,t1);
find_root(eq1,t1,0,100);

1 个答案:

答案 0 :(得分:1)

我认为问题在于solve是为了解决代数方程而你的方程有未知的指数。

给定等式2 ^ x = 3 solve将正确地给出[x=log(3)/log(2)]。 但是,等式1.5^x=1将被解释为(3/2)^x=1的缩写,最终会得到结果[3^x=2^x]

解决方法是以符号方式解决方程式,然后替换后的值。

(%i13) solve(CIFV(K,r,t,m)=1500,t);
(%o13) [t=log(1500/K)/(m*log(r/m+1))]