Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как реализовать тригонометрические функции на PHP не используя стандартные функции [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): « 1 [2] 3 »   

> Без описания
biperch
Отправлено: 12 Февраля, 2010 - 15:04:02
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




sinx = x - x^3/3! + x^5/5! - .....
sinx = x - x^n/n! + x^n/n! - .....


if(x^n/n>$tochnost)
$sinx+=x^n/n!
 
 Top
asked86
Отправлено: 12 Февраля, 2010 - 15:12:36
Post Id


Гость


Покинул форум
Сообщений всего: 82
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)

[+][+]


Немного не понимаю:

$e = 0.000000001;

while (..) {
if ((x^3/3! + x^5/5!) < $e)
{
......
}

}

так вот или нет?

(Отредактировано автором: 12 Февраля, 2010 - 15:13:40)

 
 Top
Champion Супермодератор
Отправлено: 12 Февраля, 2010 - 15:24:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




просто возьми мою фразу и перепиши на php и всё
 
 Top
asked86
Отправлено: 12 Февраля, 2010 - 15:32:07
Post Id


Гость


Покинул форум
Сообщений всего: 82
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)

[+][+]


"Каждое очередное слагаемое меньше точности"
sinx = x - x^3/3! + x^5/5! - x^7/7!+x^9/9! - x^11/11! + x^13/13! - .....
т.е получается если в цикле очередное слагаемое
((x^7/7!+x^9/9!) < $e) будет меньше точности заканчиваем цикл?

1- (.. .. ) а от единицы когда вычитать, вернее как вычитать ?
 
 Top
Champion Супермодератор
Отправлено: 12 Февраля, 2010 - 15:39:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




я промолчу...
 
 Top
asked86
Отправлено: 12 Февраля, 2010 - 15:57:39
Post Id


Гость


Покинул форум
Сообщений всего: 82
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)

[+][+]


while ((x^n/n!)>$e)
{
$sinx+=x^n/n!;
++
}

$sin = 1 - $sin;

у нас в формуле единица потом от еденцы вычтем результат.
 
 Top
Champion Супермодератор
Отправлено: 12 Февраля, 2010 - 16:01:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Ну в да, только это, по-моему не синус, а Е в степени Х
(Добавление)
И то там к 1 прибавить надо
 
 Top
asked86
Отправлено: 12 Февраля, 2010 - 16:04:49
Post Id


Гость


Покинул форум
Сообщений всего: 82
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)

[+][+]


Я ведь синус вычисляю а не Exp !
while ((x^n/n!)>$e)
{
$sinx+=x^n/n!;
++
}

$sinx = 1 - $sinx; // это как в формуле написано, 1 - x^3/3! ..........

Можно у вас спросить, там ведь в формуле после пары слагаемых, есть и вычитание, его разве не надо реализовывать в цикле?

(Отредактировано автором: 12 Февраля, 2010 - 16:07:44)

 
 Top
Champion Супермодератор
Отправлено: 12 Февраля, 2010 - 16:32:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




я же скинул ссылку, там написано
сумма ((-1)^n * x^(2n-1) / (2n+1)!) это сложно загнать в цикл?
 
 Top
asked86
Отправлено: 12 Февраля, 2010 - 17:00:22
Post Id


Гость


Покинул форум
Сообщений всего: 82
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)

[+][+]


Champion, извините меня пожайлуста!

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

(Отредактировано автором: 12 Февраля, 2010 - 17:00:59)

 
 Top
JustUserR
Отправлено: 12 Февраля, 2010 - 19:37:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




biperch пишет:
if(x^n/n>$tochnost)
$sinx+=x^n/n!
Ух а что за такая переменная n без знака доллара и унарна операция отрицания в качестве факториала? Напишите себе оболочки функций и делайте далее вычисления по вашему ряду тейлора Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
asked86
Отправлено: 13 Февраля, 2010 - 16:44:23
Post Id


Гость


Покинул форум
Сообщений всего: 82
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)

[+][+]


Помогите реализовать функцию, не знаю как сделать?
 
 Top
biperch
Отправлено: 13 Февраля, 2010 - 17:23:47
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




JustUserR пишет:
Ух а что за такая переменная n без знака доллара и унарна операция отрицания в качестве факториала? Напишите себе оболочки функций и делайте далее вычисления по вашему ряду тейлора Улыбка


Я показывал принцип, тенденцию, что делать(теория).
Человек и ПХП не рубит, да и в математике Не понял вот я и по понятней писал, что б не перегружать лишними символами Радость
(Добавление)
кароче
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. /**
  4.  * @author biperch
  5.  * @copyright 2010
  6.  */
  7. function factorial($n){
  8.        
  9.         $sum=1;
  10.        
  11.         if ($n==0 or $n==1){return 1;}
  12.        
  13.         else{
  14.                 for($i=1;$i<=$n;$i++){
  15.                         $sum=$sum*$i;  
  16.                 }
  17.                 return $sum;
  18.         }
  19.        
  20. }
  21.  
  22.  
  23.  
  24. function sinx($x){
  25.        
  26.         $t=0.000000000000000000001;     #точность
  27.         $n=3;
  28.         $sum=0;
  29.         $res=$x;
  30.         while(pow($x, $n)/factorial($n)>$t){
  31.                
  32.                 $sum=pow($x, $n)/factorial($n);
  33.                 $n+=2;
  34.                 $res=$res-$sum;
  35.                 $sum=pow($x, $n)/factorial($n);
  36.                 $n+=2;
  37.                 $res=$res+$sum;
  38.         }
  39.        
  40.         return $res;
  41. }
  42.  
  43.  
  44.  
  45. echo '<br>'.sinx(10);

Твой вариант?

(Отредактировано автором: 13 Февраля, 2010 - 18:52:21)

 
 Top
Champion Супермодератор
Отправлено: 13 Февраля, 2010 - 18:38:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




biperch я бы не принял. И факториал, и степень можно накапливать в цикле.
И что-то замысловатое в цикле у тебя творится
 
 Top
biperch
Отправлено: 13 Февраля, 2010 - 18:39:16
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




Аля синус
PHP:
скопировать код в буфер обмена
  1. function cosx($x){
  2.        
  3.         $t=0.000000000000000000001;     #точность
  4.         $n=2;
  5.         $sum=0;
  6.         $res=1;
  7.         while($res>$t){
  8.                
  9.                 $sum=pow($x, $n)/factorial($n);
  10.                 $n+=2;
  11.                 $res=$res-$sum;
  12.                 $sum=pow($x, $n)/factorial($n);
  13.                 $n+=2;
  14.                 $res=$res+$sum;
  15.         }
  16.        
  17.         return $res;
  18. }

А может он и не в курсе что такое факториал. И набирать его в цикл запутает его в конец(asked86)

(Отредактировано автором: 13 Февраля, 2010 - 19:05:22)

 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB