如何将符号计算的结果显示为数字?
How to show the result of a symbolic computation as a number?
我正在用符号求解一个方程:
% 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
。如果我想要一个号码,我需要用这个做什么?
将您的输出转换为 double
将产生您想要的结果:
x =
(cos(1) - 1)/(sin(1) + 1) + 1
>> double(x)
ans =
0.7504
以上是在R2016b上测试的。如果出于某种原因这不起作用,则 eval()
会产生与 double()
相同的结果(在本例中)。
请注意 eval
可能有多种副作用 (),应在极少数情况下使用。
我正在用符号求解一个方程:
% 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
。如果我想要一个号码,我需要用这个做什么?
将您的输出转换为 double
将产生您想要的结果:
x =
(cos(1) - 1)/(sin(1) + 1) + 1
>> double(x)
ans =
0.7504
以上是在R2016b上测试的。如果出于某种原因这不起作用,则 eval()
会产生与 double()
相同的结果(在本例中)。
请注意 eval
可能有多种副作用 (