cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 22|回复: 3

[5800P] 5800求解二元非线性方程组

[复制链接]
发表于 昨天 20:50 | 显示全部楼层 |阅读模式
本帖最后由 gdfgdfi你 于 2026-7-24 20:57 编辑

分享一个我写的程序,这个程序采用阻尼牛顿法求解二元方程组P(X,Y)=0和Q(X,Y)=0的一组数值根,并输出这个解的误差,二元方程单独存储在程序“2V-EQN”中,测试方程是Xsin(X)+Y^(3)+Y-1=0和X^(3)+X+Ye^(-Y)-1=0,这个方程的解是X=0.53099,Y=0.55767,是唯一解,我附上了主程序的ccl文件,但是由于我并不熟悉那个电脑编程软件的使用,所以不能保证这个文件一定能直接使用。
我已经尽量的让该程序的稳定性更高 ,以能应付足够复杂的方程,但是由于我接触5800p的编程并不久,加上我个人能力有限,所以不能做到最好,如果有不足之处欢迎指教。
代码原文写在下面:



2V-SOLVE COMP.ccl

1.21 KB, 下载次数: 0

 楼主| 发表于 昨天 20:53 | 显示全部楼层
本帖最后由 gdfgdfi你 于 2026-7-24 21:02 编辑
  1. <blockquote>"THIS Prog IS USED TO SOLVE EQN AS P(X,Y)=0 AND Q(X,Y)=0"◢↵
复制代码
 楼主| 发表于 昨天 21:04 | 显示全部楼层
  1. "THIS Prog IS USED TO SOLVE EQN AS P(X,Y)=0 AND Q(X,Y)=0"◢↵
  2. "EDIT EQN IN Prog 2V-EQN"◢↵
  3. "X0="?→A↵
  4. "Y0="?→B↵
  5. If √(A²÷2+B²÷2)≠0↵
  6. Then √(A²÷2+B²÷2)→O↵
  7. Else 1→O↵
  8. IfEnd↵
  9. Ox10^(-6)→H↵
  10. If A=0↵
  11. Then H→A↵
  12. IfEnd↵
  13. If B=0↵
  14. Then H→B↵
  15. IfEnd↵
  16. For 0→I To 100↵
  17. A-H÷2→X↵
  18. B→Y↵
  19. Prog "2V-EQN"↵
  20. P→M↵
  21. Q→N↵
  22. A+H÷2→X↵
  23. B→Y↵
  24. Prog "2V-EQN"↵
  25. (P-M)÷H→T↵
  26. (Q-N)÷H→V↵
  27. A→X↵
  28. B-H÷2→Y↵
  29. Prog "2V-EQN"↵
  30. P→M↵
  31. Q→N↵
  32. A→X↵
  33. B+H÷2→Y↵
  34. Prog "2V-EQN"↵
  35. (P-M)÷H→U↵
  36. (Q-N)÷H→W↵
  37. TxW-UxV→J↵
  38. If √(A²÷2+B²÷2)>1↵
  39. Then √(A²÷2+B²÷2)→O↵
  40. Else 1→O↵
  41. IfEnd↵
  42. 10^(-6)xO^(-3)÷(Abs(J)+10^(-8))→G↵
  43. (T+G)x(W+G)-UxV→J↵
  44. A→X↵
  45. B→Y↵
  46. Prog "2V-EQN"↵
  47. (UxQ-PxW)÷J→K↵
  48. (PxV-TxQ)÷J→L↵
  49. If Abs(A)>1↵
  50. Then A→E↵
  51. Else 1→E↵
  52. IfEnd↵
  53. If Abs(B)>1↵
  54. Then B→F↵
  55. Else 1→F↵
  56. IfEnd↵
  57. If Abs(K÷E)≦10^(-8) And Abs(L÷F)≦10^(-8) And √(P²+Q²)÷√(E²+F²)≦10^(-8)↵
  58. Then A+K→A↵
  59. B+L→B↵
  60. Break↵
  61. IfEnd↵
  62. 1→S↵
  63. P→M↵
  64. Q→N↵
  65. For 0→Z To 15↵
  66. A+SxK→X↵
  67. B+SxL→Y↵
  68. Prog "2V-EQN"↵
  69. If (P²+Q²)<(M²+N²)↵
  70. Then Break↵
  71. Else S÷2→S↵
  72. IfEnd↵
  73. Next↵
  74. If Z=15↵
  75. Then A+0.5xRanInt#(-10000,10000)÷10000→A↵
  76. B+0.5xRanInt#(-10000,10000)÷10000→B↵
  77. Else A+SxK→A↵
  78. B+SxL→B↵
  79. IfEnd↵
  80. Next↵
  81. A→X↵
  82. B→Y↵
  83. Prog "2V-EQN"↵
  84. √(P²+Q²)→R↵
  85. If I=100↵
  86. Then "X=":A◢↵
  87. "Y=":B◢↵
  88. "ERROR=":R◢↵
  89. "MAX INTERATION CHANGE INITIAL VALUE TO SOLVE"◢↵
  90. "END"◢↵
  91. Else "X=":A◢↵
  92. "Y=":B◢↵
  93. "ERROR=":R◢↵
  94. IfEnd↵
复制代码
 楼主| 发表于 昨天 21:06 | 显示全部楼层
  1. Xsin(X)+Y^(3)+Y-1→P↵
  2. X^(3)+X+Ye^(-Y)-1→Q↵
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|Archiver|手机版|小黑屋|cnCalc计算器论坛

GMT+8, 2026-7-25 04:42 , Processed in 0.015012 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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