第二章 非线性方程(组)的数值解法

上传人:千****8 文档编号:183244633 上传时间:2021-06-01 格式:DOC 页数:18 大小:423.50KB
返回 下载 相关 举报
第二章 非线性方程(组)的数值解法_第1页
第1页 / 共18页
第二章 非线性方程(组)的数值解法_第2页
第2页 / 共18页
第二章 非线性方程(组)的数值解法_第3页
第3页 / 共18页
第二章 非线性方程(组)的数值解法_第4页
第4页 / 共18页
第二章 非线性方程(组)的数值解法_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《第二章 非线性方程(组)的数值解法》由会员分享,可在线阅读,更多相关《第二章 非线性方程(组)的数值解法(18页珍藏版)》请在金锄头文库上搜索。

1、个人收集整理 勿做商业用途第二章 非线性方程(组)的数值解法2。1 方程(组)的根及其MATLAB命令2.1。2 求解方程(组)的solve命令求方程f(x)=q(x)的根可以用MATLAB命令: x=solve(方程f(x)=q(x),待求符号变量x)求方程组fi(x1,,xn)=qi(x1,,xn) (i=1,2,n)的根可以用MATLAB命令:E1=sym(方程f1(x1,xn)=q1(x1,,xn));。En=sym(方程fn(x1,,xn)=qn(x1,,xn));x1,x2,,xn=solve(E1,E2,En, x1,xn)2。1.4 求解方程(组)的fsolve命令fsolve

2、的调用格式: X=fsolve(F,X0)2。2 搜索根的方法及其MATLAB程序2。2.1 作图法及其MATLAB程序作函数在区间 a,b 的图形的MATLAB程序一x=a:h:b; % h是步长y=f(x); plot(x,y)grid, gtext(y=f(x))说明: 此程序在MATLAB的工作区输入,运行后即可出现函数的图形。此图形与轴交点的横坐标即为所要求的根的近似值. 区间a,b 的两个端点的距离 ba 和步长h的绝对值越小,图形越精确。作函数在区间 a,b上的图形的MATLAB程序二将化为,其中是两个相等的简单函数。x=a:h:b; y1=h(x); y2=g(x);plot(

3、x, y1, x, y2)grid,gtext( y1=h(x),y2=g(x)说明:此程序在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

4、+1)=Y(n);for k=2:n X(k)=a+kh;Y(k)=funs(X(k); %程序中调用的funs。m为函数sk=Y(k)*Y(k1); if sk k,r=zhubuss(2,2,0。001,0.0001)运行后输出的结果k =4001r = -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.23。x3用y=sin(cos(2.*x.3))

5、代替,可得到方程在区间上的根的近似值如下r = -1。9190 1。7640 1。5770 1.3300 -0。9220 0。9230 1。3310 1。5780 1。7650 1.92002。3 二分法及其MATLAB程序2.3.2 二分法的MATLAB程序二分法的MATLAB主程序function k,x,wuca,yx=erfen(a,b,abtol)a(1)=a; b(1)=b; ya=fun(a(1); yb=fun(b(1); 程序中调用的fun.m 为函数 if ya* yb0, disp(注意:yayb0,请重新调整区间端点a和b。), returnendmax1=1+ceil

6、(log(b-a) log(abtol))/ log(2)); ceil是向 方向取整for k=1: max1+1a;ya=fun(a); b;yb=fun(b); x=(a+b)/2; yx=fun(x); wuca=abs(b-a)/2; k=k-1;k,a,b,x,wuca,ya,yb,yxif yx=0a=x; b=x;elseif ybyx0b=x;yb=yx;elsea=x; ya=yx;endif ba abtol , return, endendk=max1; x; wuca; yx=fun(x);例2.3。3 确定方程x3x+4=0的实根的分布情况,并用二分法求在开区间 (

7、2,-1)内的实根的近似值,要求精度为0。001。解 (1)先用两种方法确定方程x3-x+4=0 的实根的分布情况。方法1 作图法。在MATLAB工作窗口输入如下程序x=4:0.1:4; y=x.3-x +4; plot(x,y) grid,gtext(y=x3-x+4) 画出函数f(x)=x3x+4的图像.从图像可以看出,此曲线有两个驻点都在x轴的上方,在(2,-1)内曲线与x轴只有一个交点,则该方程有唯一一个实根,且在 (2,1)内。方法2 试算法.在MATLAB工作窗口输入程序x=4: 1:4,y=x.3x +4运行后输出结果x = -4 3 -2 -1 0 1 2 3 4 y = -5

8、6 -20 -2 4 4 4 10 28 64 由于连续函数f(x)满足,所以此方程在(2,1)内有一个实根.(2) 用二分法的主程序计算。在MATLAB工作窗口输入程序 k,x,wuca,yx=erfen (2,1,0.001)运行后屏幕显示用二分法计算过程被列入表 23,其余结果为k = 9,x=-1。7959, wuca = 9。7656e004,yx = 0.0037表 2-3次数k左端点ak右端点bk中点xk函数值f(ak)函数值f(bk)函数值f(xk)02.000 01。000 01.500 00。500 02.000 04。000 02。125 012。000 0-1.500

9、01.750 00.250 0-2。000 02。125 00。390 622。000 0-1。750 0-1。875 00.125 0-2.000 00。390 60.716 83-1.875 01。750 0-1.812 50。062 50.716 80。390 60。141 84-1.812 51。750 01.781 30。031 30.141 80。390 60。129 651.812 5-1.781 31。796 90。015 6-0.141 80.129 6-0。004 861。796 9-1.781 31.789 10.007 8-0.004 80.129 60。062 77-

10、1.796 9-1。789 1-1。793 00。003 90。004 80.062 70。029 081.796 91。793 0-1。794 90.002 00。004 80.029 00。012 191.796 9-1。794 91.795 90.001 00.004 80。012 10。003 72。4 迭代法及其MATLAB程序2.4.2 迭代法的MATLAB程序1迭代法的MATLAB主程序1function k,piancha,xdpiancha,xk=diedai1(x0,k)% 输入的量-x0是初始值,k是迭代次数x(1)=x0; for i=1:k x(i+1)=fun1(x

11、(i));%程序中调用的fun1。m为函数y=(x) piancha= abs(x(i+1)x(i)); xdpiancha=piancha/( abs(x(i+1)+eps); i=i+1;xk=x(i);(i-1) piancha xdpiancha xkendif (piancha 1)&(xdpiancha0.5)&(k3) disp(请用户注意:此迭代序列发散,请重新输入新的迭代公式) return; end if (piancha 0。001)&(xdpiancha3) disp(祝贺您!此迭代序列收敛,且收敛速度较快) return; endp=(i-1) piancha xdp

12、iancha xk;例2.4。1 求方程的一个正根.解 在MATLAB工作窗口输入程序 k,piancha,xdpiancha,xk= diedai1(2,5)运行后输出用迭代公式的结果k,piancha,xdpiancha,xk=1.00000000000000 1.00000000000000 0。33333333333333 3.000000000000002.00000000000000 2.50000000000000 5。00000000000000 0。500000000000003.00000000000000 4。37500000000000 0.89743589743590 4。875000000000004.00000000000000 11.75781250000000 1.70828603859251 6.882812500000005。00000000000000 11。80374145507813 0.63167031671297 -18.68655395507813请用户注意:此迭代序列发散,请重新输入新的迭代公式k=5,piancha = 11。80374145507813,xdpiancha = 0.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 工学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号