|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.02.2012, 15:37 | #1 |
Регистрация: 16.02.2012
Сообщений: 4
|
Интерполяционный многочлен Лагранжа
В университете с предмета "Численные методы" дали задание - написать интерполяционный многочлен Лагранжа для n+1 элемента на C++, набросок сделал, выдает ошибку про неверную инициализацию массивов, помогите пожалуйста исправить ошибку.
Вот исходник: Код:
Последний раз редактировалось ACE Valery; 18.02.2012 в 17:00. |
18.02.2012, 22:11 | #2 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
1) Вы n не инициализировали. Да и x (маленькое) тоже.
2) В этой строке: Код:
Код:
Код:
5) Полиномы (вики) L(x) и li(x) лучше реализовать в виде функций. 6) В коде расставлять отступы, чтобы вам и нам было удобнее читать код. Ваш код без изменения (только отступы расставил). А вы исправляйте ошибки: Код:
Последний раз редактировалось 8Observer8; 18.02.2012 в 22:23. |
19.02.2012, 00:29 | #3 | ||||
Регистрация: 16.02.2012
Сообщений: 4
|
Цитата:
Цитата:
Цитата:
Цитата:
Если возможно, пожалуйста, помогите исправить ошибки в коде, просто Я их не могу найти, сделал что смог Код:
|
||||
19.02.2012, 01:37 | #4 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 88
|
недавно делал задачу, как бонус, для получения автоматом зачета по числовых методах.. чегото там (дальше не помню название предмета), задача интерполяционого полинома лагранжа. суть ее работы(в моем случае) была такова: сначало вводится количество точек извесных, потом иксы(x) каждой точки, потом игрики(хз почему не сделал, чтобы по одной точке вводить. наверное потому, что у меня x и y в разных маисвах... вобщем неважно. захочешь думаю сможешь переделать). а потом делается подстановка неких чисел. далее соотвественно идет проверка функцией sin(z)(по заданиб было проверить именно синусом) от этого числа. у нас была суть задачи проверить разницу эти значений. ну и на сколько точным является результат найденый полиномом лагранжа. вобщем смотри, может этот код будет для тебя чем то полезным. сори что код без коментов, надеюсь ты както поймешь \=
Код:
Последний раз редактировалось lowercase; 19.02.2012 в 01:41. |
19.02.2012, 02:01 | #5 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 88
|
как говорится, хорошая мысля приходит опосля... опосля 3х нидель после того, как сделал. функции new_zk, new_yk, new_xk можно было слепить в одно единое и просто передавать значение сообщения перед вводом, отдельной строкой. так сказать оптимизация (хоть и для даной задачи мелочь, но зато приятно) если будет желание, то думаю разберешься. я просто уже сплю походу набора текста. если начну обяснять, то вырублюсь к чертям
удачи. пробуй, разбирайся.. обязательно научишься чемуто Последний раз редактировалось lowercase; 19.02.2012 в 02:04. |
19.02.2012, 07:22 | #6 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Инициализировать переменную - это значит присвоить ей значение перед первым актом использования этой переменной. Чему у вас равены n и x? Если локальные переменные не инициализировать, то они гарантированно будут содержать мусор.
Вам очень здорово помог lowercase. Не упустите возможность и разберитесь в программе. Это вас точно многому научит. Наверняка, когда разберётесь, то сможете адаптировать её под себя. Выкладывайте переработанный код - обсудим. И если есть вопросы - не стесняйтесь, задавайте. Над кодом lowercase надо ещё поработать. Окончательно перевести на Си либо С++ (т.е. попытаться пришмурыгать ООП ) |
19.02.2012, 11:57 | #7 |
Регистрация: 16.02.2012
Сообщений: 4
|
Хорошо, буду пробивать разобраться, всем большое спасибо, потом если что спрошу что-то, еще раз спасибо
|
19.02.2012, 21:10 | #8 |
Регистрация: 16.02.2012
Сообщений: 4
|
Не люблю эту библиотеку:
Код:
Код:
|
20.02.2012, 18:28 | #10 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Задачи программиста следующие:
1) Получить информацию от пользователя 2) Обработать информацию, полученную от пользователя 3) Вывести результат обработки данных, полученных от пользователя Примечание - Пользователь - это может быть, к примеру, программа или устройство (с программным интерфейсом), не обязательно человек. Рассмотрим, как получить информацию от пользователя. Получить данные от пользователя можно следующими способами: 1) Через текстовою строку консоли (терминала) 2) Через графический интерфейс пользователя (GUI - graphical user interface) 3) Через файл Примечание - 1) Выдать информацию можно: - в консоль - в элементы графического интерфейса пользователя - в файл 2) Для ввода\вывода Можно комбинировать: - консоль - файл - GUI - файл Теперь рассмотрим, как получить данные от пользователя, используя языки Си и С++. Пока рассмотрим только, как получить данные от пользователя (на примере целого числа), через текстовою строку консоли (терминала) Си: Код:
Код:
Или не очень сложный: Код:
Си: Код:
Код:
Код:
P.S.S. Мне кажется, нам легче будет общаться в терминах языка Си. Последний раз редактировалось 8Observer8; 20.02.2012 в 18:36. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
интерполяционный многочлен Лагранжа, Pascal | Ladyia | Помощь студентам | 8 | 15.10.2013 15:24 |
Интерполирование функций, многочлен Лагранжа! | IdiotDetected | Помощь студентам | 0 | 07.04.2011 21:50 |
Есть у кого код??(интерпритационный многочлен Лагранжа) | ins1der | Общие вопросы Delphi | 2 | 21.05.2010 01:20 |
Интерполяционный многочлен лагранжа | 3.14oner | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 10.11.2008 17:30 |