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

上传人:文**** 文档编号:240764652 上传时间:2024-05-06 格式:PPT 页数:24 大小:162.74KB
返回 下载 相关 举报
实验7-无穷级数与非线性方程求解(MATLAB)ppt课件_第1页
第1页 / 共24页
实验7-无穷级数与非线性方程求解(MATLAB)ppt课件_第2页
第2页 / 共24页
实验7-无穷级数与非线性方程求解(MATLAB)ppt课件_第3页
第3页 / 共24页
点击查看更多>>
资源描述
数学实验数学实验实验实验7 7 无穷级数与非线性方程求解无穷级数与非线性方程求解(MATLAB)(MATLAB)实验7 数学实验数学实验1 基础理论基础理论一一.无穷级数无穷级数设是一数列,我们把形式记号称为无穷级数,也记作2 实验实验 在Matlab中,求级数和的命令为 symsum,调用格式为:symsum(s,t,a,b)表达式s中的符号变量t从a到b的级数和(t缺省时设定为x或最接近x的字母)1 基础理论一.无穷级数设是一数列,我们把形式记号称为无穷数学实验数学实验例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例1)求(1)利用symsum处理(2)编程建立M文件数学实验数学实验例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)求无穷级数的收敛性.例2)求无穷级数的收敛性.syms n syms 数学实验数学实验二二.非线性方程非线性方程1 基础理论基础理论把称为n次代数方程.5次以上的方程就没有现成的求根公式了,但是总知道,n次方程有n个根,包括复根,当然重根要按重数计算根的个数.它与n(2)次代数方程一起统称为非线性方程非线性方程,记作 由其它数学问题归结得到的方程中还常常包含三角函数、指数函数等超越函数如,称为超越方程,求解超越方程不仅没有一般的公式,而且若只依据方程本身,那么连有没有根、有几个根,也难以判断。二.非线性方程1 基础理论把称为n次代数方程.5次以上的数学实验数学实验利用Matlab的图形功能就能帮助我们判断方程有没有根,并且确定根的近似位置。利用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的字母),该命令为符号计算2 代数方程求解数学实验数学实验(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(1)数值计算例1)求代数方程的根所以方程的根为:2.5数学实验数学实验 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)符号计算 syms x所以方程的根为:-1/2,3/2,5/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为根的代数方程 r=0.25-1 2+3i 2-3i;例2)求数学实验数学实验3、在Matlab中,solve采用符号解法求非线性方程(组),调用格式为:solve(f,t)对f中的符号变量t解方程f=0(t缺省时设定为x或最接近x的字母),该命令为符号计算solve(f=g,t)对符号变量t解方程f=g(t缺省时设定为x或最接近x的字母),该命令为符号计算3、在Matlab中,solve采用符号解法求非线性方程数学实验数学实验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=0syms x1)解方程 cos2x+sinx=1(在数学实验数学实验 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计算其值 s=double(s)syms x例2)解方程数学实验数学实验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).syms x y4)解方程组 所以方程组的解为(1,1数学实验数学实验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则不显示每次的迭代信息;否则就显示。则不显示每次的迭代信息;否则就显示。4、Matlab中fzero采用数值解法求解非线性方程,其调数学实验数学实验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.0946z=fzero(x3-2*x-5,2,1e-6,1)数学实验数学实验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第四种方法说明经过第四种方法说明经过1111次迭代得到一个近似根次迭代得到一个近似根2.09462.0946Func evals x f数学实验数学实验注意注意1 1:该函数为多项式,实际的零点有该函数为多项式,实际的零点有3 3个,其余两个为个,其余两个为一对共轭复零点。由于一对共轭复零点。由于fzerofzero不能求复零点,因此任意的不能求复零点,因此任意的初始估计将给出同样的结果。初始估计将给出同样的结果。注意注意2 2:fzerofzero函数认为零点是函数穿过函数认为零点是函数穿过x x轴的点,时于与轴的点,时于与x x轴相切的点,该函数将不能计算出来。轴相切的点,该函数将不能计算出来。注意1:该函数为多项式,实际的零点有3个,其余两个为注意2:数学实验数学实验例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 0附近附近,另一个根大体在另一个根大体在1.51.5附近附近.例2)求方程sinx=x2/2的两个根,准确到10-6,取数学实验数学实验第二步:求解第二步:求解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)第二步:求解z1=fzero(sin(x)-x.2/数学实验数学实验注意:注意:初始值的设置很关键,关系到运行次数和最终结果初始值的设置很关键,关系到运行次数和最终结果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.注意:初始值的设置很关键,关系到运行次数和最终结果5、Mat数学实验数学实验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)第二步:求解function F=f710(x)第一步:编写函数组M文件数学实验数学实验 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 Tr数学实验数学实验 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)初值更改后调用情况运行结果 Norm of First-order Tr
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!