Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2009, 22:10   #1
anna_
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 20
По умолчанию Решение уравнений в Паскале

Задание
Найти наименьший положительный корень уравнения f(x)=0,
где f(x)=tg(Ax)-Bx
При А=0.6319 B=0.9217

Помогите пожалуйста, просто даже нету вариантов как решать.
Натолкните на мысль.
anna_ вне форума Ответить с цитированием
Старый 18.12.2009, 22:29   #2
anna_
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 20
По умолчанию

Вот написала код, но как сделать чтоб выводило наименьший положительный корень ??

Может здесь нужен какой то другой метод решения уравнений (проб, хорд, касательных и т.д.) ??
Код:
Program metod2;
uses Crt;
Type Funct=Function(s:real):Real;
Var a,b,eps,x:real;
k:integer;
ident:string;
Function F(x:real):real;
Begin
f:=sin(A*x)/cos(A*x)-B*x;
End;
Procedure Bisect(a,b,eps:real; F:Funct; var k:integer; var x:real);
Var y,r:real;
Begin
k:=0;
Repeat
y:=F(a);
r:=F(b);
if (y*r<0) then
Begin
x:=(a+b)/2;
y:=F(x);
r:=F(a);
if(y*r>0) Then a:=x Else b:=x;
k:=k+1;
End
Else Writeln('   не выполняется условие выбора [a,b]');
until((b-a)<eps) Or (abs(F(x))<eps);
End;
Begin
Clrscr;
GotoXY(4,3);
Write ('Введите фамилию, номер варианта: '); Readln(ident); GotoXY(4,5);
Write ('Введите a: '); Readln(a); GotoXY(4,7);
Write ('Введите b: '); Readln(b); GotoXY(4,9);
Write ('Введите eps:'); Readln(eps); Bisect(a,b,eps,F,k,x); GotoXY(4,11);
Writeln('Работу выполнил студент: ',ident); GotoXY(4,13);
Writeln('Решене уравнения методом бисекций'); GotoXY(4,15);
Writeln('Корень уравнения ',x:7:3,' количество итераций ',k);
Readln;
end.

Последний раз редактировалось anna_; 18.12.2009 в 22:32.
anna_ вне форума Ответить с цитированием
Старый 18.12.2009, 22:33   #3
MadReason
Ищу работу
Форумчанин
 
Аватар для MadReason
 
Регистрация: 16.02.2007
Сообщений: 269
По умолчанию

в методе перебора примерно такая логика

for i:=0 to maxint do
begin
x:=i/10000;// для погрешности четыре знака
y:=round((tan(A*x)-B*x)*10000); //10000 для погрешности четыре знака
if y=0 then writeln('мин корень: ',x:7:5);
end;

правильнее будет сделать методами анализа. но ковыряться ща в этом лень
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
MadReason вне форума Ответить с цитированием
Старый 19.12.2009, 19:34   #4
anna_
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 20
По умолчанию

а кто нить еще может что то подсказать??
anna_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение нелинейных уравнений Альбина123456 Помощь студентам 0 18.12.2009 20:52
Решение уравнений delete Общие вопросы C/C++ 0 01.10.2009 23:06
решение нелинейных уравнений Жанна__90 Помощь студентам 21 22.07.2009 01:30
решение трансцендениных уравнений DjRog Паскаль, Turbo Pascal, PascalABC.NET 2 03.04.2008 13:20