Все, что вам нужно сделать, это пройти границы в curve_fit
. Когда границы не определены, вы можете выполнять нереальные операции, такие как (в вашем случае) возведение в степень с плавающей точкой отрицательного числа.
Границы просто определяются как списки из двух списков / кортежей с нижними и верхними границами:
bounds = [(-np.inf, 0, 0, 0), [np.inf, np.inf, 1, 1]] #upper np.inf or lower -np.inf means no bound
popt, pcov = curve_fit(carreaulaw, gamma, eta, p0=[8000, 3000, 0.8, 0.1], bounds=bounds)
Вывод:
Вы могли попробовать window.location = "data:application/octet-stream,"+text
, но это не обеспечивает механизм, через который можно предложить имя, и также IE имеет очень небольшое ограничение на максимальной длине URI данных, который мог быть проблемой.
Это могло бы быть возможным путем создания кадра, записи содержания там, затем вызова document.execCommand('saveas', ...)
в IE и чем-то с nsIFilePicker в Mozilla, но я полагаю, что это потребовало бы некоторых экстраординарных полномочий (как то, чтобы быть частью самого браузера).
Короткий ответ: это не возможно. У Вас есть к POST он к серверу, и ответом с сервера может быть "Довольное расположение: вложение".
Было несколько библиотек javascript, которые делали подобные вещи, через небольшой встроенный SWF файл. Например, эта.