IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> график, корни и экстреммумы функции. проблема, надо срочно
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский
Реальное имя: татьяна

Репутация: -  0  +


в общем есть огромная функция 10й степени. это ладно я её задала. дальше были задания
1. составить таблицу значений на отрезке [a,b] и шагом h и построить её график. в общем проблема в построении графика этой фунции(понятия не имею как это делается)
2. найти ВСЕ корни используя метод деления отрезка пополам. Находит только один корень,т.к. при условии
y(a)*y©<0 идёт деление только в одну сторону, при том в сторону меньшую(находит этот корень). ВОПРОС: как отправить деление в другую сторону,т.е. цикл в цикле(глючит), т.к. есть 4 корня.
3. найти все относительные (локальные) экстреммумы (в какой точке достигается и чему равняется), используя метод деления отрезка пополам или метод золотого сечения. честно скажу понятия не имею как это делатьsad.gif


ЛЮДИ 1и2 я сделала, осталось про экстреммумы подумать,у кого какие мысли есть киньте пожалуйста
и вопрос как увеличить масштаб у графика? у меня отрезок получается [-0.5;0.5] его даже не видноsad.gif

Сообщение отредактировано: зайка -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Цитата
проблема в построении графика
Поищи на форуме, есть такая программа.
Цитата
используя метод деления отрезка пополам
Метод половинного деления есть в FAQ'е(если это то что надо)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский
Реальное имя: татьяна

Репутация: -  0  +


Цитата(Client @ 2.07.2008 19:29) *

Поищи на форуме, есть такая программа.Метод половинного деления есть в FAQ'е(если это то что надо)

метод половинного деления там только для корней а мне надо ещё для экстреммумов

НЕНАШЛАsad.gif

Сообщение отредактировано: зайка -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский
Реальное имя: татьяна

Репутация: -  0  +


такой вопрос а как вам показать что я делала? у меня с паскаля не копируетсяsad.gif хотябы чтобы показали в чём ошибка

Сообщение отредактировано: зайка -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Открой PAS-файл тем же Блокнотом, например, и скопируй... Или просто присоедини сюда сам PAS-файл, не копируя (не в форме быстрого ответа, а после нажатия на кнопку "Ответить")
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский
Реальное имя: татьяна

Репутация: -  0  +


вот посмотрите что я делала
посмотри пожайлуйста в чём ошибка

PROGRAM abc;
uses crt;
const d1=-2; d2=2;h=0.1;
var
f1,f2,f3,s,s1,y1:longint;
k,n:integer; f,x,a:real;
function y(x:real):real; {zadaem funkciyu}
var y1:real;
procedure fact(n:integer; var f:longint);
var i:integer;
begin
f:=1;
if n=0 then f:=1
else
for i:=1 to n do
f:=f*i;
end;
procedure step(a:real;n:integer;var s:longint);
var i,b:integer;
begin
s:=1; {здесь выдаёт ошибку №202}
for i:=1 to n do
s:=s*b;a:=b;
end;
procedure step1(a,n:integer;var s:longint);
var i:integer;
begin
s:=1;
for i:=1 to n do
begin
if i mod 2=0 then s:=1 else s:=-1;
end; end;
begin {funkcii}
fact(k,f1);
fact((19-k),f2);
fact((20-2*k),f3);
step(a,10-k,s);
step1(-1,k,s1);
y1:=10*s1*f2*s/(f1*f3);
y:=0;
for k:=0 to n do
y:=y(x)+y1;
end;{konec funkcii}
begin {osnovnaya}
x:=d1;
f:=0;
writeln('| x | y |');
writeln('|------- |---------------|');
repeat
a:=4*x*x;
f:=f+y(x);
writeln('|',x:7:3,' | ',f:7:3 ,' |');
x:=x+h;
until x>d2;
writeln('|--------------------------|');
readln;
end.
до этого записывала функцию просто тупым умножением квадратов, всё работала, решила через процедуры степени и факториала и всё выдаёт ошибку. глянь пожалуйста.
и ещё написала прогу для максимумов и минимумов,(ф-я получается симметричной, т.е. дожно быть 4 экстреммума, а выдаёт только 2)

program extrem;
uses crt;
var a,b,x1,x2,y1,y2,x,y,e:real;
n,i:integer;
function f(x:real):real; {zadaem funkciyu}
var y1,y2,y3,y4:real;
begin
{f:=sqr(x)-4*x-5;}
y1:=(((sqr(sqr(sqr(4*sqr(x)))))*sqr(4*sqr(x)))/2)-((sqr(sqr(sqr(4*sqr(x)))))*(4*sqr(x))*10)+((sqr(sqr(sqr(4*sqr(x)))))*85);
y2:=- (((sqr(sqr(4*sqr(x))))*(sqr(4*sqr(x))*(4*sqr(x))))*400)+(((sqr(sqr(4*sqr(x))))*s

qr(4*sqr(x)))*113.75);
y3:=-((sqr(sqr(4*sqr(x))))*(4*sqr(x))*2002)+((sqr(sqr(4*sqr(x))))*2145)-((sqr(4*sqr(x)))*(4*sqr(x))*1320);
y4:=((sqr(4*sqr(x)))*825)-(4*sqr(x))*50+1;
f:=y1+y2+y3+y4;
end;
procedure gold1(a,b:real;var x1,y1:real);
begin
x1:=0.618*a+0.382*b;
y1:=f(x1);
end;
procedure gold2(a,b:real;var x2,y2:real);
begin
x2:=0.618*b+0.382*a;
y2:=f(x2);
end;
{osnovnaya programma}
begin
a:=-2; b:=2; e:=0.01;
gold1(a,b,x1,y1);
gold2(a,b,x2,y2);
n:=0;
while abs(b-a)>e do
begin{minimum}
if y1<y2 then
begin
b:=x2;x2:=x1;
y2:=y1;
gold1(a,b,x1,y1);
n:=n+1;
end
else
begin
a:=x1;x1:=x2;
y1:=y2;
gold2(a,b,x2,y2);
end;
end;{konec minimuma}
x:=(a+B)/2;
{for i:=1 to n do}
writeln('ymin=',f(x):4 :4,' pri x=',x:4 :4);
a:=-2; b:=2; e:=0.01;
gold1(a,b,x1,y1);
gold2(a,b,x2,y2);
n:=0;
while abs(b-a)>e do
begin{maximum}
if y1>y2 then
begin
{ a:=x1;x1:=x2;
y1:=y2;
gold2(a,b,x2,y2);
n:=n+1;}
b:=x2;x2:=x1;
y2:=y1;
gold1(a,b,x1,y1); n:=n+1;
end
else
begin
{b:=x2;x2:=x1;
y2:=y1;
gold1(a,b,x1,y1);}
a:=x1;x1:=x2;
y1:=y2;
gold2(a,b,x2,y2);
end;
end;{konec maximuma}
x:=(a+B)/2;
{for i:=1 to n do }
writeln('ymax=',f(x):4 :4,' pri x=',x:4 :4);
readln;
end.


Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.12.2024 20:16
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name