我这个程序所在的错误我弄不明白,请大家指点
我要对一个悬臂梁振动前四阶振型进行求导,然后用matlab做出其图像,但是总是出现这个错误的提示:??? Error using ==> plot
Vectors must be the same lengths.
请大家给予指点。
L=1;%悬臂梁的度
C1=10; %假设 C1
a1=1.875/L;
a2=4.694/L;
a3=7.855/L;
a4=7*pi/2*L;
x=0:0.01:1;
y1=C1*( cos(a1*x)-cosh(a1*x) + (cos(a1*L)+cosh(a1*L))*(sinh(a1*x)-sin(a1*x))/(sin(a1*L)+sinh(a1*L)) );
%第一阶振型函数
y2=C1*( cos(a2*x)-cosh(a2*x) + (cos(a2*L)+cosh(a2*L))*(sinh(a2*x)-sin(a2*x))/(sin(a2*L)+sinh(a2*L)) );
%第三阶振型函数
y3=C1*( cos(a3*x)-cosh(a3*x) + (cos(a3*L)+cosh(a3*L))*(sinh(a3*x)-sin(a3*x))/(sin(a3*L)+sinh(a3*L)) );
%第三阶振型函数
y4=C1*( cos(a4*x)-cosh(a4*x) + (cos(a4*L)+cosh(a4*L))*(sinh(a4*x)-sin(a4*x))/(sin(a4*L)+sinh(a4*L)) );
%第四阶振型函数
m1=diff(y1);
%对第一阶振型函数求导
m2=diff(y2);
%对第二阶振型函数求导
m3=diff(y3);
%对第三阶振型函数求导
m4=diff(y4);
%对第四阶振型函数求导
plot(x,m1,x,m2,x,m3,x,m4)
%绘各阶振型函数曲线 求导之后,导数值比变量少了一个。 提示不是写的很清楚吗,长度不同,x是101的,m1 m2 m3 m4都是100的
看看这样行不行
L=1;%悬臂梁的度C1=10; %假设 C1
a1=1.875/L;
a2=4.694/L;
a3=7.855/L;
a4=7*pi/2*L;
x=0:0.01:1;
xl=length(x)
y1=C1*( cos(a1*x)-cosh(a1*x) + (cos(a1*L)+cosh(a1*L))*(sinh(a1*x)-sin(a1*x))/(sin(a1*L)+sinh(a1*L)) );
%第一阶振型函数
y2=C1*( cos(a2*x)-cosh(a2*x) + (cos(a2*L)+cosh(a2*L))*(sinh(a2*x)-sin(a2*x))/(sin(a2*L)+sinh(a2*L)) );
%第三阶振型函数
y3=C1*( cos(a3*x)-cosh(a3*x) + (cos(a3*L)+cosh(a3*L))*(sinh(a3*x)-sin(a3*x))/(sin(a3*L)+sinh(a3*L)) );
%第三阶振型函数
y4=C1*( cos(a4*x)-cosh(a4*x) + (cos(a4*L)+cosh(a4*L))*(sinh(a4*x)-sin(a4*x))/(sin(a4*L)+sinh(a4*L)) );
%第四阶振型函数
m1=diff(y1);
m1l=length(m1)
%对第一阶振型函数求导
m2=diff(y2);
%对第二阶振型函数求导
m3=diff(y3);
%对第三阶振型函数求导
m4=diff(y4);
%对第四阶振型函数求导
xx=x(2:xl)
plot(xx,m1,xx,m2,xx,m3,xx,m4) 你的X输出有101个数,而y1,y2,y3,y4求导后都会少一个数,是100个。应该再定义一个X1=0.01:0.01:1。最后改为plot(x1,m1,x1,m2,x1,m3,x1,m4)就可以了
请问这个程序改里面的哪个部分才能正确
L=1;%悬臂梁的度C1=10; %假设 C1
a1=1.875/L;
a2=4.694/L;
a3=7.855/L;
a4=7*pi/2*L;
x=0:0.1:1;
y1=C1*( cos(a1*x)-cosh(a1*x) + (cos(a1*L)+cosh(a1*L))*(sinh(a1*x)-sin(a1*x))/(sin(a1*L)+sinh(a1*L)) );
%第一阶振型函数
y2=C1*( cos(a2*x)-cosh(a2*x) + (cos(a2*L)+cosh(a2*L))*(sinh(a2*x)-sin(a2*x))/(sin(a2*L)+sinh(a2*L)) );
%第三阶振型函数
y3=C1*( cos(a3*x)-cosh(a3*x) + (cos(a3*L)+cosh(a3*L))*(sinh(a3*x)-sin(a3*x))/(sin(a3*L)+sinh(a3*L)) );
%第三阶振型函数
y4=C1*( cos(a4*x)-cosh(a4*x) + (cos(a4*L)+cosh(a4*L))*(sinh(a4*x)-sin(a4*x))/(sin(a4*L)+sinh(a4*L)) );
%第四阶振型函数
m1=diff(y1,2);
m2=diff(y2,2);
m3=diff(y3,2);
m4=diff(y4,2);
x1=0.01:0.01:1;
subplot(4,1,1)
plot(x,m1)%绘第一阶振型函数曲线
subplot(4,1,2)
plot(x,m2)%绘第二阶振型函数曲线
subplot(4,1,3)
plot(x,m3)%绘第三阶振型函数曲线
subplot(4,1,4)
plot(x,m4)%绘第四阶振型函数曲线 前面的帖子不是有人给你回过了吗 我对振型函数求了二阶导数后,还是弄不明白,改了相关参数后,结果还是不正确 diff是求差分,对一个向量求n阶差分,就会少n个点。你把x的前两个点去掉再画图 这样改后还是有错误,我还是不明白
L=1;%悬臂梁的度
C1=10; %假设 C1
a1=1.875/L;
a2=4.694/L;
a3=7.855/L;
a4=7*pi/2*L;
x=0:0.01:1;
x1=0.02:0.01:1;
y1=C1*( cos(a1*x)-cosh(a1*x) + (cos(a1*L)+cosh(a1*L))*(sinh(a1*x)-sin(a1*x))/(sin(a1*L)+sinh(a1*L)) );
%第一阶振型函数
y2=C1*( cos(a2*x)-cosh(a2*x) + (cos(a2*L)+cosh(a2*L))*(sinh(a2*x)-sin(a2*x))/(sin(a2*L)+sinh(a2*L)) );
%第三阶振型函数
y3=C1*( cos(a3*x)-cosh(a3*x) + (cos(a3*L)+cosh(a3*L))*(sinh(a3*x)-sin(a3*x))/(sin(a3*L)+sinh(a3*L)) );
%第三阶振型函数
y4=C1*( cos(a4*x)-cosh(a4*x) + (cos(a4*L)+cosh(a4*L))*(sinh(a4*x)-sin(a4*x))/(sin(a4*L)+sinh(a4*L)) );
%第四阶振型函数
z1=diff(y1);
z2=diff(y2);
z3=diff(y3);
z4=diff(y4);
subplot(4,1,1)
plot(x1,z1)%绘第一阶振型函数曲线
subplot(4,1,2)
plot(x1,z2)%绘第二阶振型函数曲线
subplot(4,1,3)
plot(x1,z3)%绘第三阶振型函数曲线
subplot(4,1,4)
plot(x1,z4)%绘第四阶振型函数曲线
??? Error using ==> plot
Vectors must be the same lengths. 谢谢大家 我终于摸索出来了
L=1;%悬臂梁的度
C1=10; %假设 C1
a1=1.875/L;
a2=4.694/L;
a3=7.855/L;
a4=7*pi/2*L;
x=0:0.01:1;
x1=0.02:0.01:1;
y1=C1*( cos(a1*x)-cosh(a1*x) + (cos(a1*L)+cosh(a1*L))*(sinh(a1*x)-sin(a1*x))/(sin(a1*L)
+sinh(a1*L)) );
%第一阶振型函数
y2=C1*( cos(a2*x)-cosh(a2*x) + (cos(a2*L)+cosh(a2*L))*(sinh(a2*x)-sin(a2*x))/(sin(a2*L)
+sinh(a2*L)) );
%第三阶振型函数
y3=C1*( cos(a3*x)-cosh(a3*x) + (cos(a3*L)+cosh(a3*L))*(sinh(a3*x)-sin(a3*x))/(sin(a3*L)
+sinh(a3*L)) );
%第三阶振型函数
y4=C1*( cos(a4*x)-cosh(a4*x) + (cos(a4*L)+cosh(a4*L))*(sinh(a4*x)-sin(a4*x))/(sin(a4*L)
+sinh(a4*L)) );
%第四阶振型函数
z1=diff(y1,2);
z2=diff(y2,2);
z3=diff(y3,2);
z4=diff(y4,2);
subplot(4,1,1)
plot(x1,z1)%绘第一阶振型函数曲线
subplot(4,1,2)
plot(x1,z2)%绘第二阶振型函数曲线
subplot(4,1,3)
plot(x1,z3)%绘第三阶振型函数曲线
subplot(4,1,4)
plot(x1,z4)%绘第四阶振型函数曲线 我想请问,那个C1为什么取10??
页:
[1]