根号2的近似解(matlab程序)
1 二分法:
先编辑函数文件fun2.m如下:
function y=fun2(x)
y=x.^2-2;
然后编写m文件如下:
clear
a=1; b=2;
while abs(a-b)>10^(-6)
if abs(fun2((a+b)/2))<10^(-6)%
break
elseif fun2(a)*fun2((a+b)/2)>0
a=(a+b)/2;
else b=(a+b)/2;
end
end
gen2=(a+b)/2
2.切线法
x0=1.2;
x1=(x0+2/x0)/2; n=1;
while abs(x1-x0)>=1.0e-6
x0=x1;
x1=(x0+2/x0)/2;
n=n+1;
end
x1
n
3.割线法
x0=1.5;
x1=2;
x2=x1-(x1^2-2)*(x1-x0)/(x1^2-x0^2);
n=1;
while abs(x2-x1)>=0.000001
x0=x1;
x1=x2;
x2=x1-(x1^2-2)*(x1-x0)/(x1^2-x0^2);
n=n+1;
end
x2
a3572请设计一种算法近似计算~并利用matlab软件编写求~~~
,610的计算程序,要求误差小于,。
2xa,xa,令~则~
2记~利用牛顿迭代法~可以构造迭代格式如下: fxxa()0,,,
2fxxa(),1ann xxxx,,,,,,(),nnnn1,fxxx()22nnn
[求解程序]:
function genhaoa=sqrt1(a)
an=1;
while 1/2*abs((a./an-an))>10^(-6)
an=(an+a./an)/2;
end
genhaoa=an;
以sqrt1.m保存
x=[2 3 5 7]
sqrt1(x)