Обсуждение:Метод Рунге — Кутты: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Содержимое удалено Содержимое добавлено
 
Строка 111: Строка 111:


В файле main.m строчка
В файле main.m строчка
x = 0.1; % Значение аргумента
<br><code>x = 0.1; % Значение аргумента</code><br>
лишняя, она ничего не задает. Пробовал в матлабе менять в ней числовое значение - никак не влияет на вывод результата. [[У:Olegivvit|Olegivvit]] ([[ОУ:Olegivvit|обс]]) 19:01, 11 сентября 2014 (UTC)
лишняя, она ничего не задает. Пробовал в матлабе менять в ней числовое значение - никак не влияет на вывод результата. [[У:Olegivvit|Olegivvit]] ([[ОУ:Olegivvit|обс]]) 19:01, 11 сентября 2014 (UTC)

Текущая версия от 19:07, 11 сентября 2014

Y является приблизительным решением задачи Коши, поэтому формулировка самой задачи должна быть записана другими буквами.

В принципе, здесь нет никакого недоразумения - если сказано, что метод приближенный, записана его итерационная формула и указан порядок точности, то вносить дополнительные обозначения не следует, т.к. это может привести к громоздкости определения. Chupete 21:56, 29 декабря 2009 (UTC)[ответить]

Ы или А

[править код]

Вопрос к лингвистам: справедливо ли замечание в сноске о названии метода, заканчивающемся на ы. Всетаки как правильно ы или а ?

В большом количестве литературы используется окончание "а" Думаю стоит, по крайней мере, поставить пересылку с других вариантов написания. 93.81.119.8 15:10, 29 июня 2008 (UTC)Astronavigator[ответить]


- - - - - -

Правила склонения иноязычных (т.е.заимствованных из других языков) имен собственных МОГУТ ОТЛИЧАТЬСЯ от правил склонения имен нарицательных 1-го или 2-го склонения русского происхождения. Поэтому использовать какие бы то ни было правила склонения слов русского происхождения не представляется в данном случае корректным.

"Иноязычные имена и фамилии, оканчивающиеся на гласные (кроме -а), не склоняются. Иноязычные собственные имена на неударное -а, -я могут как склоняться, так и не склоняться."

Это правило фактически означает, что правильным по отношению к иноязычным именам, оканчивающимся на -а, является т.н. традиционный способ склонения, т.е. тот, который исторически сложился и уже используется в языке. Обратитесь к любому авторитетному учебнику или справочнику по обыкновенным дифференциальным уравнениям на русском языке. Там вы найдете ТОЛЬКО "Рунге-Кутта". Это и есть математический ответ на лингвистический вопрос.

Пожалуйста, исправьте название статьи и соответствующие позиции в тексте как можно скорее. Saveljev 01:13, 19 февраля 2009 (UTC)[ответить]

Не считаю обоснованными такие доводы, к тому же требовалась консультация лингвиста, а не "математический ответ на лингвистический вопрос". Господин Saveljev не указал ссылки на соответствующее издание свода правил русского языка и совершенно вольно заключил, что исторически сложилось правило несклонения фамилии Кутты. Полагаю, что справочно-информационный портал «Русский язык», созданный по рекомендации Комиссии «Русский язык в СМИ» Совета по русскому языку при Правительстве Российской Федерации и функционирующий при финансовой поддержке Федерального агентства по печати и массовым коммуникациям, следует считать авторитетным источником. Поэтому как вариант произношения склоняемый вариант следует вернуть. Chupete 21:25, 14 января 2010 (UTC)[ответить]


Утверждение о том, что используется только форма на -а, мягко говоря, не соответствует действительности. Я за 5 минут нашел:

Амосов А.А, Дубянский Ю. А., Копченою Н. В. Вычислительные методы для инженеров: Учеб. пособие. — М.: Высш. шк., 1994. — 544 с: ил.

ФЕДОРЕНКО Р. П. Введение в вычислительную физику: Учеб. пособие: Для вузов. — М.: Изд-во Моск. физ.-техн. ин-та, 1994. — 528 с. ISBN 5-7417-0002-0

А как правильно склоняется Фамилия Кутты можно прочитать у Розенталя, несклоняемой она будет только если ударение будет падать на последний слог. Короче, на мой взгляд правильной будет формулировка «Методы Рунге-Кутты(также, „методы Рунге-Кутта“)» или что-то в этом роде 84.47.185.171 06:16, 15 мая 2009 (UTC)schadov[ответить]

gramota.ru утверждает что в конструкциях типа "осциллятор Тесла", "модель Лотка-Вольтерра", "метод Рунге-Кутта" фамилии не склоняются. 93.91.12.20 12:01, 21 декабря 2010 (UTC)[ответить]

