Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Построение графика нелинейного уравнения, Turbo Pascal (http://www.tehnari.ru/f41/t87760/)

Sandra 2000 24.04.2013 00:14

Построение графика нелинейного уравнения, Turbo Pascal
 
Вложений: 1
Помогите пожалуйста написать программу построенния графика.
Задано нелинейное уравнение : lg(x+2) = cos2x
Если перенести все вправо получается F(x) = lg(x+2)-cos2x (или F:=ln(x+2)/ln(10)-(cos(2*x)))
Только вот как строить? Можно разделить на два f1(x) = lg(x+2) и f2(x)=cos2x, но не уверена.

P.S. Тема связана с численными методами(метод половинного деления)

Vladimir_S 24.04.2013 09:43

Цитата:

Сообщение от Sandra 2000 (Сообщение 900307)
Только вот как строить? Можно разделить на два f1(x) = lg(x+2) и f2(x)=cos2x, но не уверена.

Можно. Только вот зачем? Вы написали функцию в явном виде, ну так и считайте таблицу F(x).
Цитата:

Сообщение от Sandra 2000 (Сообщение 900307)
P.S. Тема связана с численными методами(метод половинного деления)

Так Вам график или решение уравнения?

Sandra 2000 24.04.2013 10:00

только график, корни я уже нашла:tehnari_ru_942:

Vladimir_S 24.04.2013 10:35

Цитата:

Сообщение от Sandra 2000 (Сообщение 900367)
только график, корни я уже нашла:tehnari_ru_942:

Чудесно. Так в чем проблемы? Таблицу в файл не скинуть? Или Вам графическая программа нужна?

Sandra 2000 24.04.2013 10:38

Цитата:

Сообщение от Sandra 2000 (Сообщение 900307)
Помогите пожалуйста написать программу построенния графика.

да мне нужна программа, которая строит этот график

Vladimir_S 24.04.2013 10:41

Цитата:

Сообщение от Sandra 2000 (Сообщение 900378)
да мне нужна программа, которая строит этот график

Ух... ну ладно, нарисую. По возможности. Сейчас я на работе, и потому приходится еще и работать. :D

Vladimir_S 24.04.2013 11:54

Вложений: 1
Так, ну вот, получите:
Код:

Uses CRT, Graph;
Var
 i:Integer;
 x,y:Real;
 S:String;
Function F(z:real):real;
begin
 F:=Ln(z+2)/Ln(10)-Cos(z*2);
end;

Begin
 InitGraph(...); {Здесь - самостоятельно}
 SetLineStyle(SolidLn,0,ThickWidth);
 Line(20,240,620,240);
 Line(200,20,200,460);
 SetTextStyle(DefaultFont,HorizDir,1);
 SetTextJustify(CenterText,TopText);
 For i:=-3 to 7 do
  if i<>0 then
  begin
    Line(200+60*i,240-4,200+60*i,240+4);
    STR(i,S);
    OutTextXY(200+60*i,240+10,S);
  end;
 SetTextJustify(RightText,CenterText);
 For i:=-2 to 2 do
  if i<>0 then
  begin
    Line(200-4,240-110*i,200+4,240-110*i);
    STR(i,S);
    OutTextXY(200-10,240-110*i,S);
  end;
 SetLineStyle(SolidLn,0,NormWidth);
 SetColor(Yellow);
 x:=-3.0+61/60;
 y:=F(x);
 MoveTo(Round(200+x*60),Round(240-y*110));
 For i:=62 to 600 do
  begin
  x:=-3.0+i/60;
  y:=F(x);
  LineTo(Round(200+x*60), Round(240-y*110));
  end;
 ReadKey;
 CloseGraph;
End.



Часовой пояс GMT +4, время: 08:25.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.