کدهای Matlab نوشته شده در کلاس

 

از کدهای زیر به عنوان نومنه استفاده کنید. توجه کنید که در کدهای نوشته شده باید شرایط توقف منطقی ودقیق استفاده شود.

______________________________________________________________________

% secant Method

clc, clear all
f = @(x)(x-cos(x));
p(1) = 0.5;
p(2) = pi/4;
for n=2:7
    p(n+1) = p(n)-f(p(n))*(p(n)-p(n-1))/(f(p(n))-f(p(n-1)));     
end
p'
f(p)'

______________________________________________________________________


clc, clear
% Fixed Point Iteration
g4 = @(x)(sqrt(10./(4+x)));
g1 = @(x)(1);%(x-x.^3-4*x.^2+10);
g2 = @(x)(1);%(10./x-4*x);
g3 = @(x)(1/2*sqrt(10-x.^3));
g5 = @(x)(x-(x.^3+4*x.^2-10)./(3*x.^2+8*x));
% x = linspace(1,2,100);
%plot(x,g1(x),x,x), hold on
%p(1) = 1.5;
p  = zeros(10,5);
p(1,:) = [1.5 1.5 1.5 1.5 1.5];
for i=1:9
    p(i+1,1) = g1(p(i,1));
    p(i+1,2) = g2(p(i,2));
    p(i+1,3) = g3(p(i,3));
    p(i+1,4) = g4(p(i,4));
    p(i+1,5) = g5(p(i,5));
   % pause(1.2)
    %plot(p(i),p(i+1), 'ro'), hold on
end
p

______________________________________________________________________

 



% Bisection Method

f = @(x)(x.^3+4*x.^2-10);
a = 1;
b = 2;

% plot
% x = linspace(1,2,100);
% plot(x,f(x),x,0*x)

for i=1:13
    c = (a+b)/2;
    fprintf('%g       %f         %f       %f     %f \n', i,a,b,c,f(c))    
%     [i a b c f(c)]
    if f(a)*f(c)<0
        b=c;
    else
        a=c;
    end
end


______________________________________________________________________

 

 

 

______________________________________________________________________

 

 

______________________________________________________________________

/ 0 نظر / 54 بازدید