syms n i q
H=1.8;lanmuda=1.4;n1=1.55;n2=1.67;n3=1.50;
k0=2*pi/lanmuda;
for q=0:2
i=q;
Si=solve(sqrt(n2*n2-n^2)*k0*H-atan(sqrt(n^2-n1*n1)/sqrt(n2*n2-n^2))-atan(sqrt(n^2-n3*n3)/sqrt(n2*n2-n^2))-q*pi==0,n);
end
主要是是想求在q=0,1,2,3.....下的不同的n值,循环程序不对,求帮忙修改。
MATLAB用for循环解个方程
答案:2 悬赏:0 手机版
解决时间 2021-02-15 06:45
- 提问者网友:不爱我么
- 2021-02-14 22:32
最佳答案
- 五星知识达人网友:北方的南先生
- 2021-02-14 23:28
把“solve”那行里最后的==0去掉即可。
全部回答
- 1楼网友:西风乍起
- 2021-02-15 00:03
clear
syms a1 a2 b1 b2 r1 r2 t41 t42
k=0.01
n=1;
for d=0:300
for q=1:10
eq1=a1+a2+b1+b2-sqrt(2)*(1+r1);
eq2=a1-a2+b1-b2-sqrt(2)*(1+r2);
eq3=1+r1-t41;
eq4=1+r2-t42;
eq5=a1*exp(i*(q-k)*d)+a2*exp(i*(q+k)*d)+b1*exp(-i*(q+k)*d)+b2*exp(-i*(q-k)*d);
eq6=a1*exp(i*(q-k)*d)-a2*exp(i*(q+k)*d)+b1*exp(-i*(q+k)*d)-b2*exp(-i*(q-k)*d);
eq7=t41*(k-q)+r1*(q+k)+(a1*(k-q)-a2*(q+k)+b1*(q+k)+b2*(q-k))/sqrt(2)+(k-q)*t41;
eq8=t42*(-k-q)+r2*(q-k)+(a1*(k-q)+a2*(q+k)+b1*(q+k)-b2*(q-k))/sqrt(2)-(k+q)*t42;
[a01(n),a02(n),b01(n),b02(n),r01(n),r02(n),t041(n),t042(n)]=solve(eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8,a1,a2,b1,b2,r1,r2,t41,t42);
n=n+1;
end
end
disp(' a01 a02 b01 b02 r01 r02 t041 t042 ')
x=[double(a01);double(a02);double(b01);double(b02);double(r01);double(r02);double(t041);double(t042)]'
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