2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Вычисление в Matlab с произвольной точностью
Сообщение15.10.2013, 21:42 
Добрый день!
передо мной стоит следующая задача: необходимо реализовать возможность совершения всех вычислительных операций в Matlab с заданной заранее точностью $n$. Главное, чтобы именно для всех и эта "директива" (вычислять именно с точностью $n$) задавалась глобально и применялась ко всему. Для одноразового решения задачи (например $a+b\ast c$) я конечно могу пользоваться "связкой"
Код:
eval(vpa(eval(vpa(a,n))+eval(vpa(b,n))*eval(vpa(c,n)),n))

но применять такую процедуру к многочисленным вычислениям в файле-программе очень и очень проблемно. Обгуглил все что мог, ничего не нашел - решил вот найти истину на форуме.
Буду весьма признателен за любую помощь!

 
 
 
 Re: Вычисление в Matlab с произвольной точностью
Сообщение15.10.2013, 22:51 
При этом изначально моя задача была в том, чтобы наоборот уменьшить точность (от 32 перейти, например, к 4 знакам), но теперь вот думаю наверно полезно было бы и увеличить (если такое конечно же возможно).

Для моей задачи "ухудшения" точности не мудрствуя лукаво решил воспользоваться применением функции округления к результатам любых делений и тому подобных операций (которые могут "увеличить" число значащих цифр):
Код:
function res = f_sd(a)
%данная функция дает результат вычисления "a" с заданной точностью "n" знаков
%после запятой
n=4; %"точность" деления
res=round((10^n)*a)/(10^n);

а на тему улучшения предлагаю порассуждать, ведь и на эту тему во всевидящем гугле мало что есть полезного:(

 
 
 [ Сообщений: 2 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group