• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Obliczanie perwiastka równania nieliniowego.

Object Storage Arubacloud
0 głosów
275 wizyt
pytanie zadane 13 listopada 2016 w C i C++ przez orlicki12 Początkujący (450 p.)

Witam mam problem z napisaniem programu który by wykonywał takie zadanie:

Obliczanie perwiastka równania nieliniowego metodą dzielenia odcinka na połowe.

I do tego dostałem taki wykres i wzór :

Znam podstawy programowania ale nie mam najmniejszego pojęcia jak się za to zabrać. Jakieś podpowiedzi? Z góry dzięki!

1 odpowiedź

+1 głos
odpowiedź 13 listopada 2016 przez niezalogowany
wybrane 24 listopada 2016 przez orlicki12
 
Najlepsza

Masz wykres tej pierwszej funkcji sin costam. Zakładam, że masz też podany przedział od 0 do 4. W tym przedziale będziemy szukać pętlą rozwiązania np w taki sposób:

    double di = 2; // krok czasowy
    int ile=0;

    for(double x=0; x<4; x+=di)
    {
        ile++;
        if(/* jezeli wartosc funkcji dla danego x jest rowna <- mam na mysli znajduje sie blisko rozwiazania np jest o 0.001 większa/mniejsza */) break;
        if(x==4) // jezeli nie znaleziono rozwizania 
        {
            di=di/2; // zmniejszamy krok przez co mamy wieksze szanse na znalezienie rozwiazania
            x=0;
        } 
        if(ile > 50) break; // takie ograniczenie by program nie szukal jak cos mamy nie tak w if, albo funkcja na danym przedziale nie ma rozwiazania
    }
    

 

1
komentarz 24 listopada 2016 przez niezalogowany

To mój błąd był smiley Instrukcja trwania pętli nie jest wcale potrzebna. Ten ostatni if też kończył za szybko program:

 

#include <iostream>
#include <math.h>
using namespace std;

int main()
{

    double di = 2;
    int ile=0;

    for(double x=0; ; x+=di)
    {
        ile++;
        if((sin(x/4)-log(x)>-0.0001)&&(sin(x/4)-log(x)<0.0001))
        {
            cout<<x<<endl;
            break;
        }
        if(x==4)
        {
            di=di/2;
            x=0;
        }
        
        //cout<<x;
        if(ile > 1000000) break; // ten warunek w zasadzie jest tylko po to by program się kiedyś skończył, bo tak będzie szukał miejsca cały czas...
    }


    return 0;
}

komentarz 24 listopada 2016 przez orlicki12 Początkujący (450 p.)
ok dzięki wielkie leci naj :)
komentarz 3 grudnia 2016 przez orlicki12 Początkujący (450 p.)
Sory ze wracam do tego zadania dopiero teraz ale podczas pisania sprawozdania zauważyłem że miejsce zerowe które liczy program nie pokrywa się z wykresem.
komentarz 3 grudnia 2016 przez niezalogowany
edycja 3 grudnia 2016
Ten wykres to chyba pokazanie ideowe jak działa bisekcja. Funkcja którą badasz wygląda trochę inaczej inaczej (jakby przesunięta w porównaniu do wykresu). Czyli tak jak wcześniej pisałem:

https://www.wolframalpha.com/input/?i=sin(x%2F4)-lnx%3D0

Bo nie widzę innej możliwości :D
komentarz 4 grudnia 2016 przez orlicki12 Początkujący (450 p.)
hmm no możliwe.

Podobne pytania

0 głosów
2 odpowiedzi 717 wizyt
0 głosów
1 odpowiedź 577 wizyt
0 głosów
2 odpowiedzi 636 wizyt
pytanie zadane 15 lutego 2017 w Matematyka, fizyka, logika przez Bakr Mądrala (6,850 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...