|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.03.2010, 17:40 | #1 |
Регистрация: 02.03.2010
Сообщений: 4
|
Проблема с нахождением корня нелинейного уравнения (Fortran 77)
Здравствуйте, в Fortran'e пока не силен и не могу никак найти свою ошибку. Программа находит корни нелинейного уравнения двумя способами: методом половинных отрезков и методом секущих, далее выводит график косинуса и моего.
Программа компилируется отлично, но после ввода данных она вылетает. Я нашел из-за чего, с помощью дебагера. Ошибка деления на ноль, но я не понимаю откуда она там и никак не могу исправить Код всей программы: Код:
Код:
|
02.03.2010, 18:44 | #2 |
FORTRAN programmer
Форумчанин
Регистрация: 08.12.2009
Сообщений: 153
|
Что такое l?
|
02.03.2010, 19:06 | #3 |
Регистрация: 02.03.2010
Сообщений: 4
|
Неавнимательно делал, но проблема все равно не решилась
Код:
|
02.03.2010, 19:30 | #4 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
У Вас в основной программе m, po, kar (точнее, фактические параметры 2 - 4 при обращении к FUNC) - типа integer, а в функции они (точнее - формальные параметры 2-4) - real.
|
02.03.2010, 20:21 | #5 |
Регистрация: 02.03.2010
Сообщений: 4
|
спасибо огромное, исправил. Но возникла новая ошибка...почему то не считает методом секущих корень....или считает но не точно (метод секущих это там где ошибка была)
|
02.03.2010, 20:53 | #6 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Чему m, po и kar равны?
Added 19:24 CET 1. Вы приближаетесь к корню слева и при этом у Вас a(0) - правее, чем a(1). 2. На результат это не влияет, но зачем Вы вообще храните последовательности x и f ?! Код:
Последний раз редактировалось Vago; 02.03.2010 в 21:24. |
03.03.2010, 16:30 | #7 |
Регистрация: 02.03.2010
Сообщений: 4
|
m, po, kar по единице задавал. Спасибо за фрагмент программы, только почему то количество шагов всегда показывает единицу
P.S и заметил еще недоработку , по вашему фрагменту. Если брать эпсилон где-то 0.00001 тогда да , все считает, но если взять 0.1 то все...выкидывает Последний раз редактировалось reafantu; 03.03.2010 в 16:37. Причина: добавление данных |
03.03.2010, 19:42 | #8 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Пожалуйста.
Вы перед методом секущих всегда гоняете метод дихотомии, а он у Вас портит a и b. Восстановите эти два значения перед началом работы по методу секущих, и всё встанет на свои места Вообще-то, это - Ваш фрагмент, и идея привязать x(1) к точности - Ваша идея Я лишь подвинул x(0) на место и показал, как обойтись без массива. Ну, естественно! X(1) оказался больше b. Можете попрактиковаться в Фортране, корректируя при необходимости x(1) перед тем как собственно приступать к поиску корня |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Решение нелинейного уравнения и построение графика | xMass | Помощь студентам | 5 | 29.10.2012 19:42 |
Численные методы. Решение нелинейного уравнения методом половинного деления. | gree | Помощь студентам | 1 | 11.11.2009 18:36 |
Решение нелинейного уравнения методом Ньютона | Tina | Общие вопросы C/C++ | 2 | 04.06.2008 21:48 |