作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/23 00:23:45
求大神看看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)
求大神看看matlab 程序哪出错了
把    wn(i)=solve(S,w1);改成    w = double(solve(S,w1));
    wn(i)=w(w>=0);原因是,用solve求出来的是解析解,变量类型是sym对象,不能赋值给double类型的wn,应该使用double进行转换.但求出来的w1有两个值,所以需要去掉负数的那个值,这就是第二行代码的作用.