2014 dxdy logo

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

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


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 
Сообщение23.06.2008, 17:55 


29/09/06
4552
ewert писал(а):
пожалуй, стоит начать вот с чего.
А до того, как с этого начать --- не перейти ли нам в систему центра тяжести данных, где средние равны нулю?

Добавлено спустя 2 минуты 1 секунду:

Впрочем, метка гласит, что вопрос решён (т.е. видимо контрольная сдана)

 Профиль  
                  
 
 
Сообщение23.06.2008, 20:22 
Заслуженный участник


11/05/08
32166
Алексей К. писал(а):
А до того, как с этого начать --- не перейти ли нам в систему центра тяжести данных, где средние равны нулю?

Имеются в виду взвешенные средние? Это ровным счётом ничего не меняет, это просто часть решения задачи.

Хотя погрешности округлений при такой последовательности вычислений -- действительно, вообще говоря, уменьшатся.

 Профиль  
                  
 
 Re: Метод наименьших квадратов
Сообщение09.04.2010, 19:46 


18/03/08
18
Облегчённая версия программы, может кому пригодится.
Код:
#!/usr/bin/perl -w
#   Least squares method.

open( DAT, "< 1.dat" ) or die "Couldn't open file for    &!\n";

while ( $line = <DAT> ) {
   $line =~ m/^([^\s]+)\s+([^\s]+)\s+([^\s]+)/gi;
   push @x, $1;
   push @y, $2;
   push @z, $3;
   $n++;
}

for ( $i = 0 ; $i <= $n - 1 ; $i++ ) {
   $A1 += 1 / $z[$i]**2;
   $A2 += $x[$i]**2 / $z[$i]**2;
   $A3 += $x[$i] / $z[$i]**2;
   $A4 += $y[$i] / $z[$i]**2;
   $A5 += $x[$i] * $y[$i] / $z[$i]**2;
}
$delta = $A1 * $A2 - $A3**2;
$b     = sprintf( "%.6e", 1 / $delta * ( $A4 * $A2 - $A5 * $A3 ) );
$a     = sprintf( "%.6e", 1 / $delta * ( $A5 * $A1 - $A4 * $A3 ) );


$delta_b = sprintf( "%.6e", sqrt( 1 / $delta * $A3 ) );
$delta_a = sprintf( "%.6e", sqrt( 1 / $delta * $A1 ) );
close(DAT);

# Data output

print "A = $a Delta A = $delta_a\n";
print "B = $b Delta B = $delta_b\n";

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

Модераторы: Модераторы Математики, Супермодераторы



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

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


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

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