正在加载图片...
1.797693134862316e+308 能用浮点数近似表示而不出现上溢的项是第1476项。 functiony,n)-fib(n)%检验是否精确表达的函数 %Generates fibonaccinumbers for the program fibonacci fz(11:fz(2)1: fork=3:n fz(k)-fz(k-l)+fz(k-2). end y-fz(n} ≥>,nib(79 y= 1.447233402467622e+16 n= 79 但实际上,第79项的精确值是1.4472334023676221e+16 这是由于MATLAB中双精度浮点数的最大精度表示范围是小数点后15位。所以 只能精确表达到第78项。 也可根据通项公式直接用flintmax和realmax?常数来求得最大的精确表示和近似 表示 通项公式如下: =-≥ 1 Fn代入flintmax从中解得n=78是最大的精确表达项;代入realmax从中解得n=1476 是最大的近似表达项。 >c=1/sart(5: >>phi=(sqrt(5)+1)/2; >>n=(log(flintmax)-log(c)log(phi) n= 78.014540730050044 >>m=(log(realmax)-log(c))/log(phi) m= 1.476662448520642e+031.797693134862316e+308 能用浮点数近似表示而不出现上溢的项是第 1476 项。 ------------------------------------------------------------------------------- function [y,n]=fib(n) %检验是否精确表达的函数 %Generates fibonacci numbers for the program fibonacci fz(1)=1;fz(2)=1; for k=3:n fz(k)=fz(k-1)+fz(k-2); end y=fz(n); >>[y,n]=fib(79) y = 1.447233402467622e+16 n = 79 但实际上,第79项的精确值是1.4472334023676221e+16 这是由于MATLAB中双精度浮点数的最大精度表示范围是小数点后15位。所以 只能精确表达到第78项。 也可根据通项公式直接用flintmax和realmax常数来求得最大的精确表示和近似 表示。 通项公式如下: 𝐹𝑛 = 1 √5 × (( 1 + √5 2 ) 𝑛 − ( 1 − √5 2 ) 𝑛 ) Fn代入flintmax从中解得n=78是最大的精确表达项;代入realmax从中解得n=1476 是最大的近似表达项。 >> c=1/sqrt(5); >> phi=(sqrt(5)+1)/2; >> n=(log(flintmax)-log(c))/log(phi) n = 78.014540730050044 >> m=(log(realmax)-log(c))/log(phi) m = 1.476662448520642e+03
<<向上翻页
©2008-现在 cucdc.com 高等教育资讯网 版权所有