matlab如何求解画图有一个变量的非线性方程?一个方程:%m文件function F=find_beta(B,w)U0=4*pi*10^(-7);Ud=U0;E0=8.854*10^(-12);Ed=2.56*E0;b=0.01016;h=b/3;F=[B(1)^2+B(3)^2-w^2*U0*E0;B(2)^2+B(3)^2-w^2*Ud*Ed;(B(1)/U0)*cot(B(1)*(b-h))+
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/16 13:43:58
matlab如何求解画图有一个变量的非线性方程?一个方程:%m文件function F=find_beta(B,w)U0=4*pi*10^(-7);Ud=U0;E0=8.854*10^(-12);Ed=2.56*E0;b=0.01016;h=b/3;F=[B(1)^2+B(3)^2-w^2*U0*E0;B(2)^2+B(3)^2-w^2*Ud*Ed;(B(1)/U0)*cot(B(1)*(b-h))+
matlab如何求解画图有一个变量的非线性方程?
一个方程:
%m文件
function F=find_beta(B,w)
U0=4*pi*10^(-7);Ud=U0;E0=8.854*10^(-12);Ed=2.56*E0;b=0.01016;h=b/3;
F=[B(1)^2+B(3)^2-w^2*U0*E0;B(2)^2+B(3)^2-w^2*Ud*Ed;(B(1)/U0)*cot(B(1)*(b-h))+(B(2)/Ud)*cot(B(2)*h)];
%然后画图
x0=[500;800;0.01];options = optimset('Display','off');w=1.5e+11:1e+10:3e+11;
for i=1:1e+9:length(w)
ww=w(i);B = fsolve(@(B) find_beta(B,ww),x0,options);
B1(i)=B(1);B2(i)=B(2);B3(i)=B(3);
end
plot(w/(2*pi*2.4e+10),B1,'-b',w/(2*pi*2.4e+10),B2,'-r',w/(2*pi*2.4e+10),B3,'-g')
最后的结果不对,应该是单调递增的曲线,而这个画出来的是一堆点,请问哪里错了?该如何修改?
matlab如何求解画图有一个变量的非线性方程?一个方程:%m文件function F=find_beta(B,w)U0=4*pi*10^(-7);Ud=U0;E0=8.854*10^(-12);Ed=2.56*E0;b=0.01016;h=b/3;F=[B(1)^2+B(3)^2-w^2*U0*E0;B(2)^2+B(3)^2-w^2*Ud*Ed;(B(1)/U0)*cot(B(1)*(b-h))+
% by dynamic of Matlab技术论坛
% 2010-03-02 10:43:30
%
程序错误在for i=1:1e+9:length(w),这里应该为for i=1:length(w)
所有全部程序应为
function matlabsky
%然后画图
x0=[500;800;0.01];
options = optimset('Display','off');
w=1.5e+11:1e+10:3e+11;
for i=1:1e+9:length(w)
ww=w(i);
B = fsolve(@(B) find_beta(B,ww),x0,options);
B1(i)=B(1);
B2(i)=B(2);
B3(i)=B(3);
end
plot(w/(2*pi*2.4e+10),B1,'-b',w/(2*pi*2.4e+10),B2,'-r',w/(2*pi*2.4e+10),B3,'-g')
%m文件
function F=find_beta(B,w)
U0=4*pi*10^(-7);Ud=U0;E0=8.854*10^(-12);Ed=2.56*E0;b=0.01016;h=b/3;
F=[B(1)^2+B(3)^2-w^2*U0*E0;B(2)^2+B(3)^2-w^2*Ud*Ed;(B(1)/U0)*cot(B(1)*(b-h))+(B(2)/Ud)*cot(B(2)*h)];
运行结果如下