Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2010, 00:57   #1
TERAB1T
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 11
По умолчанию Программа, вычисляющая криволинейный интеграл второго рода.

Здравствуйте. Написал программу для решения криволинейного интеграла второго рода ( http://www.support17.com/component/c...html?task=view - в самом низу страницы решение), а она считает неправильно. Помогите найти ошибку. Суть программы - сначала сводим к обычному определенному интегралу, затем считаем определенный методом Гаусса. Вот код:

PHP код:
<?php
    $b 
1//верхний предел по переменной интегрирования
    
$a 0///нижний предел по переменной интегрирования
    
function dx($x$y$z//выражение dx
        

            return 
pow($x3);
        }
    function 
dy($x$y$z//выражение dy
        

            return 
2*$x*pow($y2);
        }
    function 
dz($x$y$z//выражение dz
        

            return -
3*pow($z2);
        }
        
        
        
    function 
x($t//выражения в фигурной скобке в задании
        

            return 
1-$t;
        }
    function 
y($t
        { 
            return 
2-3*$t;
        }
    function 
z($t
        { 
            return -
2+2*$t;
        }
        
        
        
    function 
dif_dx($x$y$z//взятие производных по нужным переменным
        
{
            
$h 0.001;
            return (
dx($x+$h$y$z) - dx($x$y$z)) / $h;
        }
    function 
dif_dy($x$y$z)
        {
            
$h 0.001;
            return (
dy($x$y+$h$z) - dy($x$y$z)) / $h;
        }
    function 
dif_dz($x$y$z)
        {
            
$h 0.001;
            return (
dz($x$y$z+$h) - dz($x$y$z)) / $h;
        }
    function 
func_integr($t//сведение к определенному интегралу
        

        
$x=x($t);
        
$y=y($t);
        
$z=z($t);
            return 
dx($x$y$z)*dif_dx($x$y$z)+dy($x$y$z)*dif_dy($x$y$z)+dz($x$y$z)*dif_dz($x$y$z); //Здесь нужно перечислить таким же образом все квадраты дифференциалов по функциям
        
}
    {
//вычисляем определенный интеграл методом Гаусса
            
$n=10
            
$I=0;
            for (
$i 0$i $n$i++)
                {
                    
$r=$a+($i*($b-$a)/$n);
                    
$l=$a+(($i+1)*($b-$a)/$n);
                    
$I_=(func_integr((($l+$r)/2)-(($r-$l)/sqrt(12)))+func_integr((($l+$r)/2)-(($r-$l)/sqrt(12))))*($r-$l)/2;
                    
$I+=abs($I_);
                }
    
$res=$I;
    }
    echo (
"Result: $res");
?>
TERAB1T вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа Интеграл Shift-stels Общие вопросы C/C++ 1 05.12.2009 23:56
поиск второго максимума Arcueid1691 Общие вопросы C/C++ 7 15.10.2009 22:43
Создать очередь из n целых чисел вычисляющая по формуле А=х*х+1; evrey Паскаль, Turbo Pascal, PascalABC.NET 1 02.06.2008 20:44
Процедура, вычисляющая Y=a*cos(G) и X=a*sin(G) Vishez Помощь студентам 4 25.04.2007 17:41
Тестирующая программа "КРИВЫЕ ВТОРОГО ПОРЯДКА" ivp88 Помощь студентам 3 13.03.2007 11:47