Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. function Adrian_cz2
  2. C1=0.000000032;
  3. C2=0.000000032;%F%
  4. R1=1000;%Ohm%
  5. R2=1000;%Ohm%1
  6. dx=400;
  7. poch1=[];
  8. poch2=[];
  9. dx=1;
  10. %deklaracje
  11. x1 = input('Enter the value of x1: ');
  12. x2 = input('Enter the value of x2: ');
  13. %sprawdzam wymagania funkcji
  14. %funkcja okreslona
  15. %różne znaki na krancach przedziału
  16. a1=fx(R1,R2,C1,C2,x1);
  17. a2=fx(R1,R2,C1,C2,x2);
  18. if(a1*a2<0)
  19. fprintf('różne znaki na koncach przedzialow\n')
  20. else
  21. fprintf('takie same znaki na koncach przedzialow\n')
  22. return
  23. end
  24. %wyznaczanie odleglosci dx dla warunku 1% różnicy
  25. pochodna1=1;
  26. pochodna2=2;
  27. while(abs(pochodna2- pochodna1)>pochodna1*0.01)
  28. y1=fx(R1,R2,C1,C2,x1);
  29. y2=fx(R1,R2,C1,C2,x1+dx);
  30. pochodna1=((y2-y1)/dx);
  31. dx=dx/2;
  32. y2=fx(R1,R2,C1,C2,x1+dx);
  33. pochodna2=((y2-y1)/dx);
  34. end
  35. fprintf('dx= %f\n',dx)
  36. %koniec wyznaczania dx
  37. %szukanie zmiany znaku pochodnej
  38. xp1=x1;
  39. xp2=x2;
  40. y1=fx(R1,R2,C1,C2,xp1);
  41. y2=fx(R1,R2,C1,C2,xp1+dx);
  42. pochodna1=((y2-y1)/dx);
  43.  
  44. y1=fx(R1,R2,C1,C2,xp2-dx);
  45. y2=fx(R1,R2,C1,C2,xp2);
  46. pochodna2=((y2-y1)/dx);
  47.  
  48. if (pochodna1*pochodna2)<0
  49. fprintf('pochodna pierwsza zmienia znak, warunek niespełniony\n')
  50. else
  51. fprintf('pochodna pierwsza nie zmienia znaku, warunek spełniony\n')
  52. end
  53.  
  54.  
  55. %szukanie zera z dokladnoscia
  56. do = true;
  57. xx1=x2;
  58. while do
  59. %xi1=x1;
  60. %xi2=x2;
  61. %yi1=fx(R1,R2,C1,C2,xi1);
  62. %yi2=fx(R1,R2,C1,C2,xi2);
  63. %xi3=x2-y2*((xi2-xi1)/(yi2-yi1));
  64. %fprintf('%f\n',xi3)
  65.  
  66.  
  67.  
  68. yy1=fx(R1,R2,C1,C2,xx1);
  69. yydx=fx(R1,R2,C1,C2,xx1+dx);
  70. dy=(yydx-yy1)/dx;
  71. xx2=xx1-(yy1/dy);
  72. if(abs(xx2-xx1)<0.000001)
  73. fprintf('%f\n',xx2)
  74. do=false;
  75. else
  76. fprintf('%f\n',xx2)
  77. xx1=xx2;
  78.  
  79. end
  80. end
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88. fprintf('miejsce zerowe dla podanej funkcji wynosi %f\n',xx2)
  89. function [func1] = fx(R1,R2,C1,C2,x)
  90. func1=(0.7017-abs((1/(R1*R2*C1*C2))/(((1j*2*pi*x)^2)+((1j*2*pi*x)*((1/(R1*C1))+(1/(R2*C1))+(1/(R2*C2))))+(1/(R1*R2*C1*C2)))));
  91. end
  92.  
  93. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement