一个Matlab的程序求圆周率

来源:百度知道 编辑:UC知道 时间:2024/05/27 09:19:26
别人写了一个割圆术求圆周率的matlab程序但是实施不了总是出现问题
function y=calpi(n)
syms a;
for i=1:n
a=sqrt(2-sqrt(4-a^2));
end
a=subs(a,'a','1')
y=3*2^n*vpa(a,n+5)

另外谁能解释一下最后两句?
我命名为calpi.m在命令提示符下打calpi(10)但是打不开,怎么改都不成,这个程序是上海交大的人写的,在网上找的,但是运行不了

程序没有任何问题

一些小问题吧:
(1)不要显示的在语句后面加上分号
(2)不知道你有没有保存在正确的路径上
(3)在命令符下先clear一下

我修改了一点点,你看一下:

function calpi(n)
syms a;
for i=1:n
a=sqrt(2-sqrt(4-a^2));
end
a=subs(a,'a','1');
y=3*2^n*vpa(a,n+5);
Pi=y

保存在work文件夹下,calpi.m

>>clear
>>calpi(100)
>>Pi =

3.1415926535897932384626433832795

你自己再弄一下,应该可以的!

我的matlab删掉了
自己help subs或者help vpa试试看吧

这个可以运行
以下是运行结果

>> calpi(1)

a =

(2-(4-(1)^2)^(1/2))^(1/2)

y =

3.105834

ans =

3.105834

>> calpi(10)

a =

(2-(2+(2+(2+(2+(2+(2+(2+(2+(2+(4-(1)^2)^(1/2))^(1/2))^(1/2))^(1/2))^(1/2))^(1/2))^(1/2))^(1/2))^(1/2))^(1/2))^(1/2)

y =

3.14159251166837760

ans =

3.14159251166837760

>>