Естественные науки
Подскажите, пожалуйста, удобный алгоритм решения системы n уравнений с n неизвестными для формализации на языке прогр
Наверное, проще методом Гаусса. Но, может, есть ещё что-то проще. Язык Си или Си-подобный. Но можно и любой другой.
алгоритм решения мало зависит от языка программирования.
алгоритм зависит от вида системы уравнения.
сначала нужно ее подробно проанализировать.
лично мне нравится метод локальных вариаций (поищите сами описание в интернете).
он работает не зависимо от вида системы.
но он хорош, если известно хотя бы очень примерно, где искать решение, так как там нужно задавать начальное приближение.
и ещё, если число N не очень большое, так как там на каждом шаге нужно выполнить много дополнительных не сложных вычислений.
*****
ваша система:
f1=0
f2=0...
fN=0
сначала нужно построить "функцию ошибок" f=f(x1,x2,x3,x4) и затем ее минимизировать.
например, f может быть = корень квадратный из суммы: (f1^2+f2^2+...+fN^2)
естественно, сначала выбираете начальные значения (x10,x20,x30,x40).
выбираете малое d>0 и варьируете (x10,x20,x30,x40).
затем рассматриваете функции f(x10,x20,x30,x40), f(x10-d,x20,x30,x40), f(x10+d,x20,x30,x40), f(x10,x20-d,x30,x40), f(x10,x20+d,x30,x40), ..тут перебираете все возможные комбинации переменных с +d и -d....
и ищите минимум среди них
полученную комбинацию переменных, соответствующую минимуму, обозначаете как (x10,x20,x30,x40)
и т. д. определенное количество раз (это число следует подбирать при конкретном расчете)
затем берете новое d=d/2, например,
и т. д. и т. п.
если x1,x2,x3,x4 имеют сильно разный диапазон изменения, то то для каждого xi выбирается свое di
алгоритм зависит от вида системы уравнения.
сначала нужно ее подробно проанализировать.
лично мне нравится метод локальных вариаций (поищите сами описание в интернете).
он работает не зависимо от вида системы.
но он хорош, если известно хотя бы очень примерно, где искать решение, так как там нужно задавать начальное приближение.
и ещё, если число N не очень большое, так как там на каждом шаге нужно выполнить много дополнительных не сложных вычислений.
*****
ваша система:
f1=0
f2=0...
fN=0
сначала нужно построить "функцию ошибок" f=f(x1,x2,x3,x4) и затем ее минимизировать.
например, f может быть = корень квадратный из суммы: (f1^2+f2^2+...+fN^2)
естественно, сначала выбираете начальные значения (x10,x20,x30,x40).
выбираете малое d>0 и варьируете (x10,x20,x30,x40).
затем рассматриваете функции f(x10,x20,x30,x40), f(x10-d,x20,x30,x40), f(x10+d,x20,x30,x40), f(x10,x20-d,x30,x40), f(x10,x20+d,x30,x40), ..тут перебираете все возможные комбинации переменных с +d и -d....
и ищите минимум среди них
полученную комбинацию переменных, соответствующую минимуму, обозначаете как (x10,x20,x30,x40)
и т. д. определенное количество раз (это число следует подбирать при конкретном расчете)
затем берете новое d=d/2, например,
и т. д. и т. п.
если x1,x2,x3,x4 имеют сильно разный диапазон изменения, то то для каждого xi выбирается свое di
По-моему, метод Гаусса хороший вариант во многих отношениях, в том числе по простоте реализации. Если бы у меня возникла необходимость, я бы использовал именно его. Сейчас отдаю решение СЛУ на откуп готовому ПО.
Похожие вопросы
- Помогите, пожалуйста, понять алгоритм решения №30 в ЕГЭ по химии!
- Существует ли алгоритм для доказательства математических уравнений (теорем,тождеств и пр.)?
- Cуществуют ли системы совокупностей уравнений, системы нескольких систем уравнений или совокупность совокупностей?
- как решить систему из 3 уравнений с 5 неизвестными??? Помогите пожалуйста!!!!
- Теорема Фредгольма, совместность систем линейных уравнений.
- Дана система уравнений (х+у) р= 56 (1) (х+р) у= 50 (2) (у+р) х= 26 (3). Каков оптимальный способ решения системы?
- Математики! Как решить систему тригонометрических уравнений?
- В каком случае система линейных уравнений не имеет решений?
- Как выглядит ваш алгоритм решения задачи, если с первого раза не удалось?
- подскажите пожалуйста как решить деффиринциальное уравнение y'-2xy=sinx
там, конечно же
x1,x2,...xN