По правилам той же грамоты.ру склоняются все фамилии на -а, кроме французских. Это немецкая фамилия, да ещё и с ударением на первый слог, а не на -а. Несклоняемый вариант — изначальная ошибка, повторять которую и упорствовать в которой, по меньшей мере, странно. Объяснять разное произношение традицией разных школ (как в случае с комплексными числами) — тоже довольно необоснованно, так как в том случае были два исходных языка, в одном из которых ударение ставится так, в другом — иначе. А в фамилии Кутта разночтения могут быть только из-за того, что первый переводчик не выяснил правильное произношение фамилии (даже если и не его в том была вина). Ereminh 13:02, 9 июня 2011 (UTC)[ответить]

Пример программы

[править код]

Написал пример программы на C#, хотя, может быть, стоит написать на C++? Shamin Roman 20:34, 18 февраля 2010 (UTC)[ответить]

В такой форме теряется то преимущество, в силу которого этот метод стал популярен: достаточность хранения всего одной корректирующей функции k. Полагаю, стоило бы исправить. Ereminh 13:08, 9 июня 2011 (UTC)[ответить]

Программа полное дерьмо. Ничего вообще не понятно. Зачем использовать класс? Что это за названия массивов - YY Y1 Y2? Что это за хаки с -1 и быдлопроверками? Я конечно, возможно, немного жестко выражаюсь, но таковы мои реальные "впечталения" от увиденного. Нужно переделать. 80.245.119.232 08:04, 28 сентября 2011 (UTC)[ответить]

Предлагаю свою реализацию классического метода Рунге — Кутты 4 алгебраического порядка точности на ЯП C++ (писал когда-то на третьем курсе в университете). Можете смело "допиливать". ;-)

#include <iostream>

using namespace std;

double x = 0;
double y = 0;
double dy = 0;
double k1 = 0;
double k2 = 0;
double k3 = 0;
double k4 = 0;
double b = 0.5;
double h = 0.1;
double eps = 0;

double f(double x, double y)
{
	return pow(y + x, 2);
}
double exactSolution(double x)
{
	return tan(x)-x;
}
void main()
{
	cout<<"x"<<"\t\t"<<"y"<<"\t\t"<<"yt"<<"\t\t"<<"eps"<<"\n";
	std::cout.flags(std::ios::scientific);
	cout<<x<<"\t"<<y<<"\t"<<exactSolution(x)<<"\t"<<eps<<"\n";
	while (x < b)
	{
		k1 = h * f(x, y);
		k2 = h * f(x + 0.5 * h, y + 0.5 * k1);
		k3 = h * f(x + 0.5 * h, y + 0.5 * k2);
		k4 = h * f(x + h, y + k3);
		dy = (k1 + 2 * k2 + 2 * k3 + k4)/6;
		y = y + dy;
		x = x + h;
		eps = exactSolution(x)-y;
		cout<<x<<"\t"<<y<<"\t"<<exactSolution(x)<<"\t"<<eps<<"\n";
	}
}

На мой взгляд, лучше оформить всё в виде одной функции вида:

double RK4(double x, double y, double h, double f(double, double))

А лучше и вовсе не использовать языки программирования, а использовать псевдокод.

Вариации метода

[править код]

Существуют ли версии более высоких порядков? Существуют ли общие формулы для \textbf{y}_{n+1} и для всех \textbf{k}_i если порядок дан в общем виде и обозначен просто переменной?--Атавин Тарас Александрович 06:24, 14 апреля 2010 (UTC)[ответить]

Версии больших порядков существуют, но общих формул для коэффициентов нет. halyavin 16:47, 24 июня 2010 (UTC)[ответить]
Есть общие формулы для неявных методов РК сколь угодно высоких порядков, например методы, основанные на квадратурах Гаусса.--Uranix 16:43, 10 февраля 2014 (UTC)[ответить]

Устойчивость

[править код]

До какого порядка уравнения устойчив метод?--Атавин Тарас Александрович 06:24, 14 апреля 2010 (UTC)[ответить]

Все явные методы РК являются устойчивыми с константой устойчивости порядка для правых частей, удовлетворяющих условию Липшица . Если же речь идет об устойчивости для жестких задач, то все явные методы РК имеют ограниченную область устойчивости, то есть не являются ни A-устойчивыми, ни A(а)-устойчивыми, ни L-устойчивыми.--Uranix 16:49, 10 февраля 2014 (UTC)[ответить]

Пример решения в среде MATLAB

[править код]

В файле main.m строчка
x = 0.1; % Значение аргумента
лишняя, она ничего не задает. Пробовал в матлабе менять в ней числовое значение - никак не влияет на вывод результата. Olegivvit (обс) 19:01, 11 сентября 2014 (UTC)[ответить]