求大神看看matlab 程序哪出错了

问题描述:

求大神看看matlab 程序哪出错了
m.文件
function [kn,wn]=Hai_Biao_FZ_13_1(D,L,N)
digits(5)
g=9.8;%重力加速度
i=1;kn=zeros(1,N+1);wn=zeros(1,N+1);
syms w1
for n=1:N+1
kn(i)=2*pi*n/L;
S=kn(i)*tanh(kn(i)*D)-w1^2/g;
wn(i)=solve(S,w1);
i=i+1;
end
运行 [kn,wn]=Hai_Biao_FZ_13_1(130,1500,10000)
1个回答 分类:综合 2014-09-29

问题解答:

我来补答
把    wn(i)=solve(S,w1);改成    w = double(solve(S,w1));
    wn(i)=w(w>=0);原因是,用solve求出来的是解析解,变量类型是sym对象,不能赋值给double类型的wn,应该使用double进行转换.但求出来的w1有两个值,所以需要去掉负数的那个值,这就是第二行代码的作用.
 
 
展开全文阅读
剩余:2000
上一页:牛刀小试4
下一页:第二问不会作
也许感兴趣的知识