Der 'vector' muß nicht zwingend const sein (das ist nur die für die Parameterdeklaration, damit man sieht daß der als Referenz übergebene vector dort nicht verändert wird).
Und generell kannst du einfach den vector entweder mithilfe der Initialisierung { ... } oder aber dynamisch mittels .push_back(...) (bzw. .emplace_back(...)) füllen.
Da in der Struktur alle Member public sind, also einfach per:
std::vector evals = { { x1, y1 }, { x2, y2 } };
Es kommt jetzt nur darauf an, wie eine Variable vom Typ matrix<double,0,1> erzeugt wird, damit du die x-Werte passend setzen kannst.