matlab中如何画导函数图像?其中x(2)-x(1)以及(1:y11=(-x).*sin(x);y12=(-x).*cos(x)-sin(x);y21=diff(y11)./(x(2)-x(1));y22=(y21-y12(1:n-1));将四个函数画在同一个图上~
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 10:21:17
matlab中如何画导函数图像?其中x(2)-x(1)以及(1:y11=(-x).*sin(x);y12=(-x).*cos(x)-sin(x);y21=diff(y11)./(x(2)-x(1));y22=(y21-y12(1:n-1));将四个函数画在同一个图上~
matlab中如何画导函数图像?其中x(2)-x(1)以及(1:
y11=(-x).*sin(x);
y12=(-x).*cos(x)-sin(x);
y21=diff(y11)./(x(2)-x(1));
y22=(y21-y12(1:n-1));
将四个函数画在同一个图上~
matlab中如何画导函数图像?其中x(2)-x(1)以及(1:y11=(-x).*sin(x);y12=(-x).*cos(x)-sin(x);y21=diff(y11)./(x(2)-x(1));y22=(y21-y12(1:n-1));将四个函数画在同一个图上~
matlab画导数就是先把区间分解为一小段一小段的,然后在每一个小段上计算这一段上(x1,f(x1))和(x2,f(x2))连线的斜率(x1,x2为区间端点),只要你分割足够细,画出来的就近似是导数.
所以,以上命令里面x是一个向量,表示分割出来的每一段的端点的集合,x在画图之前要自己设定好,根据需要来,比如:
x = [-10:0.01:10];
就表示你是在区间[-10,10]上画函数的导数,且分割出来的每个端点间距是0.01.
第一行就是在计算函数值组成的向量,(-x).这里的点是在做点对点运算,也就是对每个x计算x*sin(x)的数值,不加点matlab就不认识,以为是要做矩阵运算.算出来的y11也是向量,维度和x一样.
第二行同理,注意到y12的形式恰好是y11的导数,称为解析形式;
第三行里头,x(2)-x(1)就是x向量里第二个元素减去第一个元素,x(n)是用来提取元素的命令.diff(y11)是对y11这个向量进行差分,也就是y(1)-y(2),y(2)-y(3).然后组成一个新向量称为diff(y11),所以如果x是n维的,那么它就是n-1维的.加点还是表示点对点运算.不知道为何你要除以x(2)-x(1),应该是写diff(x)才对,这样才是在计算每一段上小线段的斜率;
计算第四行的目的是要你比较数值计算的结果(就是y21)和你自己求导后得到的解析结果(y12)进行比较.如果y22近似是一个零向量,就表示数值计算的结果很精确误差很低.y21现在是一个n-1维向量,y12现在是一个n维向量,为了让他俩能够相减,所以需要提取y12这个向量的前n-1个元素,这就是命令(1:n-1)的意思.
最后的画图命令是(必须保证同维度才可以画图):
x=x(1:n-1);
plot(x,y11(1:n-1),x,y12(1:n-1),x,y21,x,y22)
是北邮软院的么???