yuxinglong 发表于 2011-4-12 17:39

求大神指点 Matlab程序出现错误

clc
clear
%format short
syms W;   
L=1;   %梁的长度
d=0.02;   %梁的直径
E=2.1e11;
p=7800;      %密度
n=10;
I=pi*d^4/64;
m=p*pi*L*(d/2)^2/n;
C=1;
l=L/n;
c_point=;
c_chang=;
C_product=c_point*(c_chang^n);
for i=1:1:n
    C=C_product*C;
for W=1:1:10
T=;
f=det(T);
W=solve(f,W);
    w=sqrt(W);
double(w)
end
end
在for循环里面我想给W 赋予不同的值从1-10然后输出这个矩阵中右下角的四个元素的不同行列式值    哪错误了?    C=C_product*C; 个地方说有错误   哪错了呢希望专家指点

yuxinglong 发表于 2011-4-12 18:02

clc
clear
%format short
syms W;   
L=1;   %梁的长度
d=0.02;   %梁的直径
E=2.1e11;
p=7800;      %密度
n=10;
I=pi*d^4/64;
m=p*pi*L*(d/2)^2/n;
l=L/n;
c_point=;
c_chang=;
C_product=c_point*(c_chang^n);
for i=1:1:n
    C=C_product;
for W=1:1:10
T=;
f=det(T);
W=solve(f,W);
    w=sqrt(W);
double(w)
end
end
我这样改过之后运行的结果 出现很多一样的值   可是我的W是从1-10   应该输出10个不同的值啊   哪错了呢

yuxinglong 发表于 2011-4-12 18:09

clc
clear
%format short
syms W;   
L=1;   %梁的长度
d=0.02;   %梁的直径
E=2.1e11;
p=7800;      %密度
n=10;
I=pi*d^4/64;
m=p*pi*L*(d/2)^2/n;
l=L/n;
c_point=;
c_chang=;
C_product=c_point*(c_chang^n);
for i=1:1:n
    C=C_product;
for W=1:1:10
T=;
f=det(T);
double(f)
end
end
这样改过输出不同的f值   这里double(f)有错误哪错了?

meiyongyuandeze 发表于 2011-4-12 23:02

回复 3 # yuxinglong 的帖子

大概看了下你的程序,感觉你算出来的f值是符号变量吧,用 for W=1:1:10应该不能给W赋值吧,建议你看下matlab中的符号运算!
页: [1]
查看完整版本: 求大神指点 Matlab程序出现错误