查看: 632|回复: 2|关注: 0

[已解决] 从 sym 转换为 double 时出现以下错误:

[复制链接]

新手

7 麦片

财富积分


050


4

主题

8

帖子

0

最佳答案
clear;
clc;
syms f1 f2 f3 f4 f5 f6 f7     %定义未知参数频率
%syms m
c=3e+08;     % 光速
S=0.6;
G=0.1;
P=0.8;
a=2.0;
D=0.57;
d=0.4;        %以上是慢波结构几何参数
beta=[1 121 241 361 481 601 721];  %相位常数的定义值
m=0:1:7;                   %函数里面循环
f=[f1 f2 f3 f4 f5 f6 f7];
aa = [1 zeros(1,6)];    %冲激响应,a(1,1)=1,其他都等于0
%H =zeros(7,7) ;
H=0;
for nn=1:7
    for ii=1:7
        for mm=1:7
      %这里把公式拆成各个单元模块,并构建矩阵A,B,C,线性代数中齐次方程组((A-I)*a-B*b=0 Ba-(C+I)b=0)
      %再有线性代数中齐次线性方程组有解
      %则系数行列式为0  构建E=((I+C).*(A-I)-B.*B);
      %再有det(E)==0,E中包含未知参数f和bate关系
                  Fimz(ii,mm)=((((-1)^(m(1,mm))).*((exp((1j.*beta(1,ii)*S))))-1)./((beta(1,ii).^2)-(((m(1,mm))*pi/S).^2)));
                  Fnmf(mm,nn)=(((-1)^(m(1,mm)).*((exp((-1j.*beta(1,nn).*S))))-1)./((beta(1,nn).^2)-(((m(1,mm))*pi/S).^2)));      
                  Fimn(ii,nn)=Fimz(ii,mm).*Fnmf(mm,nn);
     %方程式一部分
                  w(1,mm)=2*pi.*f(1,mm);%角频率w=2*pi*f
                  k0(1,mm)=w(1,mm)/c;% k0=w/c
                  beta1(ii,nn)=beta(1,nn)-beta(1,ii);%相位常数两个循环中相减
                  beta2(ii,nn)=beta(1,nn)*beta(1,ii);%相位常数两个循环中相乘
                  h1(nn,mm)=sqrt(((k0(1,mm)).^2)+((beta(1,nn)).^2));
                  h2(ii,mm)=sqrt(((k0(1,mm)).^2)+((beta(1,ii)).^2));% 公式定义h^2=k0^2+beta^2,往矩阵中引入beta和f
                  lm(1,mm)=sqrt(((m(1,mm).*pi/S).^2)-((k0(1,mm)).^2));%公式中lm^2=(m*pi/s)^2-k0^2 ,往矩阵中引入beta和f
                  H2(1,mm)=lm(1,mm)./(1+aa(1,mm)).*tanh((lm(1,mm))*D).*beta2(ii,nn).*Fimn(ii,nn);
                  H(1,mm)= H+H2(1,mm);%构建公式中求和部分
                 A(ii,nn)=(1*exp(-1j.*(beta1(ii,nn))*d)+1)./(P*S.*(h2).*tan((h1)*(G/2))).*H(1,mm);%生成矩阵A中的元素
                 B(ii,nn)=(1*exp(-1j.*(beta2(ii,nn))*d)-1)./(P*S.*(h2)).*H(1,mm);%生成矩阵B中的元素
                 C(ii,nn)=(1*exp(-1j.*(beta2(ii,nn))*d)+1)./(P*S.*(h2).*cot((h1)*(G/2))).*H(1,mm);%生成矩阵C中的元素
        end     

                 E= ((I+C).*(A-I)-B.*B);
    end
end


回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

10

主题

1697

帖子

368

最佳答案
  • 关注者: 83
