matlab求椭圆周长,用matlab计算椭圆周长及牛顿迭代的matlab完成

41528d3028836879cd698677c3999917.gif用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; elseif ya*ycn error( n is full ),end end 构造新的迭代函数为,编辑源程序如下: function y=iter() syms x y; y=sqrt(2*sin(x)); x0=1; max=20; derta=0.0001; t=[x0]; x=subs(y,x0); k=0; while abs(x-x0)>=derta t=[t,x]; x0=x; x=subs(y,x0); k=k+1; if k>max disp( 迭代次数超过最大次数。 ) break end end t 二、 实验结果和数据处理 运行绘制函数图形源文件得如下图像,从图像中可看出,该函数的根所在的区间为[1,1.5]。 图1 运行运用二分法编程的源程序得如下数据: 图2 运行运用牛顿迭代法编程的源程序,在命令框中输入如下命令: [xk,k]=newtoneq(1,20,0.0001) 运行得出以下数据: 图3 三、实验目的与要求: 已知椭圆的周长可以表示成(),取a=1。针对从0.1到0.9(步长h=0.1)分别求出周长s。(用Romberg积分方法) 四、实验方案: 编辑实现Romberg积分方法的源程序,得如下M文件: function [s,n,t]=rombint(fun,a,b,tol) at long s=10000; s0=0; k=2; t(1,1)=(b-a)*(fun(a)+fun(b))/2; while (abs(s-s0)>tol) h=(b-a)/2^(k-1); w=0; if(h~=0) for i=1:(2^(k-1)-1) w=w+fun(a+i*h); end t(k,1)=h*(fun(a)/2+w+fun(b)/2); for l=2:k for i=1;(k-l+1) t(i,l)=(4^(l-1)*t(i+1,l-1)-t(i,l-1))/(4^(l-1)-1); end end s=t(1,k); s0=t(1,k-1); k=k+1; n=k-1; else s=s0 n=-k; end end 并在运行时,依次在命令框中输入如下命令: fun=inline( sqrt(1+^2*cos(t).^2) , t ); s=rombint(fun,0,2*pi,1e-6) 其中,依次取值为0.1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9进行运算。 三、实验结果和数据处理 运算结果如下:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值