如何将符号计算的结果显示为数字?

时间:2016-12-24 10:26:22

标签: matlab symbolic-math evaluation equation-solving newtons-method

我象征性地解决了一个等式:

% Newton's method
syms x;
F(x)=x-cos(x);
FPrime(x)=diff(F(x));
display(FPrime(x));
x0=input('please give first point[x0] = ');
Accuracy=input('Accuracy[xn-xn-1] = ');
for k=0:15;
    x=x0-(F(x0)/FPrime(x0));
    x0=x;
    if(abs(F(x))<=Accuracy);
        display(x);
        break
    end    
end

我需要x作为实数,但答案是(cos(1) - 1)/(sin(1) + 1) + 1。如果我想要一个号码,我该怎么办呢?

1 个答案:

答案 0 :(得分:2)

将输出转换为double会产生您想要的结果:

x =

(cos(1) - 1)/(sin(1) + 1) + 1

>> double(x)

ans =

    0.7504

以上在R2016b上进行了测试。如果由于某种原因这不起作用,那么eval()的后退就会产生与double()相同的结果(在这种情况下)。

请注意,eval 可能会产生各种副作用see example),并应在极少数情况下使用。