Advertisement
codisinmyvines

task4summerpractice

Jun 9th, 2022
1,048
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.09 KB | None | 0 0
  1. %met_hord
  2. function [z, k] = metod_hord(g, dg, x, eps)
  3. for i=1:length(x)
  4.     z(i)=x(i);
  5.     k(i)=1;    
  6.     while(abs(g(z(i),i))>eps)
  7.         k(i)=k(i)+1;
  8.         if(k(i)==2)
  9.             z(i)=z(i)-g(z(i),i)/dg(z(i));
  10.         else
  11.             z(i)=(x(i)*g(z(i),i)-z(i)*g(x(i),i))/(g(z(i),i)-g(x(i),i));
  12.         end
  13.     end
  14. end
  15. end
  16.  
  17. %met_sek
  18. function [z, k] = metod_sek(g, dg, x, eps)
  19. for i=1:length(x)
  20.     z(i)=x(i);
  21.     z_0 = x(i);
  22.     k(i)=1;    
  23.     while(abs(g(z(i),i))>eps)
  24.         k(i)=k(i)+1;
  25.         if(k(i)==2)
  26.             z_1=x(i)-g(x(i),i)/dg(x(i));
  27.         else
  28.             z(i)=z_1-(z_1-z_0)*g(z_1,i)/(g(z_1,i)-g(z_0,i));
  29.         end
  30.         z_0=z_1;
  31.         z_1=z(i);
  32.     end
  33. end
  34. end
  35.  
  36. %main
  37. a=0; b=1.2; h=0.12; eps = 10^(-8);
  38. x=a:h:b;
  39. n=length(x)-1;
  40. S = taylor_series_task1(x,eps);
  41. for i=0:n
  42.     %F(i+1)=S(1)+i*(S(11)-S(1))/n;
  43.     F(i+1)=S(1)+i*(S(length(x))-S(1))/n;
  44. end
  45. g = @(z, i) taylor_series_task1(z, eps)-F(i);
  46. dg = @(z) sin(pi*z^2/2);
  47. %z = metod_kas(g,dg,x,eps);
  48. z = metod_sek(g,dg, x,eps);
  49. %z = metod_hord(g,dg, x,eps);
  50. plot(x,S);
  51. hold on
  52. plot(F,z)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement