Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [ m ] = msc_zero( wzor, x0 )
- % wykorzystanie wzoru naszej funkcji (przekazywanie jako ciag znakow)
- % funkcja('x^3+x^2-1', -1, 5); // funkcja( wzor, a, b )
- % zeby obliczyc pochodna, trzeba przejsc na zmienna symboliczna
- % 1. zadeklaruj zmienna symboliczna syms x
- % 2. tworzymy wyr. symb. f = eval(wzor)
- % od teraz mozna uzywac funkcji typu diff
- % 3. zeby policzyc uzywamy subs(df, a) // (funkcja, punkt)
- % PRZYKLAD metody 1
- % f = eval(wzor)
- % df = diff(f)
- % subs(df, a)
- % subs(df, b)
- % METODA 2 z uzyciem Funkcji Anonimowych
- %g = @(x) eval(wzor)
- %dg = @(x) eval(df)
- % dg(a)
- % dg(b)
- syms x;
- f = eval(wzor);
- fp = diff(f);
- E = 0.001;
- x1 = x0 - 1;
- f0 = subs(f,x0);
- for i = 64:-1:0
- if abs(x1-x0) > E
- if abs(f0) > E
- f1 = subs(fp,x0);
- if abs(f1) < E
- disp('Zly punkt start');
- break;
- else
- x1 = x0;
- x0 = x0 - f0/f1;
- f0 = subs(f,x0);
- end
- else
- m = x0
- break;
- end
- else
- m = x0
- break;
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement