Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.08.09;
Скачать: [xml.tar.bz2];

Вниз

пожалуйста, нужнпа небольшая помощь в решении нельнейных уравнени   Найти похожие ветки 

 
mathematicsfss   (2009-06-09 19:51) [0]

Здравствуйте.
Пожалуйста, не нудно меня ругать ) не знаю я.
\Появился такой вопрос, допустим мы решаем нелинейное уравнений cos(x)*sin(x)=y
на интервале [a;b], с погрешностью e

Решая его методом половинного деления получается один ответ, решая его методом простых итераций - опять таки другой :(

Метод пполовинного деления:

function FF(X : real):real;
begin
    FF:=cos(x)*sin(x);
end;
...

found:=false;
 a:=strtofloat(edA.text);
 b:=strtofloat(edB.text);
 e:=strtofloat(edE.text);

 while not found do
 begin
 if abs(a-b)<=e then found:=true;
 t:=(a+b)/2;
fsScript1.parent:=fsGlobalUnit;

ft:=ff(t);

fa:=ff(a);

if (fa*ft<0) then
   begin
      b:=t;
   end
   else
   begin
     a:=t;
   end;

 end;
label7.Caption:="Корень уравнения: "+floattostr(t);

Допустим, пробуя решить данное уравнение, на интервале от 1 до 5, получаем ответ 3.

Решая методом хорд, получаю совершенно другой ответ (

Метод хорд:

a:=strtofloat(edA.text);
b:=strtofloat(edB.text);

eps:=strtofloat(edE.text);

 while ((abs(a-b)>eps)and(ff(c)<>0)) do
 begin
  c:=a+abs(ff(a)/(ff(a)-ff(b)))*(b-a);
  if (ff(c)*ff(a)<0) then
  b:=c
  else
  a:=c;
 end;
x:=c; {получили ответ}

label7.Caption:=floattostr(x);

Пожалуйста, покажите где я допускаю ошибку, вроде бы решение правильное, но может ли быть ответ разным, взависимости от метода решения?
Спаяибо


 
palva ©   (2009-06-09 20:16) [1]

А y чему равно, нулю что ли?



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2009.08.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
4-1213710169
JetuS
2008-06-17 17:42
2009.08.09
Получение ID главного потока приложения


15-1244383233
Nic
2009-06-07 18:00
2009.08.09
Мозговой штурм 3


15-1244549105
oldman
2009-06-09 16:05
2009.08.09
Все на свете можно заменить кусочком пластилина...


3-1225653941
lamer6666
2008-11-02 22:25
2009.08.09
Можно ли одной командой Inset вставить данные в две таблицы?


15-1244550120
Dmk
2009-06-09 16:22
2009.08.09
Появилась вторая сеть





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский