Έχω γράψει τον ακόλουθο κώδικα για τη βελτιστοποίηση ενός ενισχυτή 5 σταδίων, χρησιμοποιώντας το fmincon solver, το οποίο περιέχεται στο εργαλείο βελτιστοποίησης MATLAB, δοκιμάζω επίσης τους διάφορους αλγορίθμους λύσεων που προσφέρονται (Εσωτερικό σημείο, SQP, Active set, Trust region reflective ) Υπάρχει πρόβλημα με τον κώδικά μου, υποθέτω ότι είναι στο δεύτερο μέρος. Εάν κάποιος έχει κάποια ιδέα θα ήμουν ευγνώμων.
%myfun.m
function D = myfun(A)
%First Part
N0 = 0;
N1 = A(1)*sqrt(N0^2 + 10^-10);
N2 = A(2)*sqrt(N1^2 + 10^-6);
N3 = A(3)*sqrt(N2^2 + 10^-4);
N4 = A(4)*sqrt(N3^2 + 10^-4);
N5 = A(5)*sqrt(N4^2 + 10^-2);
N5 = Nout;
%Second Part
Sin1 = 0.1/A(1);
Sin2 = 3/A(1)*A(2);
Sin3 = 5/A(1)*A(2)*A(3);
Sin4 = 8/A(1)*A(2)*A(3)*A(4));
Sin5 = 12/A(1)*A(2)*A(3)*A(4)*A(5);
smin = min(Sin1,Sin2,Sin3,Sin4,Sin5);
smin = Smax;
D = Smax/Nout;
%mycon.m
function [c,ceq] = mycon(A)
c = [];
ceq (1) = A(1)*A(2)*A(3)*A(4)*A(5) = 10000;