matlab数值分析程序--高等数学,数值代数的matlab实现-文字版, matlab电子书, 和matlab 有关的电子书:

2.2.2 逐步搜索法及其MATLAB程序

2.2.2  逐步搜索法及其MATLAB程序

逐步搜索法的MATLAB主程序

function [k,r]=zhubuss(a,b,h,tol)

% 输入的量--- a和b是闭区间[a,b]的左、右端点;

%---h是步长;

%---tol是预先给定的精度.

% 运行后输出的量---k是搜索点的个数;

%  --- r是方程 在[a,b]上的实根的近似值,其精度是tol;

X=a:h:b;Y=funs(X);n=(b-a)/h+1;m=0;

X(n+1)=X(n);Y(n+1)=Y(n);

for k=2:n

   X(k)=a+k*h;Y(k)=funs(X(k)); %程序中调用的funs.m为函数

sk=Y(k)*Y(k-1);

 if sk<=0,

    m=m+1;r(m)=X(k);

 end

 xielv=(Y(k+1)-Y(k))*(Y(k)-Y(k-1));

 if (abs(Y(k))<tol)&( xielv<=0)

   m=m+1;r(m)=X(k);

 end

end

 

例2.2.4  用逐步搜索法的MATLAB程序分别求方程在区间上的根的近似值,要求精度是0.000 1.

解  将逐步搜索法的MATLAB程序保存名为zhubuss.m的M文件.

建立M文件funs.m

function y=funs(x)

           y=2.*x.^3+2.*x.^2-3.*x-3

在MATLAB工作窗口输入如下程序

>> [k,r]=zhubuss(-2,2,0.001,0.0001)

运行后输出的结果

k =4001

r = -1.2240   -1.0000   -1.0000   -0.9990    1.2250

即搜索点的个数为k =4 001,其中有5个是方程的近似根,即r = -1.224 0,-1.000 0,-1.000 0,-0.999 0,1.225 0,其精度为0.000 1.

在程序中将y=2.*x.^3+2.*x.^2-3.*x-3用y=sin(cos(2.*x.^3)) 代替,可得到方程在区间上的根的近似值如下

r =  -1.9190   -1.7640   -1.5770   -1.3300   -0.9220    0.9230    1.3310 1.5780    1.7650    1.9200

欢迎转载,转载请注明来自一手册:http://yishouce.com/book/3/3020202.html
友情链接It题库(ittiku.com)| 版权归yishouce.com所有| 友链等可联系 admin#yishouce.com|粤ICP备16001685号-1