Система нелинейных уравнений - C#

Узнай цену своей работы

Формулировка задачи:

добрый вечер!задали задание решить систему нелинейных уравнений методами якоби и гаусса-зейделя. в уравнении присутствует параметр "а". так вот если я меняю а,х0 или у0 - х и у же тоже должны меняться?хотя бы незначительно а у меня стабильно выдаёт х=1 у=1. подскажите, где ошибся?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            double x, y, x0, y0,a ;
            x = 1054636;
            y = 1064636;
            a = 5;
            do
            {
                x0 = x;
                y0 = y;
              // x = (Math.Sin(Math.Sqrt(Math.Abs(1 - y * y)) + y) - 0.1) / 1.2;
              // y = Math.Sqrt(1 - x * x);
                 x= Math.Pow(y*y*y + (6 + a) * y - 2 ,1/3);
                y = Math.Pow((6 + a) * x - 3 - x*x*x , 1 / 3);
            }
            while ((Math.Abs(x - x0) > 0.0001) && (Math.Abs(y - y0) > 0.0001));
            textBox1.Text = Convert.ToString(x);
            textBox2.Text = Convert.ToString(y);
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            double x, y, x0, y0,a;
            x = 0.5;
            y = 0.5;
            a = 1;
            do
            {
                x0 = x;
                y0 = y;
                x = Math.Pow(y * y * y + (6 + a) * y - 2, 1 / 3);
               y = Math.Pow((6 + a) * x0 - 3 - x0 * x0 * x0, 1 / 3);
               // y = Math.Sqrt(Math.Abs(1 - x0 * x0));
               // x = (Math.Sin(Math.Sqrt(Math.Abs(1 - y * y)) + y) - 0.1) / 1.2;
            }
            while ((Math.Abs(x - x0) > 0.0001) && (Math.Abs(y - y0) > 0.0001));
 
            textBox3.Text = Convert.ToString(x);
            textBox4.Text = Convert.ToString(y);
 
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
        }
    }
}
если подставить уравнение которое закомментировано то всё хорошо получается...

Решение задачи: «Система нелинейных уравнений»

textual
Листинг программы
 x = Math.Pow(y * y * y + (6 + a) * y - 2, (double)1 / 3);
               y = Math.Pow((6 + a) * x0 - 3 - x0 * x0 * x0,  (double)1 / 3)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы