试验三 非线性方程求解_第1页
试验三 非线性方程求解_第2页
试验三 非线性方程求解_第3页
试验三 非线性方程求解_第4页
试验三 非线性方程求解_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、试验三 非线性方程求解1、 二分法function x_star, index, it=bisect(fun, a, b, ep)% 求解非线性方程的二分法,其中% fun(x) - 需要求根的函数% a,b - 初始区间的端点。% ep - 精度要求,当(b-a)/2<ep时,算法终止计算,省缺为1e-5。% x_star - 当迭代成功时,输出方程的根,% 当迭代失败时,输出两端点的函数值。% index - 当index=1时,表明迭代成功,% 当index=0时,表明初始区间不满足要求。% it - 迭代次数。if nargin <4 ep=1e-5; endfa=feva

2、l(fun,a); fb=feval(fun,b);if fa*fb>0 x_star=fa, fb; index=0; it=0; return;endk=1;while abs(b-a)/2>=ep x=(a+b)/2; fx=feval(fun,x); if fx*fa<0 b=x; fb=fx; else a=x; fa=fx; end k=k+1;endx_star=(a+b)/2; index=1; it=k;书本例2利用二分法求x3-x-1=0的根。fun=inline('x3-x-1');x_star, inex, it=bisect(fun,

3、1,2)2、迭代法function x_star, index, it=iterate(phi, x, ep, it_max)% 求解非线性方程的一般迭代法,其中% phi(x) - 迭代函数% x - 初始点。% ep - 精度,当|(x(k)-x(k-1)|<ep时,终止计算。省缺为1e-5% it_max - 最大迭代次数,省缺为100% x_star - 当迭代成功时,输出方程的根,% 当迭代失败时,输出最后的迭代值。% index - 当index=1时,表明迭代成功,% 当index=0时,表明迭代失败(迭代次数 >= it_max)。% it - 迭代次数。if na

4、rgin <4 it_max=100; endif nargin <3 ep=1e-5; endindex=0; k=1;while k<=it_max x1=x; x=feval(phi,x); if abs(x-x1)<ep index=1; break; end k=k+1;endx_star=x; it=k;书本例3利用迭代法求x3-x-1=0的根。phi=inline('(x+1)(1/3)');x_star,index,it=iterate(phi,1.5)3、 steffensen加速迭代方法unction x_star, index, i

5、t=steffensen(phi, x, ep, it_max)% Steffensen 加速方法% phi(x) - 迭代函数% x - 初始点。% ep - 精度,当|(x(k)-x(k-1)|<ep时,终止计算。省缺为1e-5% it_max - 最大迭代次数,省缺为100% x_star - 当迭代成功时,输出方程的根,% 当迭代失败时,输出最后的迭代值。% index - 当index=1时,表明迭代成功,% 当index=0时,表明迭代失败(迭代次数 >= it_max)。% it - 迭代次数。if nargin <4 it_max=100; endif nar

6、gin <3 ep=1e-5; endindex=0; k=1;while k<=it_max x1=x; y=feval(phi,x); z=feval(phi,y); x=x-(y-x)2/(z-2*y+x); if abs(x-x1)<ep index=1; break; end k=k+1;endx_star=x; it=k;书本例题5求x=x3-1根的程序。phi=inline('x3-1');x_star,index,it=steffensen(phi,1.5)4、 利用牛顿法求方程的根。function x_star, index, it=New

7、ton(fun, x, ep, it_max)% 求解非线性方程的Newton法,其中% fun(x) - 需要求根的函数,% 第一个分量是函数值,第二个分量是导数值% x - 初始点。% ep - 精度,当|(x(k)-x(k-1)|<ep时,终止计算。省缺为1e-5% it_max - 最大迭代次数,省缺为100% x_star - 当迭代成功时,输出方程的根,% 当迭代失败时,输出最后的迭代值。% index - 当index=1时,表明迭代成功,% 当index=0时,表明迭代失败(迭代次数 >= it_max)。% it - 迭代次数。if nargin <4 it

8、_max=100; endif nargin <3 ep=1e-5; endindex=0; k=1;while k<=it_max x1=x; f=feval(fun, x); if abs(f(2)<ep break; end x=x-f(1)/f(2); if abs(x-x1)<ep index=1; break; end k=k+1;endx_star=x; it=k;计算函数发f(x)=x3-x-1=0在区间1,2内的根。fun=inline('x3-x-1,3*x2-1');x_star,index,it=Newton(fun,1.5)基于

9、辛普森公式的自适应法求积分(matlab源程序)(2009-06-06 15:47:18) 转载标签: 程序教育分类: 数值分析 function s=Self_Adaptive_integral(a,b,tol,M)%input:  a-下限%        b-下限%        tol-the tolerance(容差)%        m-初始设置的步数h=(b-a)

10、/M;%步距s=0;for i=1:M    x=a+(i-1)*h;    y=a+i*h;    to=abs(simpson_integral(x,y,2)+simpson_integral(x,y,1)/10;    j=1;    while(to>=tol)  %循环直到to<tol为止    j=j+1;    to=(abs(simpson_inte

11、gral(x,y,2j)-simpson_integral(x,y,1)/10;    %精度测试式    end    s=s+simpson_integral(x,y,2j);end  function y=f(x)%  f-被积函数y=x5+sin(x)*x6*sqrt(x);  function s=simpson_integral(a,b,m)%input: a-下限%       b-上限%       m-步数h=(b-a)/(2*m);s1=0;s2=0;for i=1:(m-1)&#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论