-1
ich das nächste Skript in Matlab haben es die BisektionsmethodePlot Schleife Bisektionsmethode Matlab
function root = biseccion(f,a,b,epsilon, max)
if (f(a)*f(b) >= 0)
disp('f(a) *f(b) >= 0');
root = 'Can't find the root';
return;
else
fprintf('Iter\t\t\ta\t\t\tb\t\t\tm\t\t\tf(a)\t\t\tf(b)\t\t\tf(m)\n');
fprintf('=========\t\t ======\t\t ======\t\t ======\t\t ======\t\t ======\t\t ======\n');
m = (a + b)/2;
if (abs(f(m)) <= epsilon)
root = m;
return;
else
Iter = 0;
hold on;
while (abs(f(m)) >= epsilon || Iter == max)
Iter = Iter + 1;
m = (a + b)/2;
if(f(a)*f(m) > 0)
a = m;
else
b = m;
end
fprintf('%3d',Iter);
fprintf('%20.4f',a);
fprintf('%12.4f',b);
fprintf('%12.4f',m);
fprintf('%14.4f',f(a));
fprintf('%16.4f',f(b));
fprintf('%16.4f',f(m));
plot(f(m));
fprintf('\n');
end
hold off;
root = m;
title('Plot of error')
xlabel('Number of iterations')
ylabel('Error')
grid on;
end
end
ich Grafik müssen zunächst die Funktion (Variable f) und dann zeichnen Sie die Fehler (f (m)) in differents Bilder habe ich versucht, einige Dinge, aber keine Ergebnisse:/
ich bin nicht wirklich sicher, was „keine Ergebnisse“ bedeuten. Sie können jedoch Bilder mit 'image()' anzeigen. Versuchen Sie zu beschreiben, warum die Dinge falsch laufen. Außerdem ist MATLAB eine schwach typisierte Sprache und es ist nicht (zum Beispiel) sicher, dass "f" wirklich ein Funktions-Handle ist (da Sie sagen, dass Sie ein Problem haben). Dies bedeutet, dass Sie Eingaben beschreiben müssen. Was bedeutet "Grafik die Funktion"? – patrik