好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

24页
  • 卖家[上传人]:慢***
  • 文档编号:231279920
  • 上传时间:2021-12-28
  • 文档格式:PPT
  • 文档大小:247KB
  • / 24 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 数学实验实验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+.+1/10=s = 2.9290数学实验例2) 求无穷级数的收敛性.syms n symsum(1/n,n,1,inf) %inf表示正无穷 ans = inf syms n symsum(-1)(n-1),n,1,inf) ans = log(2)例3) 求无穷级数的收敛性.数学实验二. 非线性方程1 基础理论把称为n次代数方程. 5次以上的方程就没有现成的求根公式了,但是总知道,n次方程有n个根,包括复根,当然重根要按重数计算根的个数. 它与n(2)次代数方程一起统称为非线性方程,记作 由其它数学问题归结得到的方程中还常常包含三角函数、指数函数等超越函数如,称为超越方程,求解超越方程不仅没有一般的公式,而且若只依据方程本身,那么连有没有根、有几个根,也难以判断。

      数学实验利用Matlab的图形功能就能帮助我们判断方程有没有根,并且确定根的近似位置 数学实验2 代数方程求解当f(x)为多项式时可用r=roots(c) 输入多项式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例1) 求代数方程的根所以方程的根为:2.5,1.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中的符号变量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*pi1) 解方程 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(-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/24) 解方程组 所以方程组的解为(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)的符号不同,调用时如果符号相同则报错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=0z=fzero(x3-2*x-5,2) % 第一种方法z = 2.0946z=fzero(x3-2*x-5,0 3) %第二种方法z = 2.0946z=fzero(x3-2*x-5,2,1e-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 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,取不同的初值计算,输出初值,根的近似值和迭代次数.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 = 0options =optimset(Display,iter); z2=fzero(sin(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)+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迭代次数函数赋值次数函数值步最优的半径范围IterationFunc-countf(x)stepoptimalityradius0347071.22.29e+00411612003.415.75e+0031293147.0211.47e+0031312854.45213881415239.5271107151867.0412130.8162116.704219.0517242.4278812.2618270.0326580.7595110.2062.59307.03149e-0060.1119270.002942.510333.29525e-0130.001691326.36e-0072.5Optimization terminated: first-order optimality is less than options.TolFun.x =0.5671 0.5671数学实验 Norm of First-order Trust-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.5671x0=3*ones(2,1); %另置初始解向量options = optimset(Display,iter);%设置显示输出中间反复迭代结果x=fsolve(f710,x0,options)初值更改后调用情况运行结果。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.