2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Трудности в Mathematica
Сообщение20.08.2011, 12:17 


02/04/10
19
Здравствуйте! Столкнулся со следующей проблемой.
Стандартно использую функцию FindFit:
Код:
data = {{0, 0}, {0.00003395061728395058`,
    0.040707964601769904`}, {0.00008796296296296296`,
    0.106194690265487`}, {0.00012191358024691318`,
    0.148672566371681`}, {0.00019135802469135763`,
    0.230088495575221`}, {0.00022993827160493863`,
    0.272566371681416`}, {0.00030246913580246875`,
    0.350442477876106`}, {0.0003688271604938275`,
    0.41061946902654906`}, {0.0004012345679012349`,
    0.43362831858407097`}, {0.00042283950617283915`,
    0.449557522123894`}, {0.000449074074074074`,
    0.46371681415929206`}, {0.00047685185185185184`,
    0.47610619469026505`}, {0.0005061728395061724`,
    0.48672566371681397`}, {0.0005401234567901238`,
    0.49380530973451303`}, {0.0005709876543209873`,
    0.495575221238938`}, {0.000598765432098765`,
    0.49380530973451303`}, {0.0006203703703703703`,
    0.490265486725664`}, {0.0006496913580246909`,
    0.479646017699115`}, {0.000674382716049383`,
    0.470796460176991`}, {31/43200,
    0.449557522123894`}, {0.0007700617283950613`,
    0.41061946902654906`}, {7/8640,
    0.37345132743362797`}, {0.0008657407407407407`,
    0.31858407079646`}, {0.0009089506172839502`,
    0.26902654867256603`}, {0.0009783950617283947`,
    0.180530973451327`}, {0.0010447530864197533`,
    0.0938053097345133`}, {1/900, 0}};
ro = 1000;

g = 9.81;

a1 = 7.699676750063447`*10^-7;

a2 = 0.3295837593644212;

a3 = -6.27106428432607`*10^6;

nnom = 2910;
model = (ro*g*(a1*nnom^2 + a2*nnom*Q + a3*Q^2)*Q)/(
  b1*nnom^2*Q + b2*nnom*Q^2 + b3*nnom^3);

fit = FindFit[data, model, {b1, b2, b3}, Q]
{b1 -> -424765., b2 -> -1.55989*10^12, b3 -> 0.903556}

Plot[model /. fit, {Q, 0, 96/(24*60*60)},
Epilog -> Map[Point, data]]

Изображение
Видно что исходные точки даже близко не лежат на кривой, а вот что будет если подставить другие коэффициенты:
Код:
prav = {b1 -> -0.0018603399568560789`, b2 -> 13078.620141622756`,
   b3 -> 2.1902983136254543`*10^-9};
Plot[model /. prav, {Q, 0, 96/(24*60*60)}, Epilog -> Map[Point, data]]

Изображение
В чем моя ошибка? Или для Mathematica это уже сложная задача?
Если нельзя с функцией FindFit найти коэффициенты, то может быть подскажете какую-нибудь другую функцию или способ.
Заранее спасибо за ответы!

 Профиль  
                  
 
 Re: Трудности в Mathematica
Сообщение20.08.2011, 14:03 
Заслуженный участник


25/02/11
1786
Математика ищет локальный минимум, начиная с некоторых начальных значений. Если они неудачны, то минимум может оказаться не глобальным. В FindFit начальные значения можно указывать. В данном случае работает
Код:
fit = FindFit[data, model, {{b1, 0}, {b2, 0}, {b3, 10^-3}}, Q]

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group