求大神看看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 w1for n=1:N+1kn(i)=2*pi*n/L;S=kn(i)*tanh(kn(i)*D)-w1^2/g;wn(i)=solve(S,w1);i=i+1;end运行
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/28 05:41:00
![求大神看看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 w1for n=1:N+1kn(i)=2*pi*n/L;S=kn(i)*tanh(kn(i)*D)-w1^2/g;wn(i)=solve(S,w1);i=i+1;end运行](/uploads/image/z/1340339-59-9.jpg?t=%E6%B1%82%E5%A4%A7%E7%A5%9E%E7%9C%8B%E7%9C%8Bmatlab+%E7%A8%8B%E5%BA%8F%E5%93%AA%E5%87%BA%E9%94%99%E4%BA%86m.%E6%96%87%E4%BB%B6function+%5Bkn%2Cwn%5D%3DHai_Biao_FZ_13_1%28D%2CL%2CN%29digits%285%29g%3D9.8%3B%25%E9%87%8D%E5%8A%9B%E5%8A%A0%E9%80%9F%E5%BA%A6i%3D1%3Bkn%3Dzeros%281%2CN%2B1%29%3Bwn%3Dzeros%281%2CN%2B1%29%3Bsyms+w1for+n%3D1%3AN%2B1kn%28i%29%3D2%2Api%2An%2FL%3BS%3Dkn%28i%29%2Atanh%28kn%28i%29%2AD%29-w1%5E2%2Fg%3Bwn%28i%29%3Dsolve%28S%2Cw1%29%3Bi%3Di%2B1%3Bend%E8%BF%90%E8%A1%8C)
求大神看看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 w1for n=1:N+1kn(i)=2*pi*n/L;S=kn(i)*tanh(kn(i)*D)-w1^2/g;wn(i)=solve(S,w1);i=i+1;end运行
求大神看看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 程序哪出错了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 w1for n=1:N+1kn(i)=2*pi*n/L;S=kn(i)*tanh(kn(i)*D)-w1^2/g;wn(i)=solve(S,w1);i=i+1;end运行
把
wn(i)=solve(S,w1);改成
w = double(solve(S,w1));wn(i)=w(w>=0);
原因是,用solve求出来的是解析解,变量类型是sym对象,不能赋值给double类型的wn,应该使用double进行转换.但求出来的w1有两个值,所以需要去掉负数的那个值,这就是第二行代码的作用.