b=1; c=1; a=0:1:8;
x1=a.*c;
x2=a-b.*a;
y=a.^2+b.^3+2*a.*c+min(x1,x2);
z=diff(y,a);
plot(a,z)
我是想实现上面的运算,但不知知道怎样写程序,望大神指点为谢!
b=1; c=1; syms a;
x1=a.*c;
x2=a-b.*a;
y=a.^2+b.^3+2*a.*c+min(x1,x2);
t=0:1:8;
z=diff(y,a);
subs(z,a,t);
plot(a,z)
Undefined function 'min' for input arguments of type 'sym'.
得不出来哦,你能帮忙修改一下么?,菜鸟琢磨了一会一直不行。谢谢!
b=1;
c=1;
a=0:1:8;
x1=a.*c;
x2=a-b.*a;
y=a.^2+b.^3+2*a.*c+min(x1,x2);
plot(a,y);hold on;
z=diff(y)./diff(a);
l = length(a);
plot(a(1:l-1),z,'r-');
不太理解后面I=length(a)=9, plot(a(1:l-1),z,'r-') 即为为plot(a(1:8),z),不是从1-8么?图中是0-7,为什么不到8?z是8维,它是a的计算怎么不是9维呢?为什么这样就能保证a,z 长度一致呢?而a为(0:I-2)又不行?
追答因为算导数要用到减法 (Δy=y2-y1), 用到两个数才能算一个Δ,故9个数只能算8个Δ, 所以算出来的导数值少一个.
追问谢谢,我是想知道length(a)-1 来调节a,z 长度相等的机理、、、还有plot(a(1:8),z)不是从1-8么?图中是0-7,这是为何呢?
追答x轴是a=0:1:8, 即a=0~8, 减掉一个就是0~7
还是得不出来哦,你能帮忙修改一下么?内容在补充问题后面,谢谢!