Zaloguj się
Blog na Matlab.pl
Forum polskich użytkowników
 
UŻYTKOWNICY GRUPY PROFIL Zaloguj się, by sprawdzić wiadomości FAQ
 



Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Metoda Newtona, algorytm.
Forum MATLAB Strona Główna-> Klony Matlaba (Scilab, Octave, ...)
Post Wysłany: 23 Kwietnia 2013, Wto 4:08 pm Temat postu: Metoda Newtona, algorytm. Odpowiedz z cytatem
 
AUTOR:
n00bek01
Początki pisania


Dołączył: 21 Kwi 2013
Posty: 7


Ogląda profil użytkownika Wyślij prywatną wiadomość
Mam problem z realizacją tego algorytmu w Scilab'ie.



gdzie:
[a,b]- przedział
n- liczba zadanych kroków
x1- punkt początkowy
F- funkcja
P- pochodna

Problem polega na tym, że kserując ten algorytm do Scilab'a po prostu nie działa. Wydaje mi się, że jest to fragment samego algorytmu i części chyba brakuje, dlatego, że zmiennych na jakich operuje ten algorytm jest więcej, a niżeli w samym algorytmie.


 

Post Wysłany: 23 Kwietnia 2013, Wto 4:12 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
fraktal
Może pisać książki


Dołączył: 27 Sty 2009
Posty: 744


Ogląda profil użytkownika Wyślij prywatną wiadomość Wyślij email
wklei swój kod- algorytm jest prawidłowy - jeżeli Ci nie wychodzi to gdzieś masz w kodzie błąd.



_________________
teoria drgań,teoria sterowania,regulacjia,regulatory dyskretne ,modelowanie numeryczne
 

Post Wysłany: 23 Kwietnia 2013, Wto 5:09 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
n00bek01
Początki pisania


Dołączył: 21 Kwi 2013
Posty: 7


Ogląda profil użytkownika Wyślij prywatną wiadomość
Kod programu w konsoli Scilab + komentarz.
Kod:
-->function MetNewt(a,b,n,x1,F,P)
-->   
-->    for
i=2:n
-->        x(i)=x(i-1)-(F(x(i-1)))/(P(x(i-1)))
-->   
end
-->   
-->
endfunction
 
-->a=-2.5; b=-1.5; // przedział chwilowo pomijam

-->n=10;
 
-->
x1=0; // punkt początkowy
 
-->x=1; //dla funkcji F(1)
 
-->deff('[y]=F(x)','y=x^3+x^2-3*x-3'); // definicja funkcji
 
-->P=derivative(F,x); // pochodna funkcji F(x), czyli F(1)
 
-->z=MetNewt(a,b,n,x1,F,P)
 !--
error 21
Nieprawidłowy indeks
.
at line       4 of function MetNewt called by
z=MetNewt(a,b,n,x1,F,P)


Moja szybka interpretacja, na pętli while też nie zadziała, z wiadomych przyczyn Sad


 

Post Wysłany: 23 Kwietnia 2013, Wto 5:37 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
fraktal
Może pisać książki


Dołączył: 27 Sty 2009
Posty: 744


Ogląda profil użytkownika Wyślij prywatną wiadomość Wyślij email
problem nie tkwi w petlu a w tym iz w obliczeniach masz x(i-1) , pętle zaczynasz od i=2 , tylko co masz w wektorze c na pozycji x(1)? 0 zapimniałems przed pętla dopisać x(1)=x1;
poza tym
P=derivative(F,x);

liczy pochodna funkcji F w punkcie x a wiec P zawiera liczbę - a nie jest to funkcja wiec za każdym razem w pętli powinieneś policzyć pochodna w skrócie:


function [y]=MetNewt(a,b,n,x1,F,P)
x(1)=x1;
for i=2:n
// x(i)=x(i-1)-(F(x(i-1)))/(P(x(i-1)))
P=derivative(F,x(i-1));
x(i)=x(i-1)-(F(x(i-1)))/P;
end
y=x;
endfunction



edit:
korzystaj ze Sci notesa - nie będziesz musiał za każdym razem przyklepywać . kopiować i wklejać kodu



_________________
teoria drgań,teoria sterowania,regulacjia,regulatory dyskretne ,modelowanie numeryczne
 

Post Wysłany: 23 Kwietnia 2013, Wto 7:24 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
n00bek01
Początki pisania


Dołączył: 21 Kwi 2013
Posty: 7


Ogląda profil użytkownika Wyślij prywatną wiadomość
Kod:
function xn=MetNewt(a,b,n,x1,F,P) // funkcja, metoda Newtona
    
    
a==x // przypisujemy a do x
    
x(1)=x1 // wektor
    
    
for i=2:n // pętla for od i=2 do n wprowadzonego z klawiatury
        
