Почему Matlab записывает числа в символических функциях таким образом? - PullRequest
0 голосов
/ 10 апреля 2019

Почему число 0,999 записано 8959626780035403/9007199254740992 в символической функции P и что я могу сделать, чтобы изменить его обратно на 0,9947?

syms x;
f = sin(x);
f = matlabFunction(f);
n = 3;
a = -pi/2;
b = pi/2
X = linspace(a, b, n + 1);
Y = f(X);
y = MetDirecta(X,Y)
syms x Pn
P = 0;
for i = 1:n+1
    P = P + (y(i))*x^(i - 1);

end
P
function [y] = MetDirecta(X, Y)

    n = length(X);

    for i = 1:n
        A(i,1) = 1;
    end
    for i = 1:n
        for j = 2:n
            A(i,j) = X(i)^(j - 1);
        end
    end

    solutie = GaussPivTot(A, Y');

    y = solutie;
end

1 Ответ

2 голосов
/ 10 апреля 2019

Символическая математика в Matlab хочет предоставить вам точное представление.Вы можете преобразовать результат в число с плавающей запятой с помощью double().

https://www.mathworks.com/help/symbolic/double.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...