发表于 2020-8-29 08:45:03 | 显示全部楼层 |此回复为最佳答案
仅供参考
  1. clear;
  2. clc;
  3. syms f1 f2 f3 f4 f5 f6 f7     %定义未知参数频率
  4. %syms m
  5. c=3e+08;     % 光速
  6. S=0.6;
  7. G=0.1;
  8. P=0.8;
  9. a=2.0;
  10. D=0.57;
  11. d=0.4;        %以上是慢波结构几何参数
  12. beta=[1 121 241 361 481 601 721];  %相位常数的定义值
  13. m=0:1:7;                   %函数里面循环
  14. f=[f1 f2 f3 f4 f5 f6 f7];
  15. aa = [1 zeros(1,6)];    %冲激响应,a(1,1)=1,其他都等于0
  16. %H =zeros(7,7) ;
  17. H=0;
  18. for nn=1:7
  19.     for ii=1:7
  20.         for mm=1:7
  21.             %这里把公式拆成各个单元模块,并构建矩阵A,B,C,线性代数中齐次方程组((A-I)*a-B*b=0 Ba-(C+I)b=0)
  22.             %再有线性代数中齐次线性方程组有解
  23.             %则系数行列式为0  构建E=((I+C).*(A-I)-B.*B);
  24.             %再有det(E)==0,E中包含未知参数f和bate关系
  25.             Fimz(ii,mm)=((((-1)^(m(1,mm))).*((exp((1j.*beta(1,ii)*S))))-1)./((beta(1,ii).^2)-(((m(1,mm))*pi/S).^2)));
  26.             Fnmf(mm,nn)=(((-1)^(m(1,mm)).*((exp((-1j.*beta(1,nn).*S))))-1)./((beta(1,nn).^2)-(((m(1,mm))*pi/S).^2)));
  27.             Fimn(ii,nn)=Fimz(ii,mm).*Fnmf(mm,nn);
  28.             %方程式一部分
  29.             w(1,mm)=2*pi.*f(1,mm);%角频率w=2*pi*f
  30.             k0(1,mm)=w(1,mm)/c;% k0=w/c
  31.             beta1(ii,nn)=beta(1,nn)-beta(1,ii);%相位常数两个循环中相减
  32.             beta2(ii,nn)=beta(1,nn)*beta(1,ii);%相位常数两个循环中相乘
  33.             h1(nn,mm)=sqrt(((k0(1,mm)).^2)+((beta(1,nn)).^2));
  34.             h2(ii,mm)=sqrt(((k0(1,mm)).^2)+((beta(1,ii)).^2));% 公式定义h^2=k0^2+beta^2,往矩阵中引入beta和f
  35.             lm(1,mm)=sqrt(((m(1,mm).*pi/S).^2)-((k0(1,mm)).^2));%公式中lm^2=(m*pi/s)^2-k0^2 ,往矩阵中引入beta和f
  36.             H2(1,mm)=lm(1,mm)./(1+aa(1,mm)).*tanh((lm(1,mm))*D).*beta2(ii,nn).*Fimn(ii,nn);
  37.             H= H+H2(1,mm);%构建公式中求和部分
  38.             A(ii,nn)=(1*exp(-1j.*(beta1(ii,nn))*d)+1)./(P*S.*(h2(ii,mm)).*tan((h1(nn,mm))*(G/2))).*H;%生成矩阵A中的元素
  39.             B(ii,nn)=(1*exp(-1j.*(beta2(ii,nn))*d)-1)./(P*S.*(h2(ii,mm))).*H;%生成矩阵B中的元素
  40.             C(ii,nn)=(1*exp(-1j.*(beta2(ii,nn))*d)+1)./(P*S.*(h2(ii,mm)).*cot((h1(nn,mm))*(G/2))).*H;%生成矩阵C中的元素
  41.         end
  42.         
  43.         E= ((I+C).*(A-I)-B.*B);
  44.     end
  45. end
复制代码
回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


4

主题

8

帖子

0

最佳答案
 楼主| 发表于 2020-8-31 10:33:51 | 显示全部楼层
谢谢大佬,解决了,
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /5 下一条

快速回复 返回顶部 返回列表