用MATLAB计算椭圆周长和牛顿迭代MATLAB实现
用MATLAB计算椭圆周长及牛顿迭代的MATLAB实现实验目的与要求
实验方案:
用二分法和牛顿迭代法(包括弦截法)编程求方程的实根,要求误差不超过。输出迭代次数,初始值和根的近似值;构造不同的迭代函数,用迭代法求解,并进行比较。
编写M文件绘制该函数图形,源程序如下:
function y=EX0111
x=-1:0.1:2;
y=sin(x)-(x.^2)/2;
plot(x,y,'r')
hold on
plot(x,zeros(size(x)))
hold off
grid
运行后可以看出,函数的根在区间[1,1.5]。所以,分析题意,编写二分法源程序如下:
function y=EX0110
syms x y;
y=sin(x)-(x.^2)/2;
a=1;
b=1.5;
delta=0.0001;
ya=subs(y,a);
yb=subs(y,b);
N=1+round((log(b-a)-log(delta))/log(2));
for k=1:N
dx=yb*(b-a)/(yb-ya+eps);
c=b-dx;
ab=b-a;
yc=subs(y,c);
if yc==0,break;