imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 11.11.2003, 13:59     # 1
dr-evil
::VIP::
 
Аватар для dr-evil
 
Регистрация: 17.02.2002
Адрес: /home/dr-evil
Пол: Male
Сообщения: 2 212

dr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэй
Задачка по численному анализу

Цитирую:

Составить программу вычисления производной функции, заданной набором экспериментальных значений xi и yi; имитируя их по формуле y=2*x^2+3*x-5. Провести приближение функции y(x) полиномом второй степени на всем интервале х. Экспериментальные точки строить при 999<=x<=1000 c шагом 0.1 Производную y'(x) напечатать в тех же точках х

Конец цитаты.

Язык: Паскаль
Есть идеи?
__________________
Сеть - это диагноз... а сисадмин - состояние души.
Питер! Все на сходку!!! | Обзоры порталов. Добавь свою любимую систему!
dr-evil вне форума  
Старый 11.11.2003, 14:17     # 2
denver
::VIP::
 
Аватар для denver
 
Регистрация: 02.12.2001
Адрес: Hohland
Сообщения: 2 260

denver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуру
С точки зрения программирования - лехко!
Над матчастью только подумай (я матан еще года 4 назад сдал+забыл)

А с матчастью, кстати, непонятно. Исходя из условия:
Цитата:
вычисления производной функции, заданной набором экспериментальных значений xi и yi; имитируя их по формуле y=2*x^2+3*x-5
Выходит что y=2*x^2+3*x-5 это и есть производная.
Цитата:
Производную y'(x) напечатать в тех же точках
Тут вообще непонятно, y'(x) это производная от y=2*x^2+3*x-5 или же ты чего-то напутал в приведенном условии.
__________________
sapienti sat.
denver вне форума  
Старый 11.11.2003, 14:31     # 3
YAS
::VIP::
 
Аватар для YAS
 
Регистрация: 18.01.2002
Адрес: Moscow
Сообщения: 1 919

YAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS Сэнсэй
dr-evil
Действительно! Ты хоть сам понял условие задачи?
__________________
Бороться и искать, найти и перепрятать :-)
YAS вне форума  
Старый 11.11.2003, 14:36     # 4
dr-evil
::VIP::
 
Аватар для dr-evil
 
Регистрация: 17.02.2002
Адрес: /home/dr-evil
Пол: Male
Сообщения: 2 212

dr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэй
denver
как я понимаю есть некая функция, которую мы имитируем выражением y=2*x^2+3*x-5.

Добавлено через 1 минуту:
YAS
я его седня открыл... :-)
__________________
Сеть - это диагноз... а сисадмин - состояние души.
Питер! Все на сходку!!! | Обзоры порталов. Добавь свою любимую систему!
dr-evil вне форума  
Старый 11.11.2003, 14:45     # 5
denver
::VIP::
 
Аватар для denver
 
Регистрация: 02.12.2001
Адрес: Hohland
Сообщения: 2 260

denver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуруdenver Гуру
dr-evil
Цитата:
...производной функции, заданной набором...
Да, ты скорее прав, я почему то прочитал "производной функции, заданной набором..." а не "производной функции, заданной набором..."
Сорри с матаном я не помогу. А программировать тут и нечего.

Добавлено через 3 минуты:
хотя может только алгоритмы относятся к прогаммированию, скорее всего алгоритмы вычисления производной и приближения есть у Кнута.
__________________
sapienti sat.
denver вне форума  
Старый 11.11.2003, 15:40     # 6
dr-evil
::VIP::
 
Аватар для dr-evil
 
Регистрация: 17.02.2002
Адрес: /home/dr-evil
Пол: Male
Сообщения: 2 212

dr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэй
denver
если есть инф по теме... то плз линки... или выкройки....
мне энто сдавать придется....
__________________
Сеть - это диагноз... а сисадмин - состояние души.
Питер! Все на сходку!!! | Обзоры порталов. Добавь свою любимую систему!
dr-evil вне форума  
Старый 11.11.2003, 18:30     # 7
YAS
::VIP::
 
Аватар для YAS
 
Регистрация: 18.01.2002
Адрес: Moscow
Сообщения: 1 919

YAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS СэнсэйYAS Сэнсэй
Эх, давно я методами вычислений не занимался!

dr-evil
У тебя какой ВУЗ? И еще в каком виде нужен результат (текст, график)?
__________________
Бороться и искать, найти и перепрятать :-)
YAS вне форума  
Старый 11.11.2003, 18:44     # 8
CEO
Full Member
 
Аватар для CEO
 
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998

CEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собой
dr-evil :
Заглянул я в книгу по численным методам, а там... Короче, понял я одно,
где начинаются формулы, там заканчивается смысл.
Тем неменее попытка не пытка.
Для начала разберемся, что все-таки требуется в задании.
Я понял так:
Заполнить массив значениями полученными по формуле: y=2*x^2+3*x-5 ,
по полученным значениям, затем получить приблизительный вид функции y(x)
и найти ее производные в каждой точке из диаппазона от 999 до 1000.
Но тогда вопрос зачем все это делать, если функция итак известна?
Т.е., почему бы просто не взять производную от y=2*x^2+3*x-5:
dy=2*2*x+3 и вывести ее значения в каждой точке x на заданном интервале.
Если нужна такая программа, то пожалуста:
i:=999;
c:=1;
while i<>1000 do begin
x[c]:=i;
y[c]:=2*sqr(x[c])+3*x[c]-5;
dy[c]:=2*2*x[c]+3;
writeln('x:',x[c],'y(x):'y[c],'dy(x):',dy[c]);
i:=i+0.1;
inc(c);
end;

Если все-таки первый вариант нужен, то как будет время, можно будет подумать,
это не должно быть слишком сложно.

Насчет линков, пока что, нашлось только это :
http://www.num-meth.srcc.msu.su
http://www.srcc.msu.su/num-anal/index.htm
__________________
Старые игры раздают здесь
CEO вне форума  
Старый 12.11.2003, 11:49     # 9
CEO
Full Member
 
Аватар для CEO
 
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998

CEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собой
Заглянув в эту книгу еще раз, вот что я там нашел:
"Если функция задана таблично, то для нахождения ее производной необходимо построить какой-нибудь интерполяционный многочлен..." Пусть это будет например, dY[k](x)=(Y[k+1] - Y[k-1])/(2*h).
Тогда, программа будет выглядеть так:
{заполняем таблицу значениями функции}
k:=998;
c:=1; h:=0.1;
while k<>1001 do begin
y[c]:=2*sqr(x)+3*x-5;
k:=k+h;
inc(c);
end;
{находим полином в каждой точке, это и будет искомая производная}
for j:=1 to c-1 do begin
dy[c]:=(y[c+1]-y[c-1])/(2*h);
writeln(dy[c]);
end;
Вот оказывается как все просто.

"Повысить точность можно использовав более сложный интерполяционный многочлен Лагранжа ".
__________________
Старые игры раздают здесь
CEO вне форума  
Старый 12.11.2003, 12:33     # 10
dr-evil
::VIP::
 
Аватар для dr-evil
 
Регистрация: 17.02.2002
Адрес: /home/dr-evil
Пол: Male
Сообщения: 2 212

dr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэй
YAS
Политех питерский, результат ждут в виде проги =)

CEO
пасиба, стало яснее
__________________
Сеть - это диагноз... а сисадмин - состояние души.
Питер! Все на сходку!!! | Обзоры порталов. Добавь свою любимую систему!
dr-evil вне форума  
Старый 20.11.2003, 14:57     # 11
dr-evil
::VIP::
 
Аватар для dr-evil
 
Регистрация: 17.02.2002
Адрес: /home/dr-evil
Пол: Male
Сообщения: 2 212

dr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэй
CEO
увы нужен только первый вариант
__________________
Сеть - это диагноз... а сисадмин - состояние души.
Питер! Все на сходку!!! | Обзоры порталов. Добавь свою любимую систему!
dr-evil вне форума  
Старый 20.11.2003, 17:02     # 12
CEO
Full Member
 
Аватар для CEO
 
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998

CEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собой
dr-evil :так, яже, вроде и описал в следующем посте первый вариант. Хотя, я в этих численных методах слаб, не нужно мне это пока открыл книгу почитал, ну ни написал как понял, может я и не прав конечно, но больше ничем помочь не могу, извини, может кто-нибудь другой.
__________________
Старые игры раздают здесь
CEO вне форума  
Старый 09.12.2003, 15:42     # 13
CEO
Full Member
 
Аватар для CEO
 
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998

CEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собой
Совершенно случайно нашел сайт с исходниками по численным методам, там похоже есть ответы на любые вопросы по данной теме:
http://alglib.manual.ru/
__________________
Старые игры раздают здесь
CEO вне форума  
Старый 12.12.2003, 14:41     # 14
aleks_k2
Junior Member
 
Регистрация: 13.09.2002
Сообщения: 105

aleks_k2 Нимб уже пробиваетсяaleks_k2 Нимб уже пробивается
Re: Задачка по численному анализу

Цитата:
Первоначальное сообщение от dr-evil
Цитирую:

Составить программу вычисления производной функции, заданной набором экспериментальных значений xi и yi; имитируя их по формуле y=2*x^2+3*x-5. Провести приближение функции y(x) полиномом второй степени на всем интервале х. Экспериментальные точки строить при 999<=x<=1000 c шагом 0.1 Производную y'(x) напечатать в тех же точках х

Конец цитаты.

Язык: Паскаль
Есть идеи?
Если воспользоваться Интерполяцией полиномф Лагранжа 2-й степени см на стр.
http://alglib.manual.ru/functions/in...n/lagrange.php

