资源描述:
《弦截法非线性方程.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、一、科学计算的算法及其举例应用和利用MATLAB自带函数实现科学计算法:弦截法非线性方程实例:采用弦截法求方程lgx+=2在区间[1,4]上的一个根。1.算法说明弦截法的算法过程如下:(1)过两点(a,f(a)),(b,f(b))作一直线,它与x轴有一个交点,记为x1..(2)如果f(a)f(x1)<0,过两点(a,f(a)),(x1,f(x1))作一直线,它与x轴的交点记为x2,否则过两点(b,f(b)),(x1,f(x1))作一直线,它与x轴的交点记为x2;(3)如此下去,直到
2、xn-xn-1
3、<,
4、就可以认为xn为f(x)=0在区间[a,b]上的一个根。(4)Xk的递推公式为:且在MATLAB中编程实现的弦截法的函数为:Secant.功能:用弦截法求函数在某个区间的一个零点。调用格式:root=Secant(f,a,b,eps).其中,f为函数名;a为区间左端点;b为区间左端点;eps为根的精度;root为求出的函数零点。2.流程图弦截法流程图f(a)f(x1)<0??YES(a,f(a)),(x1,f(x1))作一直线,它与x轴的交点记为x2NO(b,f(b)),(x1,f(x1))作一直线,它
5、与x轴的交点记为x2YESYES输出xn为f(x)=0在区间[a,b]上的一个根输出xn为f(x)=0在区间[a,b]上的一个根过(a,f(a)),(b,f(b))作一直线,它与x轴有一个交点,记为x1.输入a,b,NONO实例流程图:调用Secant进行运算输出结果>>r=1.8773结束输入条件:sqrt(x)+log(x)-2积分区间:(1,4)开始3.源程序代码弦截法源程序代码:functionroot=Secant(f,a,b,eps)if(nargin==3)eps=1.0e-4;endf1
6、=subs(sym(f),findsym(sym(f)),a);f2=subs(sym(f),findsym(sym(f)),b);if(f1==0)root=a;endif(f2==0)root=b;endif(f1*f2>0)disp('两端点函数值乘积大于0!');return;elsetol=1;fa=subs(sym(f),findsym(sym(f)),a);fb=subs(sym(f),findsym(sym(f)),b);root=a-(b-a)*fa/(fb-fa);while(tol
7、>eps)r1=root;fx=subs(sym(f),findsym(sym(f)),r1);s=fx*fa;if(s==0)root=r1;elseif(s>0)root=b-(r1-b)*fb/(fx-fb);elseroot=a-(r1-a)*fa/(fx-fa);endendtol=abs(root-r1);endend实例源代码:r=Secant('sqrt(x)+log(x)-2',1,4)运行结果:r=1.8773一、分析单自由度阻尼系统的阻尼系数对其固有振动模态的影响1.流程图结束绘制
8、x,t二维图象subplot(1,2,1)j=1j≤10?plot(t,x(j,:))j=j+2开始输入wn,x0,v0,tfj=1zeta=0.1*jwd=wnA=/wda=atan2(wd*x0,v0+zeta*wn*x0)j≤10?t=0j=j+1t≤tf?t=t+tf/1000x(j,:)=A**sin(wd*t+a)subplot(1,2,2),mesh(x)NoYesYesNoNoYes2.源程序代码:3.运行结果:三.Appollo卫星的运行轨迹1.流程图开始输入初值结束绘制图形plot(
9、y(:,1),y(:,3))[t,y]=ode45('appollo',[0,20],x0,options)2.源程序代码:函数文件:命令文件:3.运行结果