Решение систем нелинейных уравнений. - C (СИ)
Формулировка задачи:
Дана система уравнений:
x=x^2-y^2+0.1
y=2xy+0.1
Решить методом простой итерации.
вот что у меня получилось
просьба проверить работает ли программа вообще,т.к. у меня почему то один раз запускается,дальше начинает выдавать ошибку что не может открыть файл. Ну и если не затруднительно проверить правильность написания.)
#include <math.h>
#include <conio.h>
#include<stdio.h>
void main()
{
float x,y,r;
int x1=0,y1=0;
do
{
x=x1*x1-y1*y1+0.1;
y=2*x1*y1+0.1;
printf(" Znacheniya X i Y v (0;0) = %f %f\n",x, y);
r=sqrt(pow((x-x*x+y*y-0.1),2)+pow((y-2*x*y-0.1),2));
printf("%f %f %f\n",x, y,r);
x1=x;
y1=y;
}
while(sqrt(pow((x-x*x+y*y-0.1),2)+pow((y-2*x*y-0.1),2))>=0.0001);
getch();
}Решение задачи: «Решение систем нелинейных уравнений.»
textual
Листинг программы
r=sqrt((x-x*x+y*y-0.1)*(x-x*x+y*y-0.1)+(y-2*x*y-0.1)*(y-2*x*y-0.1));
Объяснение кода листинга программы
- Импортируем модуль math, чтобы использовать функцию sqrt()
- Задаем функцию r = sqrt((x-xx+yy-0.1)(x-xx+yy-0.1)+(y-2xy-0.1)(y-2xy-0.1))
- Раскрываем скобки с помощью формулы разности квадратов
- Применяем операцию возведения в квадрат (x^2, y^2)
- Вычитаем значения xx, yy, 0.1 из соответствующих переменных
- Производим умножение (xy, 2x*y)
- Вычитаем значения x*y, 0.1 из соответствующих переменных
- Складываем полученные значения
- Возвращаем результат в переменную r
- Код не содержит циклов, поэтому список можно закрыть