То получится что произведение в средней точке вычисляется приближенно по формуле
y`(x[n])= (y[n+1]-y[n-1])/(x[n+1]-x[n-1]),
где x[n-1], x[n], x[n+1] и y[n-1], y[n], y[n+1] соответствующие последовательные значения. В данном случае т.к. исходная функция сама является полиномом второй степени, то в результате должна получатся точная производная, если функция более сложная то некое приближение.
Думаю дальше программу составить уже несложно, но если что пиши.
aleks_k2 вне форума  
Старый 24.12.2003, 12:31     # 15
dr-evil
::VIP::
 
Аватар для dr-evil
 
Регистрация: 17.02.2002
Адрес: /home/dr-evil
Пол: Male
Сообщения: 2 212

dr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэй
короче препод кое-что разъяснил и выдал....
что нужно получив точки (xi, yi) по ним получить коэффициенты квадратного уравнения.... и все энто методом наименьших квадратов.... вот...

если кому не в лом, объясните доступно что есть этот метод, как его применить в условиях данной задачи, и хотелось бы алгоритм этих действий.
__________________
Сеть - это диагноз... а сисадмин - состояние души.
Питер! Все на сходку!!! | Обзоры порталов. Добавь свою любимую систему!
dr-evil вне форума  
Старый 03.01.2004, 00:47     # 16
Aluf
Junior Member
 
Регистрация: 23.12.2003
Адрес: Israel
Сообщения: 102

Aluf Известность не заставит себя ждатьAluf Известность не заставит себя ждать
не "уравнения" а полинома формы: р(х)=а0+а1*х+а2*х*х, где а0,а1,а2 коеффициенты то есть числа которые надо наити, тут я говорю о полиноме 2 степени его форму и привел. Метод наименьших квадратов - метод найти ети коеффициенты так чтобы квадраты ошибок(квадрат разницы между данными Y что препод тебе дал и Y посчитанными из нашего полинома р(х)) были минимальны.
Решается задача в 2 хода:
1) составляется система линейных уравнений минимизируяшая ети квадраты;
2) решая ету систему любым (если не оговорено специально) методом получаем ети коеффициенты.
1) входные данные:вектора х и y состояшие из w елементов,
форма полинома который приблизит ети вектора р(х)=а0+а1*х+а2*х*х (тут 2й степени вполне хватит)
система уравнений для етого случая:
w*А0+Б1*А1+Б2*А2 = С1
Б1*А0+Б2*А1+Б3*А3 = С2
Б2*А0+Б3*А1+Б4*А3=С3

где:w - кол-во елементов в х или y
Б1 = х1+х2+х3+...+хw ,сумма всех елементов х (учитывая знаки)
Б2 =х1*х1+х2*х2+х3*х3+...+хw*хw , сумма квадратов елементов в х
Б3 = х1*х1*х1+х2*х2*х2...+хw*хw*хw , сумма кубов в х
Б4 = х1^4+х2^4+...+хw^4 , сумма 4х степеней в х
С1 = y1+y2+y3+...yw , summa vsex chisel v y
C2 = x1*y1+x2*y2+...xw*yw
C3 = x1*x1*y1+x2*x2*y2+...xw*xw*yw

А0,А1,А2 те самые коеффицииенты в полином.

2) Решив ету систему получаешь А0,А1,А2 подставляешь их в формулу р(х)
и дальше для 999<х<1000 с шагом считаешь значения р и сравниваешь с данными преподом значениями Y.

Производную тебе уже сказали СЕО.
С Паскалем помочь не могу забыл со школы на прочь.
Но вообше, етот способ есть в Матлабе в одной функции:

p = polyfit(x,y,n)
где р ето вектор етих самых коеффизиентов.
Eсли будут вопросы по нумерике спрашивай.

Последний раз редактировалось Aluf; 03.01.2004 в 15:49.
Aluf вне форума  
Старый 03.01.2004, 11:52     # 17
dr-evil
::VIP::
 
Аватар для dr-evil
 
Регистрация: 17.02.2002
Адрес: /home/dr-evil
Пол: Male
Сообщения: 2 212

dr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэйdr-evil Сэнсэй
Aluf
с паскалем нет проблем у меня. =)
огромное пасиба. 5! домой приеду попробую....
__________________
Сеть - это диагноз... а сисадмин - состояние души.
Питер! Все на сходку!!! | Обзоры порталов. Добавь свою любимую систему!
dr-evil вне форума  
Старый 03.01.2004, 15:55     # 18
Aluf
Junior Member
 
Регистрация: 23.12.2003
Адрес: Israel
Сообщения: 102

Aluf Известность не заставит себя ждатьAluf Известность не заставит себя ждать
Пожалуста,u
не забудь потом проверить результат на Matlab или Mathcad,
если нет ни того ни другого можешь послать мне текст фаил с х и y dannymi в две строки я проверю на Матлаб
yuriz at inbox.ru

Последний раз редактировалось Aluf; 03.01.2004 в 15:58.
Aluf вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


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




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.