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

[未答复] 循环求解多元方程组,第一轮可正常求解,其他需要去除循环才可求解。

[复制链接]

新手

5 麦片

财富积分


050


3

主题

7

帖子

0

最佳答案
发表于 6 天前 | 显示全部楼层 |阅读模式
本帖最后由 tanmin 于 2020-6-30 17:39 编辑

大家好!
在使用循环语句进行多元方程组求解时,第一轮循环可正常得到解,但第二论开始无法得到解,且程序未报错,代码及截屏如下:代码如下:

  1. %**********谢谢大家百忙中抽空指导***********%clc
  2. clear
  3. syms SS SSS
  4. Eq=sym(zeros(14,5));
  5. NT=sym(zeros(1,14));

  6. for SS=1:1:5
  7. for SSS=SS+1:1:5
  8. % for SS=1
  9. %for SSS=4 %当此处直接赋值时,各方程均可解。若使用循环语句,仅第一组可解。
  10. Count=1;
  11. syms K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 nt NaF AlF3;
  12. syms nt1 nt2 nt3 nt4 nt5 nt6 nt7 nt8 nt9 nt10 nt11 nt12 nt13 nt14
  13. syms CR x1 x2 x3
  14. syms A N B C D E F G H I
  15. for S=[SS SSS]
  16. %****************下面是基础数据***********
  17. Data=[ 1.500000000000000 0.056400000000000 0.019980000000000 0.054000000000000
  18. 1.750000000000000 0.099300000000000 0.008190000000000 0.062200000000000
  19. 2.000000000000000 0.150100000000000 0.003790000000000 0.067400000000000
  20. 2.250000000000000 0.203200000000000 0.001980000000000 0.070400000000000
  21. 2.500000000000000 0.255600000000000 0.001130000000000 0.072200000000000];

  22. CR=Data(S,1);
  23. a1=Data(S,2);
  24. a2=Data(S,3);
  25. x3=Data(S,4);
  26. x1=CR*(1-x3)/(1+CR);
  27. x2=(1-x3)/(1+CR);
  28. %**********下面K1,K2,……,K6为所要求的未知量,下面NNTT中的也为未知量*************
  29. A=K1*a1^2*a2^(4/3);
  30. N=K2*a1^2*a2^(2/3);
  31. B=K3*a1^4*a2^(2/3);
  32. C=K4*a1^3*a2;
  33. D=K5*a1^2*a2;
  34. E=K6*a1*a2;
  35. NNTT=[nt1 nt2 nt3 nt4 nt5 nt6 nt7 nt8 nt9 nt10 nt11 nt12 nt13 nt14];
  36. %****************下面为方程组
  37. AA=x1-(2*A+2*N+4*B+3*C+2*D+E+a1)*NNTT(1,S);
  38. BB=x2+2*x3-(2*A+2*N+2*B+C+D+E+a2)*NNTT(1,S);
  39. CC=x1+3*x2-(6*A+4*N+6*B+6*C+5*D+4*E+a1+3*a2)*NNTT(1,S);
  40. DD=A+N+B+C+D+E+a1+a2-1;
  41. EE=3*x3-(A+2*N+2*B)*NNTT(1,S);

  42. Eq(S,:)=[AA,BB,CC,DD,EE];
  43. NT(1,Count)=NNTT(1,S);
  44. Count=Count+1;
  45. end
  46. disp ('**********************');
  47. condition=[SS SSS];
  48. disp (condition);
  49. NT1=NT(1,1);
  50. NT2=NT(1,2);
  51. disp (NT(1,1));
  52. disp (NT(1,2));

  53. [K1,K2,K3,K4,K5,K6,NT1,NT2]=solve(Eq,K1,K2,K3,K4,K5,K6,NT1,NT2);


  54. ANS=[K1,K2,K3,K4,K5,K6,NT1,NT2];


  55. ANS=vpa(ANS,9);
  56. disp (ANS);


  57. end
  58. end
复制代码



图1.PNG
通过将循环去除,单独对其他参数进行方程组求解可得到正常解,如下:
图2.PNG












Untitled.m

2.44 KB, 下载次数: 1

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

举报

新手

5 麦片

财富积分


050


3

主题

7

帖子

0

最佳答案
 楼主| 发表于 6 天前 | 显示全部楼层
我自己尝试用最简程序重现该问题时,并未出现类似错误,能够循环多次求解方程组,并每次都得到正确的答案。但针对此具体问题时,出现该问题。恳请大家帮忙看看!
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


3

主题

7

帖子

0

最佳答案
 楼主| 发表于 5 天前 | 显示全部楼层
该问题已自行解决
回复此楼 已获打赏: 0 积分

举报

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

本版积分规则

关闭

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

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