查看: 185|回复: 0|关注: 0

[未答复] 用for与solve求解方程组,不进入循环

[复制链接]

新手

5 麦片

财富积分


050


2

主题

2

帖子

0

最佳答案
发表于 2020-7-11 16:43:13 | 显示全部楼层 |阅读模式
求解四元一次方程组时,结果出来很多,但没有循环的数据
方程组有两个变量,i,j,每次不同组合的i,j,可以得出一组a,b,c,d的值。
选择进入循环后,结果只显示了i=1,j=1的值。不知道什么原因,

  1. clear;clc;
  2. eq2=str2sym('c=a*exp((76789-43.8*j-(169105-120.4*j)*c)/(8.314*j))');
  3. eq3=str2sym('d*(1-c)=i*(1-0.004)');
  4. eq4=str2sym('a*b+c*d=0.004');
  5. eq5=str2sym('b+d=1');
  6. for i=1:2
  7.     eq33=subs(eq3,'i',1i);
  8.     for j=1:6
  9.         eq22=subs(eq2,'j',1j);
  10.         [a,b,c,d]=solve(eq22,eq33,eq4,eq5);
  11.         jieguo1(i,j,1:4)=double([a b c d]);
  12.     end
  13. end
复制代码

结果为
  1. val(:,:,1) =

  2.   1 至 2 列

  3.   0.002016029948702 + 0.002002311395000i  0.002016029948702 + 0.002002311395000i
  4.   0.002016029948702 + 0.002002311395000i  0.002016029948702 + 0.002002311395000i

  5.   3 至 4 列

  6.   0.002016029948702 + 0.002002311395000i  0.002016029948702 + 0.002002311395000i
  7.   0.002016029948702 + 0.002002311395000i  0.002016029948702 + 0.002002311395000i

  8.   5 至 6 列

  9.   0.002016029948702 + 0.002002311395000i  0.002016029948702 + 0.002002311395000i
  10.   0.002016029948702 + 0.002002311395000i  0.002016029948702 + 0.002002311395000i


  11. val(:,:,2) =

  12.   1 至 2 列

  13.   1.000010364296025 - 0.996005645061973i  1.000010364296025 - 0.996005645061973i
  14.   1.000010364296025 - 0.996005645061973i  1.000010364296025 - 0.996005645061973i

  15.   3 至 4 列

  16.   1.000010364296025 - 0.996005645061973i  1.000010364296025 - 0.996005645061973i
  17.   1.000010364296025 - 0.996005645061973i  1.000010364296025 - 0.996005645061973i

  18.   5 至 6 列

  19.   1.000010364296025 - 0.996005645061973i  1.000010364296025 - 0.996005645061973i
  20.   1.000010364296025 - 0.996005645061973i  1.000010364296025 - 0.996005645061973i


  21. val(:,:,3) =

  22.    1.0e-04 *

  23.   1 至 2 列

  24.   0.056678090631900 + 0.104058017479466i  0.056678090631900 + 0.104058017479466i
  25.   0.056678090631900 + 0.104058017479466i  0.056678090631900 + 0.104058017479466i

  26.   3 至 4 列

  27.   0.056678090631900 + 0.104058017479466i  0.056678090631900 + 0.104058017479466i
  28.   0.056678090631900 + 0.104058017479466i  0.056678090631900 + 0.104058017479466i

  29.   5 至 6 列

  30.   0.056678090631900 + 0.104058017479466i  0.056678090631900 + 0.104058017479466i
  31.   0.056678090631900 + 0.104058017479466i  0.056678090631900 + 0.104058017479466i


  32. val(:,:,4) =

  33.   1 至 2 列

  34. -0.000010364296025 + 0.996005645061973i -0.000010364296025 + 0.996005645061973i
  35. -0.000010364296025 + 0.996005645061973i -0.000010364296025 + 0.996005645061973i

  36.   3 至 4 列

  37. -0.000010364296025 + 0.996005645061973i -0.000010364296025 + 0.996005645061973i
  38. -0.000010364296025 + 0.996005645061973i -0.000010364296025 + 0.996005645061973i

  39.   5 至 6 列

  40. -0.000010364296025 + 0.996005645061973i -0.000010364296025 + 0.996005645061973i
  41. -0.000010364296025 + 0.996005645061973i -0.000010364296025 + 0.996005645061973i

复制代码
不知道哪一步程序写错了,小白求指教
回复主题 已获打赏: 0 积分

举报

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

本版积分规则

关闭

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

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