Несколько *простых* вопросов по Matlab

evaksenia

Как утсановить двойную точность вычислений. Так называемая "double precision". Изменяться должна точность самих вычислений, а не выдачи на экран и т.д.
2. Есть ли функция генерирующая случайную матрицу (симметрическую) с элементами - равномерно распределнными вещественными числами на заданном отрезке.
3. Тоже самое, но матрица должна быть разреженной (sparse). Как реализовать обычное A\b для разреженных матриц.

slsf

Ботать математику (Mathematica которая все это может.

evaksenia

Извини, но мне нужно решение этих вопросов в Matlabе.
P.S. Это может не только Mathematica, но и Maple, и, возможно, другие пакеты.

slsf

Ок, согласен, ответ был не совсем по теме.

evaksenia

неужели никто не в курсе

Evgewkin

1. Как утсановить двойную точность вычислений. Так называемая "double precision". Изменяться должна точность самих вычислений, а не выдачи на экран и т.д.
По умолчанию точность двойная. Можно сделать одинарную.
x = 3.14; y = single(3.14);
whos('x')
whos('y')

2. Есть ли функция генерирующая случайную матрицу (симметрическую) с элементами - равномерно распределнными вещественными числами на заданном отрезке.
3. Тоже самое, но матрица должна быть разреженной (sparse)...
Теперь есть. Тестил мало.
function A = getsymrand(k, dI, flag)
% GETSYMRAND - gets a symmetric random matrix
% k - the matrix dimension
% dI - a specified interval for uniformly distributed random numbers
% flag - if flag is true sparse matrix is generated
% Usage: getsymrand(10, [-10, 10]
% getsymrand(10, [-10, 10], true)
if nargin<3
flag = false;
end
if ~flag
A = zeros(k, k);
q = dI(1) + (dI(2)-dI(1 * rand([k*(k+1)/2, 1]);
else
A = sparse(1:k,1:k,0);
q = sparse(dI(1) + (dI(2)-dI(1 * rand([k*(k+1)/2, 1];
end
I = logical(tril(ones(k, k;
A(I) = q;
A = transp(A);
A(I) = q;

Особого смысла использовать полностью заполненную sparse матрицу нет.
Как реализовать обычное A\b для разреженных матриц.
\ должно работать и для разреженных матриц
A = sparse([1 2; 3 4]);
b = sparse([1; 2]);
A \ b
Оставить комментарий
Имя или ник:
Комментарий: