Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function xrez = kubnaMetoda( f, fprim, j, k, greska)
- %UNTITLED Summary of this function goes here
- % Detailed explanation goes here
- syms a b c d
- x0 = j;
- x1 = k;
- eqn1 = a + b*x0 + c*(x0^2) + d*(x0^3) == feval(f, x0);
- eqn2 = a + b*x1 + c*(x1^2) + d*(x1^3) == feval(f, x1);
- eqn3 = b + c*x0 + d*(x0^2) == feval(fprim, x0);
- eqn4 = b + c*x1 + d*(x1^2) == feval(fprim, x1);
- [a, b, c, d] = solve(eqn1, eqn2, eqn3, eqn4);
- g = @(x) a + b*x + c*(x^2) + d*(x^3);
- gprim = @(x) b + c*x + d*(x^2);
- xzvezd1 = (-c + sqrt(4*b*d-c^2))/(2*b);
- xzvezd2 = (-c - sqrt(4*b*d-c^2))/(2*b);
- %ako bude pravio problem
- %stavi xzvezd1 = double(xzvezd1) mada ne bi trebao da bude problem sa
- %racionalnim brojevima
- %xzvezd1 = 1;
- %xzvezd2 = 1.5;
- if((xzvezd1 > 2) || (xzvezd1 < 0))
- x = xzvezd2;
- elseif((xzvezd2 > 2) || (xzvezd2 < 0))
- x = xzvezd1;
- else
- if(feval(f, xzvezd1) > feval(f, xzvezd2))
- x = xzvezd2;
- else
- x = xzvezd1;
- end
- end
- if(feval(fprim, x) > 0)
- x1 = x;
- elseif(feval(xprim, x) < 0)
- x0 = x;
- else
- %ne znam, valjda je to onda to
- end
- while (abs(feval(f, x) - feval(g, x)) > greska)
- eqn1 = a + b*x0 + c*(x0^2) + d*(x0^3) == feval(f, x0);
- eqn2 = a + b*x1 + c*(x1^2) + d*(x1^3) == feval(f, x1);
- eqn3 = b + c*x0 + d*(x0^2) == feval(fprim, x0);
- eqn4 = b + c*x1 + d*(x1^2) == feval(fprim, x1);
- syms a b c d
- [a, b, c, d] = solve(eqn1, eqn2, eqn3, eqn4);
- g = @(x) a + b*x + c*(x^2) + d*(x^3);
- gprim = @(x) b + c*x + d*(x^2);
- xzvezd1 = (-c + sqrt(4*b*d-c^2))/(2*b);
- xzvezd2 = (-c - sqrt(4*b*d-c^2))/(2*b);
- %isto resenje ako bude problem kao i gore
- if((xzvezd1 > 2) || (xzvezd1 < 0))
- x = xzvezd2;
- elseif((xzvezd2 > 2) || (xzvezd2 < 0))
- x = xzvezd1;
- else
- if(feval(f, xzvezd1) > feval(f, xzvezd2))
- x = xzvezd2;
- else
- x = xzvezd1;
- end
- end
- if(feval(fprim, x) > 0)
- x1 = x;
- elseif(feval(xprim, x) < 0)
- x0 = x;
- else
- %ne znam, valjda je to onda to
- end
- end
- xrez = x;
- end
- kubnaMetoda(@(x) 2*x^4-3*x, @(x) 8*x^3-3, 0.5, 2, 10^-5)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement