Система нелинейных уравнений - 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)