实验7 无穷级数与非线性方程求解(MATLAB)ppt课件.ppt

上传人:牧羊曲112 文档编号:1413595 上传时间:2022-11-21 格式:PPT 页数:24 大小:247KB
返回 下载 相关 举报
实验7 无穷级数与非线性方程求解(MATLAB)ppt课件.ppt_第1页
第1页 / 共24页
实验7 无穷级数与非线性方程求解(MATLAB)ppt课件.ppt_第2页
第2页 / 共24页
实验7 无穷级数与非线性方程求解(MATLAB)ppt课件.ppt_第3页
第3页 / 共24页
实验7 无穷级数与非线性方程求解(MATLAB)ppt课件.ppt_第4页
第4页 / 共24页
实验7 无穷级数与非线性方程求解(MATLAB)ppt课件.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《实验7 无穷级数与非线性方程求解(MATLAB)ppt课件.ppt》由会员分享,可在线阅读,更多相关《实验7 无穷级数与非线性方程求解(MATLAB)ppt课件.ppt(24页珍藏版)》请在三一办公上搜索。

1、实验7 无穷级数与非线性方程求解(MATLAB),1 基础理论,一. 无穷级数,2 实验,在Matlab中,求级数和的命令为 symsum ,调用格式为:symsum(s,t,a,b) 表达式s中的符号变量t从a到b的级数和(t缺省时设定为x或最接近x的字母),例1) 求,(1) 利用symsum处理syms x symsum(1/x,1,10) ans = 7381/2520 7381/2520 ans = 2.9290,(2) 编程建立M文件计算,s=0; %累加变量置初值for i=1:10 s=s+1/i;enddisp(1+1/2+1/3+.+1/10=)s, 1+1/2+1/3+.

2、+1/10=s = 2.9290,syms n symsum(1/n,n,1,inf) %inf表示正无穷 ans = inf, syms n symsum(-1)(n-1),n,1,inf) ans = log(2),二. 非线性方程,1 基础理论,5次以上的方程就没有现成的求根公式了,但是总知道,n次方程有n个根,包括复根,当然重根要按重数计算根的个数.,求解超越方程不仅没有一般的公式,而且若只依据方程本身,那么连有没有根、有几个根,也难以判断。,利用Matlab的图形功能就能帮助我们判断方程有没有根,并且确定根的近似位置。,2 代数方程求解当f(x)为多项式时可用r=roots(c) 输

3、入多项式c(按降幂排列),输出r为f(x)=0的全部根(包括复数根),该命令为数值计算c=poly(r) 输入f(x)=0的全部根r,输出c为多项式的系数(按降幂排列), 该命令为数值计算solve(f,t) 对f中的符号变量t解方程f=0(t缺省时设定为x或最接近x的字母), 该命令为符号计算,(1) 数值计算 c=8 -12 -26 -13 58 30; %输入多项式c(按降幂排列) r=roots(c) %求多项式c的全部根(包括复数根)r = 2.5000 1.5000 -1.0000 + 1.0000i -1.0000 - 1.0000i -0.5000,所以方程的根为:2.5,1.

4、5,-0.5,-1+i,-1-i, syms x f=8*x5-12*x4-26*x3-13*x2+58*x+30; s=solve(f) s = -1/2 3/2 5/2 -1+i -1-i,所以方程的根为:-1/2,3/2,5/2,-1+i,-1-i.,(2) 符号计算, r=0.25 -1 2+3i 2-3i; c=poly(r)c = 1.0000 -3.2500 9.7500 10.7500 -3.2500,例2) 求以0.25,-1.5,2+2i,2-2i为根的代数方程,3、 在Matlab中, solve采用符号解法求非线性方程(组),调用格式为:solve(f,t) 对f中的符

5、号变量t解方程f=0 (t缺省时设定为x或最接近x的字母), 该命令为符号计算solve(f=g,t) 对符号变量t解方程f=g (t缺省时设定为x或最接近x的字母), 该命令为符号计算,syms x f=cos(2*x)+sin(x)-1; s=solve(f) s = 0 pi 1/6*pi 5/6*pi,1) 解方程 cos2x+sinx=1 (在最小正周期内求解)先将方程化为cos2x+sinx-1=0, s=double(s)s = 0.2592 2.5426, syms x f=5*x-exp(x); s=solve(f) s = -lambertw(-1/5) -lambertw

