LaTeX代码中横线、矢量、分式、指数、偏导、微分、极限、积分、求和
代码 | 效果 |
---|---|
\over{x} | |
\vec{A} | |
\frac{x}{y} | |
e^{-\alpha t} | |
\partial | |
\mathrm{d}t | |
\lim\limits_{{x \to \infty\ y\to\infty}} | |
\int_{-X}^{Y} \exp(z), dz | |
\sum_{n=1}^{\infty} |
1 、编写一个矩阵相加函数mat_add() ,使其具体的调用格式为A=mat_add(A1 ,A2 ,A3 ,…) , 要求该函数能接受任意多个矩阵进行加法运算。(注:varargin 变量的应用)
function A=mat_add(varargin)
x=size(varargin{1})
A=zeros(x)
for i=1:length(varargin),A+=varargin{i};end
报错:
索引超出矩阵维数
出错mat_add(line 2)
x=size(varargin{1})
出现了超出维度的问题,主要是因为我对格式不太懂,函数中varargin赋值之前提取了varargin{1}的对象,增加了维度。
这里使用最简单的办法
function A=mat_add(varargin)
A=0;
for i=1:length(varargin),A=A+varargin{i};
end
搞定~!
2、请绘制出sin(xy)在[-π,π]上的三维图和等高线
>>[x,y]=meshgrid(-pi:.1:pi);#做网格
>>>z=sin(x.*y);
>>>surf(x,y,z)#做表面
>>>figure
>>contour(x,y,z,30)
P.S 出场自带赋值函数的变量不用声明(MatLab)
3、试求出如下极限
>>syms x y;
>>f=(1-cos(x^2+y^2))/((x^2+y^2)*exp(x^2+y^2));
>>>L=limit(limit(f,x,0),y,0)
P.S.
limit(函数,求极限的参量,趋近的值)P.S.可以逐个参量求极限
>>L=0
4、 试求出下面函数的导数
>>syms x y;
>>f=-atan(y/x)+log(x^2+y^2);
>>F=-diff(f,x)/diff(f,y);
>>simplify(F)
P.S.
atan()为反正切函数
log10()为对10求对数(默认就是10,即ln函数)
ans=(2*x+y)/(x-2*y)
5、假设 ,试求
>>syms t x y;
>>f=exp(-t^2);
>>I=int(f,t,0,x*y);
>>dfx2=diff(I,x,2);
>>dfxy=diff(diff(I,x),y);
>>dfy2=diff(I,y,2);
>>fun=(x/y)*dfx2-2*dfxy-2*dfxy+dfy2;
>>sim_fun=simplify(fun)
P.S.
int(函数,积分参量,积分下限,积分上限)
diff(函数,偏导参量,阶数)
sim_fun =
-2*exp(-x^2*y^2)*(x^3*y - 3*x^2*y^2 + 2)
6*、假设 ,试求出积分函数
>>syms x t;
>>f=exp(-5*x)*sin(3*x+pi/3);
>>fix=subs(f,x,t+x);
>>I=int(f*ftx,x,0,t);
>>sim_I=simplify(I);
P.S.
subs(目标函数,被替换量,替换量)
6、试求出下面函数的Taylor幂级数展开。 分别关于 的幂级数展开
>>syms x;
>>f=exp(-5*x)*sin(3*x+pi/3);
>>y1=taylor(f,x)
>>syms a;
>>y2=taylor(f,x,a)
P.S.
taylor(原函数,自变量,展开目标点)
y1 =
((305*3^(1/2))/12 + 239/20)*x^5 + (- (161*3^(1/2))/12 - 20)*x^4 + ((5*3^(1/2))/6 + 33/2)*x^3 + (4*3^(1/2) - 15/2)*x^2 + (3/2 - (5*3^(1/2))/2)*x + 3^(1/2)/2
y2 =
sin(3*a + pi/3)*exp(-5*a) - (a - x)^3*(33*cos(3*a + pi/3)*exp(-5*a) + (5*sin(3*a + pi/3)*exp(-5*a))/3) - (a - x)^4*(40*cos(3*a + pi/3)*exp(-5*a) + (161*sin(3*a + pi/3)*exp(-5*a))/6) - (a - x)^5*((239*cos(3*a + pi/3)*exp(-5*a))/10 + (305*sin(3*a + pi/3)*exp(-5*a))/6) - (a - x)^2*(15*cos(3*a + pi/3)*exp(-5*a) - 8*sin(3*a + pi/3)*exp(-5*a)) - (a - x)*(3*cos(3*a + pi/3)*exp(-5*a) - 5*sin(3*a + pi/3)*exp(-5*a))
7、试求出下面的极限。 。
>>syms m n
>>L=limit(n*symsum(1/(n^2+m*pi),m,1,n),n,inf)
P.S.
求和命令symsum(通项表达式,求和变量,求和起点,球和终点)
L=1
8、试对下面数值描述的函数求取各阶(<5)数值微分,并用梯形法求取定积分。
0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 | 1 | 1.1 | 1.2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2.208 | 3.206 | 3.444 | 3.241 | 2.816 | 2.311 | 1.81 | 1.36 | 0.982 | 0.679 | 0.447 | 0.277 |
function [dy,dx] = diff_ctr(y,Dt,n)
yx1=[y 0 0 0 0 0];yx2=[0 y 0 0 0 0];yx3=[0 0 y 0 0 0];
yx4=[0 0 0 y 0 0];yx5=[0 0 0 0 y 0];yx6=[0 0 0 0 0 y];
switch n
case 1
dy = (-diff(yx1)+7*diff(yx2)+7*diff(yx3)-diff(yx4))/(12*Dt);L0=3;
case 2
dy=(-diff(yx1)+15*diff(yx2)-15*diff(yx3)+diff(yx4))/(12*Dt^2);L0=3;
case 3
dy=(-diff(yx1)+7*diff(yx2)-6*diff(yx3)-6*diff(yx4)+7*diff(yx5)-diff(yx6))/(8*Dt^3);L0=5;
case 4
dy=(-diff(yx1)+11*diff(yx2)-28*diff(yx3)+28*diff(yx4)-11*diff(yx5)+diff(yx6))/(6*Dt^4);L0=5;
end
dy=dy(L0+1:end-L0); dx=([1:length(dy)]+L0-2-(n>2))*Dt;
P.S.
L0是确保左右有足够多的项来提供计算
MATLAB中向量是串位相加
如x=[0 y 0],y=[1,2,3]
有ans= [0 1 2 3 0]
>>x=[0:.1:1.2];
>>y=[0 2.208 3.206 3.444 3.241 2.816 2.311 1.81 1.36 0.982 0.679 0.447 0.277];
>>[dy1,dx1]=diff_ctr(y,x(2)-x(1),1)
>>[dy2,dx2]=diff_ctr(y,x(2)-x(1),2)
>>[dy3,dx3]=diff_ctr(y,x(2)-x(1),3)
>>[dy4,dx4]=diff_ctr(y,x(2)-x(1),4)
P.S.
这里要注意function在命名的时候一定要和函数名相同才能再下面直接调用,否则会报错
得到各阶导数
dy1 =
5.5392 -0.2733 -3.4408 -4.8383 -5.1392 -4.8117 -4.1600 -3.4042 -2.6642 -1.8617 -2.4142
dx1 =
0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000 1.1000 1.2000
dy2 =
-74.9083 -43.2667 -21.5583 -7.5167 0.7083 5.3167 7.3500 7.5583 7.1417 7.5333 -15.3083
dx2 =
0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000 1.1000 1.2000
dy3 =
262.2500 175.2500 108.0000 61.5000 31.6250 9.6250 -2.1250
dx3 =
0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
dy4 =
-986.6667 -763.3333 -583.3333 -353.3333 -255.0000 -185.0000 -55.0000
dx4 =
0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000
得到梯形定积分
>>xd=[0:0.1:1.2];
>>yd=[0 2.208 3.206 3.444 3.241 2.816 2.311 1.81 1.36 0.982 0.679 0.447 0.277];
>>S=trapz(xd,yx)
S =
2.2642
9、计算被积函数 在[0,1)区间上的积分。
>>f=@(x)exp(x).*log(x);
>>Int_f=integral(f,0,1)
P.S.
integral(句柄,下限,上限)
求出来的是数值积分(数值解)
是以x为自变量的
函数
Int_f =
-1.3179
10、.求函数 在区域0≤x≤π、0≤y≤1和-1≤z≤1的积分。
>>syms x y z;
>>Int_f=int(int(int(y*sin(x)+z*cos(x),x,0,pi),y,0,1),z,-1,1)
Int_f =
2