Помощь - Поиск - Пользователи - Календарь
Полная версия: Алгоритм табулирования и решения функции на Паскале
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Driver86
Вот такое у меня задание:
Цитата
Составьте алгоритм и программу табулирования функции (для определения интервалов изоляции корней уравнения) и вычисления корня нелинейного уравнения для одного (первого) параметра Р численным методом, который укажет преподаватель. Получите решение на компьютере. Введите число итераций n, значение корня х* уравнения, оценку точности dx и результат подстановки корня х* в левую часть уравнения. Заданная точность Е = 10-6 (десять в степени минус шесть)). Получите решения для различных значений параметра Р и проанализируйте, как зависит число итерации и значения корня от изменений параметра Р. Параметр Р изменяется по закону арифметической прогрессии с шагом ΔР или представлен массивом данных. Способ задания различных значений параметра Р задаёт преподаватель.
А вот что дал преподаватель smile.gif -> уравнение: 7х2-4ln(х)+р = 0, параметр Р: -20, -15, -10, -6

Как составить прогу на Паскале???
мисс_граффити
Цитата
численным методом, который укажет преподаватель.

ну и какой он указал метод?
Driver86
Видимо, вот это smile.gif
Цитата
параметр Р равен -20, -15, -10 и -6

Хотя бы подскажите, как определить интервал изоляции корней уравнения unsure.gif
*добавлено*
Да, функцию написал немного не чётко: 7х2(икс в степени два)-4ln(х)+p=0
мисс_граффити
то, что ты привел - это
Цитата
Способ задания различных значений параметра Р задаёт преподаватель.

а писать программу, не зная метода решения, глупо. то ли это метод бисекции, то ли простой итерации, то ли Ньютона (касательных, хорд или секущих).
интервал изоляции: в цикле вычисляешь значения функции. как только на одном шаге значение положительное, а на следующем - отрицательное, интервал получен.
Driver86
Цитата
то ли это метод бисекции, то ли простой итерации, то ли Ньютона (касательных, хорд или секущих).

А, вот оно что). Пойдёт любой метод: Ньютона, деления отрезка пополам (дихотомия), поразрядного приближения. Но описание этих методов у меня есть. Больше всего меня интересует вот это -->
Цитата
интервал изоляции: в цикле вычисляешь значения функции. как только на одном шаге значение положительное, а на следующем - отрицательное, интервал получен.

Для этого надо подставлять различные значения х, как я понял. Давно не работал за Паскалем, забыл всё... Не помешал бы хотя б пример такого цикла... Не отказался бы от твоей помощи, мисс_граффити wink.gif
З.Ы. Ты одна, кто толкует в Паскале? smile.gif
мисс_граффити
что-то вроде такого....


function f(const x:byte):real;{твоя функция, которую надо вычислять}
begin
f:=7*sqr(x)-4*ln(x)-20;
end;

var x:byte;
begin
x:=1;{начальное значение... отрицательные вне области определения}
while (not((f(x)<0)and(f(x+1)>0)) and not((f(x)>0)and(f(x+1)<0))) do
inc(x);{можешь работать не с целыми х и сделать шаг поменьше - точнее определить интервал}
writeln(x,' ',x+1);
end.


как видишь, если решение будет на участке (0 1) , программка результат не выдаст.
или если не найдет подходящих чисел до 128...
как переделать - подумай сам.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.