6、(-1,-1/5),例2) 解方程,说明原方程的解无解析表达式,此时可用double计算其值,syms x y x,y=solve(x2+x*y+y=3,x2-4*x+3=0)x = 1 3y = 1 -3/2,4) 解方程组,所以方程组的解为(1,1),(3,-3/2).,4、Matlab中fzero采用数值解法求解非线性方程,其调用格式为:,(1)z=fzero(fun,x0) 对单变量函数fun求解,返回函数的解z. fun为包含任意单变量函数的文件名字符串。(2) z=fzero(fun,x0) 设置解的搜索区域x0,其中x0为一个长度为2的向量,而f(x(1)的符号和f(x(2)的符

7、号不同,调用时如果符号相同则报错。(3) z=fzero(fun,x0,tol) 设置解的精度,返回的函数值的相对误差必须在变量tol给定的范围内。(4) z=fzero(fun,x0,tol,trace) 设置显示每次的迭代信息,如果trace=0则不显示每次的迭代信息;否则就显示。,z=fzero(x3-2*x-5,2,1e-6,1) % 第四种方法,例1) 解方程f(x)=x3-2x-5=0,z=fzero(x3-2*x-5,2) % 第一种方法z = 2.0946,z=fzero(x3-2*x-5,0 3) %第二种方法z = 2.0946,z=fzero(x3-2*x-5,2,1e-

8、6) % 第三种方法z = 2.0946,Func evals x f(x) Procedure 1 2 -1 initial 2 1.94343 -1.54667 search 3 2.05657 -0.414934 search 4 1.92 -1.76211 search 5 2.08 -0.161088 search 6 1.88686 -2.05602 search 7 2.11314 0.209619 search Looking for a zero in the interval 1.8869, 2.1131 8 2.0922 -0.0261891 interpolation

9、9 2.09453 -0.000272594 interpolation 10 2.09455 6.41518e-009 interpolation 11 2.09455 -4.67499e-005 interpolationz = 2.0946,第四种方法说明经过11次迭代得到一个近似根2.0946,注意1:该函数为多项式,实际的零点有3个,其余两个为一对共轭复零点。由于fzero不能求复零点,因此任意的初始估计将给出同样的结果。,注意2:fzero函数认为零点是函数穿过x轴的点,时于与x轴相切的点,该函数将不能计算出来。,例2) 求方程sinx=x2/2的两个根,准确到10-6,取不同的初

10、值计算,输出初值,根的近似值和迭代次数.,x=-2:0.01:2;y1=sin(x);y2=x.2/2; plot(x,y1,x,y2),第一步:作图估计根的大体位置令 f(x)= sinx-x2/2,从上图可知,方程的一个根大体在0附近,另一个根大体在1.5附近.,第二步:求解,z1=fzero(sin(x)-x.2/2,1.5)z1 = 1.4044, z2=fzero(sin(x)-x.2/2,0.1)z2 = 5.8892e-023, z2=fzero(sin(x)-x.2/2,0)z2 = 0,options =optimset(Display,iter); z2=fzero(sin

11、(x)-x.2/2,0.1),注意:初始值的设置很关键,关系到运行次数和最终结果,5、Matlab中fsolve函数采用非线性最小二乘算法求解非线性方程组,其调用格式为:x=fsolve(fun,x0)x=fsolve(fun,x0,options)x,fval=fsolve(fun,x0,.)说明:非线性方程的一般描述 f(x)=0,其中x为向量,f(x)为一个函数向量。x=fsolve(fun,x0) 非线性方程fun求根,返回解向量x,方程fun定义在M文件fun.m中,并置初始解向量为x0.,function F=f710(x)F=2*x(1)-x(2)-exp(-x(1);-x(1)

12、+2*x(2)-exp(-x(2),第一步:编写函数组M文件,x0=-5*ones(2,1); %置初始解向量options = optimset(Display,iter);%设置显示输出中间反复(iteration)迭代结果x=fsolve(f710,x0,options ),第二步:求解,Norm of First-order Trust-region,Optimization terminated: first-order optimality is less than options.TolFun.x =0.5671 0.5671,Norm of First-order Trust-

13、region Iteration Func-count f(x) step optimality radius 0 3 17.4075 3.1 11 6 9.60902 1 2.41 12 9 0.00880582 2.5 0.106 2.53 12 5.14156e-007 0.0589635 0.000795 6.254 15 1.76204e-015 0.000457497 4.65e-008 6.25Optimization terminated: first-order optimality is less than options.TolFun.x = 0.5671 0.5671,x0=3*ones(2,1); %另置初始解向量options = optimset(Display,iter);%设置显示输出中间反复迭代结果x=fsolve(f710,x0,options),初值更改后调用情况,运行结果,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号