P=derivative(F,x(i-1)) // pochodna funkcji F(x)
        
x(i)=x(i-1)-(F(x(i-1)))/P // oblicz x(1)
    
end
    xn
=x(i)
    
endfunction


Skoro a przypisuje do x dlaczego po wklepaniu:
Kod:
a=-2.5; b=-1.5; n= 10; x1=1; deff('[y]=F(x)','y=x^3+x^2-3*x-3'); P=derivative(F,x);


Scilab krzyczy:
Kod:
Niezdefiniowana zmienna: x


 

Post Wysłany: 23 Kwietnia 2013, Wto 8:14 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
Raknor
Może pisać książki


Dołączył: 08 Lis 2011
Posty: 147


Ogląda profil użytkownika Wyślij prywatną wiadomość
Dlatego, że dla:
Kod:
a=-2.5; b=-1.5; n= 10; x1=1; deff('[y]=F(x)','y=x^3+x^2-3*x-3'); P=derivative(F,x);
Nie masz zadeklarowanej zmiennej x.

Jest funkcja F, zmienne a, b, n, x1, brak natomiast x, a chcesz z niej skorzystać przy liczeniu pochodnej. Więc, zwracany jest komunikat o błędzie.



_________________
Scilab 6.0.0 | Octave 4.0.2 | Kubuntu 16.04 64bit
 

Post Wysłany: 23 Kwietnia 2013, Wto 8:45 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
n00bek01
Początki pisania


Dołączył: 21 Kwi 2013
Posty: 7


Ogląda profil użytkownika Wyślij prywatną wiadomość
Cytat:
Jest funkcja F, zmienne a, b, n, x1, brak natomiast x, a chcesz z niej skorzystać przy liczeniu pochodnej. Więc, zwracany jest komunikat o błędzie.


Przypisując w kodzie:
Kod:
a==x

x nie jest czasem zdefiniowane?


 

Post Wysłany: 23 Kwietnia 2013, Wto 9:32 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
Raknor
Może pisać książki


Dołączył: 08 Lis 2011
Posty: 147


Ogląda profil użytkownika Wyślij prywatną wiadomość
Kod:
a==x
Tym sposobem sprawdzasz czy a jest równe x
Wpisz w konsoli:
Kod:
a=2
b
=5
a
==b //czy a jest równe b
a<=b //czy a jest mniejsze równe b
a>=b //czy a jest większe równe b
a<b //czy a jest mniejsze od b
a>b //czy a jest większe od b
F - False (Fałsz)
T - True (Prawda)

Polecam → www.heikell.fi/downloads/scilab.ppt
http://www.iecn.u-nancy.fr/~szulc/intrscilabdoc.pdf
http://phys.p.lodz.pl/materialy/abrozi/SciLab-podstawy1.pdf

http://www.openeering.com/scilab_tutorials



_________________
Scilab 6.0.0 | Octave 4.0.2 | Kubuntu 16.04 64bit
 

Forum MATLAB Strona Główna-> Klony Matlaba (Scilab, Octave, ...)
Wyświetl posty z ostatnich:   

Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Wszystkie czasy w strefie CET (Europa)

Skocz do:  

Statystyki forum:



Od dnia 08.06.2006 forum odwiedzano 37653792
Najwięcej użytkowników 266 było obecnych 19 Lutego 2015, Czw 7:03 pm

Aktualnie online:




Najnowsze posty na forum:
Kamera sportowa  (23 Sierpnia 2017, Sro 6:00 am)
Faktoring  (22 Sierpnia 2017, Wto 1:25 pm)
Nauka profesjonalnego montażu filmów  (22 Sierpnia 2017, Wto 1:24 pm)
Simulink/ xPC target - błąd polecenia slrtexplr  (21 Sierpnia 2017, Pon 7:41 pm)
Niedoparki - 2017 - Cały Film Online/Pobierz  (19 Sierpnia 2017, Sob 6:24 pm)
Fatima. Ostatnia tajemnica- 2017 - Cały Film Online/Pobierz  (19 Sierpnia 2017, Sob 6:24 pm)
Mamuśki mają wychodne- 2017 - Cały Film Online/Pobierz [CDA]  (19 Sierpnia 2017, Sob 6:23 pm)
Gang Wiewióra 2 - 2017 - Cały Film Online/Pobierz [CDA]  (19 Sierpnia 2017, Sob 6:22 pm)
Dom wygranych - 2017 - Cały Film Online/Pobierz [CDA]  (19 Sierpnia 2017, Sob 6:22 pm)
Agentka specjalnej troski - 2017 - Film Online/Pobierz  (19 Sierpnia 2017, Sob 6:21 pm)
Twoje prawa:
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać plików na tym forum