Я хочу быть уверенным, что две переменные, a
и b
, умножаются с высокой точностью, т. е. произведение c
из a
и b
с произвольной точностью (в моем случае 50 правильных десятичных цифр):
a = vpa(10/3,50);
b = vpa(7/13,50);
c = eval(vpa(vpa(a,50)*vpa(b,50),50)); % I basically want to do just c = a*b;
что дает мне
a = 3.3333333333333333333333333333333333333333333333333
b = 0.53846153846153846153846153846153846153846153846154
c = 23.333333333333333333333333333333
Тестирование
d = eval(vpa(c*13,50))
дает
d = 23.333333333333333333333333333333333333335292490585
что показывает, что умножение для получения c
не было выполнено с 50 значащими цифрами.
Что здесь не так, но, что более важно, как мне получить правильный результат для a*b
и для других операций, таких как exp
?