1 求函数在指定点的导数值()232123,1,2,3 026x x xf x x x xx==>> syms x>> a=[x x^2 x^3;1 2*x 3*x^2;0 2 6*x]; >> f=det(a);>> diff(f,1)ans =6*x^2>> diff(f,2)ans =12*x>> diff(f,3)ans =122 符号法求下列函数的导数或积分1)y=x10+10x+logx10,求y’f=('x^10+10^x+log(10)/log(x)')f =x^10+10^x+log(10)/log(x)>> diff(f)ans =10*x^9+10^x*log(10)-log(10)/log(x)^2/x2)y=ln(1+x), 求y’’∣x=1f=('log(1+x)/log(e)')f =log(1+x)/log(e)>> diff(f,1,2)ans =-1/(1+x)^2/log(e)3) y=e x/cosx,求y’f=('exp(x)/cos(x)')f =exp(x)/cos(x)>> diff(f)ans =exp(x)/cos(x)+exp(x)/cos(x)^2*sin(x)4)function f=fun0(t)f=t*sin(t)int('fun0','0','pi')ans =1/2*pi^25) 已知函数z=sin(xy), 计算syms x y>> z=('sin(x*y)')z =sin(x*y)>> diff(diff(z,y,2),x)ans =-cos(x*y)*y*x^2-2*sin(x*y)*x3 用数值方法求定积分1)function f=fun(x)f=x.^2.*sqrt(2.*x.^2+3)quad('fun',1,5)ans =232.80572)function f=fun(x)f=x./sin(x).^2quad('fun',pi/4,pi/3)ans =0.38354 已知数据[x,y]如下表,试求2次拟合多项式f(x),然后求x=0.05,0.25,0.45,0.65,0.85,1.05各点的函数近似值,并绘出拟合曲线及求得的函数点。
>> x=[0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0];>> y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.3 11.2]; >> a=polyfit(x,y,2)a =-9.8108 20.1293 -0.0317>> x0=[0.0:0.1:1.0];>> y0=a(3)+a(2).*x0+a(1).*x0.^2;>> plot(x,y,'*')>> hold on>> plot(x0,y0,'-r')>> x1=[0.05 0.25 0.45 0.65 0.85 1.05];>> y1=interp1(x0,y0,x1)y1 =Columns 1 through 50.9257 4.3629 7.0153 8.8828 9.9654Column 6NaN5 求方程e x sinx=0在区间[-4,-3]上的一个根。
x=fzero('exp(x).*sin(x)',[-4,-3])x =-3.14166 已知某函数的离散点列如下分别使用hermite插值、三次样条插值、三次方插值估算在x在2.5,1.5,0.5,-0.5,-1.5,-2.5的函数值,并在同一张图上绘制出三条曲线。
>> x0=[-4 -3 -2 -1 0 1 2 3 4];>> y0=[0.97279 3.4234 3.8186 1.8415 0 -0.15853 -0.18141 -2.5766 -7.0272]; >> x=[-4:1:4];>> y=pchip(x0,y0,x);>> plot(x,y,'-r')>> hold on>> y=spline(x0,y0,x);>> plot(x,y,'-b')>> hold on>> a=polyfit(x0,y0,3)a =0.0000 -0.2395 -1.0000 1.6092>> y=a(4)+a(3).*x+a(2).*x.^2+a(1).*x.^3;>> plot(x,y,'-k')>> t=[2.5 1.5 0.5 -0.5 -1.5 -2.5];>> g=interp1(x0,y0,t,'pchip')g =Columns 1 through 5-0.9954 -0.1693 -0.1108 0.7189 3.0684 Column 63.7061>> f=interp1(x0,y0,t,'spline')f =Columns 1 through 5-1.0538 0.0011 -0.2499 0.7501 3.0011 Column 63.9462>> h=interp1(x0,y0,t)h =Columns 1 through 5-1.3790 -0.1700 -0.0793 0.9207 2.8301 Column 63.62107 用经典的RK方法计算常微分方程:y’=e-2t-2y 初值条件y(0)=0.1function f=fun(x,y)f=exp(-2.*x)-2.*y>> [x,y]=ode23('fun',[0,1],1);f =-1f =-0.9969f =-0.9935f =-0.9885f =-0.9707f =-0.9616f =-0.9488f =-0.9203f =-0.9080f =-0.8911f =-0.8563f =-0.8422f =-0.8231f =-0.7853f =-0.7704f =-0.7504f =-0.7118f =-0.6970f =-0.6771f =-0.6392f =-0.6249f =-0.6056f =-0.5695f =-0.5560f =-0.5379f =-0.5041f =-0.4915f =-0.4748f =-0.4437f =-0.4322f =-0.4168f =-0.4113f =-0.4087f =-0.40598 求二阶微分方程初值条件为x(0)=1, x’(0)=0 建立m文件function dy=fun(x,y)dy=zeros(2,1);dy(1)=y(2);dy(2)=(1-x^2)*y(2)-x;ode45('fun',[0,10],[1,0]);9 用三点公式和五点公式求F(x)=1/(1+x)2在x=1.1处的导数值。
>> x=[1:0.1:1.4];>> fun=1./(1+x).^2;>> y=subs(fun,x)y =0.2500 0.2268 0.2066 0.1890 0.1736>> h=0.1;>> a=1/(2*h)*(y(3)-y(1))a =-0.2169>> b=1/(12*h)*(-3*y(1)-10*y(2)+18*y(3)-6*y(4)+y(5))b =-0.216010求>> syms x>> f=(x^3+x^2+x+1)^(1/3)-sqrt(x^2+x+1)*log(exp(x)+x)/xf =(x^3+x^2+x+1)^(1/3)-(x^2+x+1)^(1/2)*log(exp(x)+x)/x>> limit(f,x,inf)ans =-1/6。