资源描述:
《Matlab笔记——数值计算—高数篇015》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、15.数值计算—高数篇一、求极限limit(f,x,a)——求极限limit(f,x,a,'right')——求右极限limit(f,x,a,'left')——求左极限例1求代码:symsx;y=(3*x^2+5)/(5*x+3)*sin(2/x);limit(y,x,inf)运行结果:ans=6/5注:Matlab求二元函数的极限,是用嵌套limit函数实现的,相当于求的是累次极限,需要注意:有时候累次极限并不等于极限。例2求代码:symsxab;y=((a^x+b^x)/2)^(3/x);limit(
2、y,x,0,'right')运行结果:ans=a^(3/2)*b^(3/2)二、求导diff(f,x,n)——求函数f关于x的n阶导数,默认n=1例3求的1阶导数,并绘图代码:symsxab;y=((a^x+b^x)/2)^(3/x);limit(y,x,0,'right')运行结果:y1=cos(x)/(cos(x)+1)+(sin(x)*(sin(x)+1))/(cos(x)+1)^2例4设,求代码:symsxy;z=exp(sin(x*y));zx=diff(z,x)zy=diff(z,y)zxy=
3、diff(zx,y)%也等于diff(zy,x)运行结果:zx=y*exp(sin(x*y))*cos(x*y)zy=x*exp(sin(x*y))*cos(x*y)zxy=x*y*exp(sin(x*y))*cos(x*y)^2+exp(sin(x*y))*cos(x*y)–x*y*exp(sin(x*y))*sin(x*y)三、求极值1.一元函数极值[x0,min]=fminbnd(f,a,b)——返回函数f(x)在区间(a,b)上的极小值点和极小值例5求函数在区间(-2,4)上的极值代码:f=@(x
4、)2*x^3-6*x^2-18*x+7;g=@(x)-2*x^3+6*x^2+18*x-7;[x0,min]=fminbnd(f,-2,4)[x1,max]=fminbnd(g,-2,4)fplot(f,[-2,4]);运行结果:x0=3.0000min=-47.0000x1=-1.0000max=-17.00002.多元函数极值[X1,f1]=fminunc(f,X0)——处理连续情形[X1,f1]=fminsearch(f,X0)——可以处理不连续情形二者用法相同,返回极小值点和极小值,其中X为初始点
5、。例6求的极小值代码:f=@(x)(1-x(1))^2+100*(x(2)-x(1)^2)^2;x0=[-5-2];[x1,f1]=fminsearch(f,x0)运行结果:x1=1.00001.0000f1=2.7969e-010四、求不定积分与定积分1.符号积分int(f,x)——求f(x)关于x的不定积分int(f,x,a,b)——求f(x)关于x的从a到b的定积分例7求积分和代码:symsxa;int((log(x)-a)/x^2,x)int((log(x)-a)/x^2,x,1,inf)运行结果
6、:ans=-(log(x)-a+1)/xans=1–a注:不定积分的结果是忽略任意常数C的。2.二重积分可以化为累次积分,再用两次int函数实现。例8求二重积分,先化为累次积分:原式=代码:symsxy;int(int(1+x+y,y,-sqrt(1-x^2),sqrt(1-x^2)),x,-1,1)运行结果:ans=pi3.数值积分quad(f,a,b)——辛普森法定积分,默认误差为10-6,低精度的非光滑曲线计算中是最有效;quadl(f,a,b)——Lobatto法定积分,在高精度的光滑曲线计算中更
7、为高效;quad2d(f,a,b,c,d)——二重积分,其中f(x,y)为二元函数,[a,b]为x的范围,[c(x),d(x)]为y的范围;例9求代码:f=@(x)(log(x)-1)./x.^2;%注意’.’不能忽略y=quad(f,1,10)运行结果:y=-0.2303例10用数值积分法求解例8.代码:quad2d(@(x,y)1+x+y,-1,1,@(x)-sqrt(1-x.^2),@(x)sqrt(1-x.^2),'AbsTol',1e-12)%注意点运算运行结果:ans=3.1416或者用两次q
8、uad函数,中间需要用arrayfun函数做向量值化处理,该方法可以推广到三重积分。quad(@(x)arrayfun(@(xx)quad(@(y)1+xx+y,-sqrt(1-xx.^2),sqrt(1-xx.^2)),x),-1,1)程序说明:先对f(x,y)关于y从-sqrt(1-x.^2)到sqrt(1-x.^2)]做一次积分,为了后面使用变量名x,这里先用xx,得到一个关于xx的函数(只能接受自变量为标量xx):qu