电子产业一站式赋能平台

PCB联盟网

搜索
查看: 1530|回复: 3
收起左侧

问题求助!同样的计算在matlab和mathematica里结果不一样。

[复制链接]

594

主题

958

帖子

5093

积分

四级会员

Rank: 4

积分
5093
发表于 2023-3-22 17:31:33 | 显示全部楼层 |阅读模式
matlab代码如下

问题求助!同样的计算在matlab和mathematica里结果不一样。-1.jpg

问题求助!同样的计算在matlab和mathematica里结果不一样。-2.jpg

mathematica代码如下

问题求助!同样的计算在matlab和mathematica里结果不一样。-3.jpg

问题求助!同样的计算在matlab和mathematica里结果不一样。-4.jpg

问题求助!同样的计算在matlab和mathematica里结果不一样。-5.jpg

问题求助!同样的计算在matlab和mathematica里结果不一样。-6.jpg

问题求助!同样的计算在matlab和mathematica里结果不一样。-7.jpg



matlab中画出的图是

问题求助!同样的计算在matlab和mathematica里结果不一样。-8.jpg

mathematica画出的图是

问题求助!同样的计算在matlab和mathematica里结果不一样。-9.jpg



对两份代码我已经检查了几遍,没发现有什么不一样的地方,但最终的结果确是不同。
希望大佬帮助!!这个图是我作业,要到期了,呜呜。
二楼放源代码。
回复

使用道具 举报

591

主题

1772

帖子

5770

积分

四级会员

Rank: 4

积分
5770
发表于 2023-3-22 17:32:22 | 显示全部楼层
matlab代码
clear
T1z2018=1:1:2000;
T2z2018=1:1:2000;
T3z2018=1:1:2000;
T4z2018=1:1:2000;
T5z2018=1:1:2000;
gamma=1:1:2000;
for p=1:1:2000
    w=p*0.001;
        T1=[2.5- (w^2)/1.5,-(1/1.5);1,0];
        T2=[2-((w^2)/3),-1;1,0];
        T4=[(4.5-(0.5*(w^2)))/3,-1.5/3;1,0];
        T5=[(4.5-(0.5*(w^2)))/1.5, -3/1.5;1,0];
        T6=[2 - ((w^2)/1.5), -1;1,0];
        T7=[(6 - (0.5*(w^2)))/3, -1;1,0];
        T3=[(2.5 - (w^2))/1, -1.5/1;1,0];
        sigema=1 - ((w^2)/2) - (1i*w*((1 - ((w^2)/4))^(1/2)));
        gamma = w*((1 - ((w^2)/4))^(1/2));
        M7=T1*T2*T3;
        M6=T1*T2*T6*T2*T3;
        M3=T1*T4*T5*T3;
        M4=T1*T4*T7*T5*T3;
        M5=T1*T2*T6*T4*T5*T3;
        T1z2018(p)=4*(gamma^2)*((abs(M7(1,1)-(sigema*(M7(2, 1)-M7(1, 2)))+ (sigema^2)*(-M7(2, 2))))^(-2));
        T2z2018(p)=4*(gamma^2)*((abs(M3(1,1)-(sigema*(M3(2, 1)-M3(1, 2)))+ (sigema^2)*(-M3(2, 2))))^(-2));
        T3z2018(p)=4*(gamma^2)*((abs(M6(1,1)-(sigema*(M6(2, 1)-M6(1, 2)))+ (sigema^2)*(-M6(2, 2))))^(-2));
        T4z2018(p)=4*(gamma^2)*((abs(M4(1,1)-(sigema*(M4(2, 1)-M4(1, 2)))+ (sigema^2)*(-M4(2, 2))))^(-2));
        T5z2018(p)=4*(gamma^2)*((abs(M5(1,1)-(sigema*(M5(2, 1)-M5(1, 2)))+ (sigema^2)*(-M5(2, 2))))^(-2));
   
end
plot(1:1:2000,T1z2018)
hold on
plot(1:1:2000,T2z2018)
hold on
plot(1:1:2000,T3z2018)
hold on
plot(1:1:2000,T4z2018)
hold on
plot(1:1:2000,T5z2018)
回复 支持 反对

使用道具 举报

2

主题

849

帖子

722

积分

二级会员

Rank: 2

