Form1.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using GenDanDoZad;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11. namespace _06_2_Newton_ulady_rownan
  12. {
  13. public partial class Form1 : Form
  14. {
  15. Log log;
  16. public Form1()
  17. {
  18. InitializeComponent();
  19. log = new Log(tbLog);
  20. log.SetFontSize(16);
  21. log.SetFmtDigits(10);
  22. }
  23. double f1(double[] x) => x[0] * x[0] - 2 * x[1] * x[1];
  24. double f2(double[] x) => 2 * x[0] * x[1] - 3;
  25. double df1_x1(double[] x) => 2 * x[0];
  26. double df1_x2(double[] x) => -4 * x[1];
  27. double df2_x1(double[] x) => 2 * x[1];
  28. double df2_x2(double[] x) => 2 * x[0];
  29. private void button1_Click(object sender, EventArgs e)
  30. {
  31. NewtonRaphson nr = new NewtonRaphson();
  32. nr.eps = double.Parse(tbEps.Text);
  33. nr.funcs = new FW[] { f1, f2 };
  34. nr.fprims = new FW[,] { { df1_x1, df1_x2 }, { df2_x1, df2_x2 } };
  35. nr.x0 = new double[] { 1.3, 1.1 };
  36. double[] x = nr.Oblicz();
  37. log.l($"Rozwiązanie układu równań nieliniowych (iteracji {nr.licznik}):",x);
  38. }
  39. }
  40. }