Интерполяция и поиск корняPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Интерполяция и поиск корня

Сообщение Anonymous »


Для задания мне пришлось интерполировать данные [линейную интерполяцию и кубическую интерполяцию] и создать два графика, на которых данные отображались в виде точек, а интерполяция — в виде линии. Мне также пришлось построить максимальное значение данных. Я заставил все это работать, но последнюю часть мне назначили за дополнительную оценку, и я не смог в ней разобраться. V представляет напряжение, а I представляет ток.

Дополнительное задание: Расширьте свою программу, чтобы она также определяла максимальный ток и соответствующее напряжение, используя другой метод, известный как «поиск корня». Для этого вам нужно будет численно дифференцировать функцию. (Функция numpy с именем «diff» будет полезна.) Затем для поиска корня вы можете использовать функцию «brentq» из библиотеки scipy.optimize.

из импорта pylab * из scipy.interpolate импортировать interp1d из scipy.optimize import brentq #загружаем текст в две переменные V[Напряжение] и I[Ток] V, I = loadtxt('data1(1).txt', unpack = True, jumprows = 1) #интерполированные напряжения и тока[линейное] f_line = interp1d(V, I, 'линейный') new_V = linspace(0, 12, 1000) # создан массив новых напряжений new_I = f_line(new_V) #массив новых токов, созданных на основе интерполированных данных На графике построены #напряжение, ток, новое напряжение и новый ток. сюжет (V, I, 'ro', new_V, new_I, 'b-') plot(max(new_I),'go') #max текущий график title("Линейная интерполяция") xlabel("Напряжение (В)") хлим(0,12) ylabel("Ток (мА)") легенда(['Данные', 'линейное взаимодействие', 'Макс. ток'], loc = 'лучший') показывать() напечатайте «Максимальный ток», max(new_I), «мА» #напряжение и ток интерполированы[кубический] f_cube = interp1d(V, I, 'кубический') new_V = linspace(0, 12, 1000) # создан массив новых напряжений new_I = f_cube(new_V) #массив новых токов, созданных на основе интерполированных данных index = argmax(new_I) #индекс максимального тока На графике построены #напряжение, ток, новое напряжение и новый ток. сюжет (V, I, 'ro', new_V, new_I, 'b-') plot(new_V[index],max(new_I),'go') #максимальный ток и напряжение на графике title("Кубическая интерполяция") xlabel("Напряжение (В)") хлим(0,12) ylabel("Ток (мА)") илим(0,1.4) легенда(['Данные', 'линейное взаимодействие', 'Макс. ток'], loc = 'лучший') показывать() напечатайте «Максимальный ток», max(new_I), «мА» напечатайте «Соответствующее максимальное напряжение равно», new_V[index], «V» Весь приведенный выше код работает, но я не знаю, с чего начать, это последняя часть. Буду признателен за любые предложения или помощь. Я попробовал это сделать, но это выдало ошибку, и я действительно не знал, как с ней справиться, поскольку я мало что знаю об используемых функциях (diff, brentq) или о том, как их использовать для определения максимального тока и напряжение.

#загружаем текст в две переменные V[Напряжение] и I[Ток] V, I = loadtxt('data1(1).txt', unpack = True, jumprows = 1) f_line = interp1d(V, I, 'линейный') new_V = linspace(0, 12, 1000) # создан массив новых напряжений d = разница (новый_V, 1) г = брентq(д) распечатать р 10 d = разница(new_V, 1) 11 ---> 12 r = brentq(d) 13 печать р Ошибка типа: brentq() принимает как минимум 3 аргумента (1 указан) Я понимаю, о чем говорит ошибка, но я действительно не знаю, какие правильные аргументы нужно предоставить, чтобы найти максимальный ток и напряжение путем «нахождения корня», как было задано. Любые предложения приветствуются.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ограниченный поиск корня с помощью scipy
    Anonymous » » в форуме Python
    0 Ответы
    53 Просмотры
    Последнее сообщение Anonymous
  • Нелинейный поиск корня
    Anonymous » » в форуме Python
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • `scipy.optimize.root` более быстрый поиск корня
    Anonymous » » в форуме Python
    0 Ответы
    63 Просмотры
    Последнее сообщение Anonymous
  • Бинарный и линейный поиск по упорядоченным массивам, почему бинарный поиск занимает больше времени, чем линейный поиск?
    Anonymous » » в форуме Python
    0 Ответы
    76 Просмотры
    Последнее сообщение Anonymous
  • Бинарный и линейный поиск по упорядоченным массивам, почему бинарный поиск занимает больше времени, чем линейный поиск?
    Anonymous » » в форуме Python
    0 Ответы
    88 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»