积分
722
发表于 2023-3-22 17:33:00 | 显示全部楼层
mathematica代码
T1z2018 = Range[5000];
T2z2018 = Range[5000];
T3z2018 = Range[5000];
T4z2018 = Range[5000];
T5z2018 = Range[5000];
For[p = 1, p < 5000, p++, w = 0.001*p; T0 = {{2 - (w^2), -1}, {1, 0}};
  T1 = {{(2.5 - (w^2))/1.5, -(1/1.5)}, {1, 0}};
  T2 = {{2 - ((w^2)/3), -1}, {1, 0}};
  T4 = {{(4.5 - (0.5*(w^2)))/3, -1.5/3}, {1, 0}};
  T5 = {{(4.5 - (0.5*(w^2)))/1.5, -3/1.5}, {1, 0}};
  T6 = {{2 - ((w^2)/1.5), -1}, {1, 0}};
  T7 = {{(6 - (0.5*(w^2)))/3, -1}, {1, 0}};
  T3 = {{(2.5 - (w^2))/1, -1.5/1}, {1, 0}};
  sigema = 1 - ((w^2)/2) - (I*w*((1 - ((w^2)/4))^(1/2)));(*假设它不加1*)
  gamma = w*((1 - ((w^2)/4))^(1/2));
  T2={{2-((w^2)/3),-1},{1,0}};
  T4={{(4.5-(0.5*(w^2)))/1.5,-3/1.5},{1,0}};
  T5={{(4.5-(0.5*(w^2)))/3,-1.5/3},{1,0}};
  T6={{2-((w^2)/1.5),-1},{1,0}};
  T7={{(6-(0.5*(w^2)))/3,-1},{1,0}};
  T3={{(2.5-(w^2))/1.5,-1/1.5},{1,0}};*)
  M7 = T1.T2.T3;(*I链子*)
  M7 = MatrixPower[M7, 1];
  M6 = T1.T2.T6.T2.T3;
  M6 = MatrixPower[M6, 1];(*III链子*)
  M3 = T1.T4.T5.T3;(*II链子*)
  M4 = T1.T4.T7.T5.T3;
  M3 = MatrixPower[M3, 1];
  M4 = MatrixPower[M4, 1];
  M5 = T1.T2.T6.T4.T5.T3;(*V链子*)
  T1z2018[[p]] =
   4*(gamma^2)*((Abs[
        M7[[1, 1]] - (sigema*(M7[[2, 1]] -
             M7[[1, 2]])) + (sigema^2)*(-M7[[2, 2]])])^(-2));
  T2z2018[[p]] =
   4*(gamma^2)*((Abs[
        M3[[1,
          1]] - (sigema*(M3[[2, 1]] - M3[[1, 2]])) + (sigema^2)*(-M3[[
             2, 2]])])^(-2));
  T3z2018[[p]] =
   4*(gamma^2)*((Abs[
        M6[[1, 1]] - (sigema*(M6[[2, 1]] -
             M6[[1, 2]])) + (sigema^2)*(-M6[[2, 2]])])^(-2));
  T4z2018[[p]] =
   4*(gamma^2)*((Abs[
        M4[[1, 1]] - (sigema*(M4[[2, 1]] -
             M4[[1, 2]])) + (sigema^2)*(-M4[[2, 2]])])^(-2));
  T5z2018[[p]] =
   4*(gamma^2)*((Abs[
        M5[[1, 1]] - (sigema*(M5[[2, 1]] -
             M5[[1, 2]])) + (sigema^2)*(-M5[[2, 2]])])^(-2));
  ];


p1 = ListPlot[T1z2018[[Range[0, 2000]]], Joined -> True,
  PlotStyle -> Red]
p2 = ListPlot[T2z2018[[Range[0, 2000]]], Joined -> True,
  PlotStyle -> Green]
p3 = ListPlot[T3z2018[[Range[0, 2000]]], Joined -> True,
  PlotStyle -> Cyan]
p4 = ListPlot[T4z2018[[Range[0, 2000]]], Joined -> True,
  PlotStyle -> Pink]
p5 = ListPlot[T5z2018[[Range[0, 2000]]], Joined -> True,
  PlotStyle -> Black]
Show[p1, p2, p3, p4, p5, PlotRange -> All]
回复 支持 反对

使用道具 举报

0

主题

875

帖子

675

积分

二级会员

Rank: 2

积分
675
发表于 2023-3-22 17:33:49 | 显示全部楼层
看不懂mathmatica的代码,但建议对比两个软件算出来的T1~T7,M1~M7,先确定问题发生的位置
回复 支持 反对

使用道具 举报

发表回复

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

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表