Stefan1 0 30 сентября, 2011 Опубликовано 30 сентября, 2011 · Жалоба Здравствуйте! Подскажите как можно по графику построить функцию? Мне нужно построить формулу, которая довольно точно опишет этот график: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 8 30 сентября, 2011 Опубликовано 30 сентября, 2011 · Жалоба Это действие называется аппроксимация. Различные виды аппроксимаций проходят по математике на 1-2 курсах института. Вам стоит для начала определиться с видами аппроксимирующих функций. Часто в их качестве используют полиномы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stefan1 0 30 сентября, 2011 Опубликовано 30 сентября, 2011 (изменено) · Жалоба Это действие называется аппроксимация. Различные виды аппроксимаций проходят по математике на 1-2 курсах института. Вам стоит для начала определиться с видами аппроксимирующих функций. Часто в их качестве используют полиномы. Я пробовал аппроксимировать через полином 9 степени в программе advanced grapher - не получается, т.к. слишком большое отклонение. Гиперболическая тоже не подходит. Здесь нужна какая-то сложная функция, как мне кажется. Изменено 30 сентября, 2011 пользователем Stefan1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 30 сентября, 2011 Опубликовано 30 сентября, 2011 · Жалоба Приблизительно: Y=60*e^(-X/4)+5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ataradov 0 30 сентября, 2011 Опубликовано 30 сентября, 2011 · Жалоба Расскажите что такое "довольно точно" и дайте данные в виде таблицы хотябы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stefan1 0 30 сентября, 2011 Опубликовано 30 сентября, 2011 (изменено) · Жалоба Расскажите что такое "довольно точно" и дайте данные в виде таблицы хотябы. Чем точнее, тем лучше. В принципе сходимость с таблицей в числах до запятой (т.е. в целых числах) была бы идеальной. Изменено 30 сентября, 2011 пользователем Stefan1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 30 сентября, 2011 Опубликовано 30 сентября, 2011 · Жалоба Чем точнее, тем лучше. В принципе сходимость с таблицей в числах до запятой (т.е. в целых числах) была бы идеальной. Есть такая программа,TableCurve называется,выдаст вам несколько тысяч вариантов и каждый со своей погрешностью.Ищите... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 3 30 сентября, 2011 Опубликовано 30 сентября, 2011 · Жалоба Вы не подберете функцию по Вашим данным - они не лежат на плавной кривой. Если Вам нужны именно эти точки - то только аппроксимация сплайнами по кускам. Если немного подвинуть точки, то кое-что получается, хотя, конечно, и не 2 точных знака: 57.595*exp(-col(A)/2.516)+8.807*exp(-col(A)/11.059)+6.222 0 73 72.624 1 52 52.97299 2 39.8 39.58308 3 31 30.4167 4 24 24.10317 5 20 19.7201 6 17 16.64648 7 14.2 14.46391 8 12 12.89027 10 10.7 10.86957 12 10 9.68632 14 9.2 8.92605 16 8.6 8.39418 18 8 7.99665 20 7.6 7.68582 25 7 7.14325 40 6.4 6.4586 70 6.3 6.2377 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stefan1 0 30 сентября, 2011 Опубликовано 30 сентября, 2011 (изменено) · Жалоба Есть такая программа,TableCurve называется,выдаст вам несколько тысяч вариантов и каждый со своей погрешностью.Ищите... Благодарю, _Anatoliy! Вы не подберете функцию по Вашим данным - они не лежат на плавной кривой. Если Вам нужны именно эти точки - то только аппроксимация сплайнами по кускам. Если немного подвинуть точки, то кое-что получается, хотя, конечно, и не 2 точных знака: 57.595*exp(-col(A)/2.516)+8.807*exp(-col(A)/11.059)+6.222 А как построить аппроксимацию сплайнами по кускам? Это уравнение я так понимаю и есть такая аппроксимация? Хотелось бы понять сам принцип построения таких функций. Изменено 30 сентября, 2011 пользователем Stefan1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ataradov 0 30 сентября, 2011 Опубликовано 30 сентября, 2011 · Жалоба А что вы с этой функцией потом делать собираетесь? получать значение в произвольных точках? Или хочется сэкономить место и просто восстанавливать эти значения? Для второго сплайны не годятся - места для хранения коэффициентов нужно будет еще больше чем для сырых данных. А вообще вот матлабовский код, который считает коэффициенты кубического сплайна для ваших данных. Принцип расчета описан в описании на сами функции, гугл в помощь. x = [0,1,2,3,4,5,6,7,8,10,12,14,16,18,20,25,40,70]; y= [73, 52, 44, 31, 24, 20, 17, 16, 12, 10.7, 10, 9.2, 8.6, 8, 7.6, 7, 6.4, 6.3]; p = spline(x,y); y1 = ppval(p, x); figure; hold on; plot(x, y); plot(x, y1, 'r--'); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stefan1 0 30 сентября, 2011 Опубликовано 30 сентября, 2011 (изменено) · Жалоба А что вы с этой функцией потом делать собираетесь? получать значение в произвольных точках? Или хочется сэкономить место и просто восстанавливать эти значения? Для второго сплайны не годятся - места для хранения коэффициентов нужно будет еще больше чем для сырых данных. А вообще вот матлабовский код, который считает коэффициенты кубического сплайна для ваших данных. Принцип расчета описан в описании на сами функции, гугл в помощь. Благодарю за информацию, Taradov Alexander! Функция эта нужна для задания зависимости проходной ёмкости LDMOS транзистора для расчёта его эквивалентной схемы. Изменено 30 сентября, 2011 пользователем Stefan1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ataradov 0 30 сентября, 2011 Опубликовано 30 сентября, 2011 · Жалоба Сплайн - это все равно кусочно-заданная функция, так что вашу проблему они не решат, если вам нужно получить нормальную функцию для запихивания в моделирующий софт. Но обычно там должна быть базовая функция равная 1 на заданном интервале и 0 вне интервала, с помощью нее можно описать ваши данные как сумму линейных кусков. Так что если вы уточните какой именно софт потом эту функцию будет использовать, может еще чем поможем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stefan1 0 30 сентября, 2011 Опубликовано 30 сентября, 2011 · Жалоба Сплайн - это все равно кусочно-заданная функция, так что вашу проблему они не решат, если вам нужно получить нормальную функцию для запихивания в моделирующий софт. Но обычно там должна быть базовая функция равная 1 на заданном интервале и 0 вне интервала, с помощью нее можно описать ваши данные как сумму линейных кусков. Так что если вы уточните какой именно софт потом эту функцию будет использовать, может еще чем поможем. Софт - матлаб. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 30 сентября, 2011 Опубликовано 30 сентября, 2011 · Жалоба Stefan1, а Вы уверены, что необходимо такое точное совпадение функции с исходными данными? По моему, стоит оценить, какой вклад вносит это выражение в результаты моделирования. Вполне возможно, что и точность в 5-10% Вас устроит. Тогда лучше поискать более точные коэффициенты (A,B,C) для наиболее простого выражения вида Y=А*e^(-B*X)+C. И на этом остановиться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stefan1 0 2 октября, 2011 Опубликовано 2 октября, 2011 (изменено) · Жалоба Stefan1, а Вы уверены, что необходимо такое точное совпадение функции с исходными данными? По моему, стоит оценить, какой вклад вносит это выражение в результаты моделирования. Вполне возможно, что и точность в 5-10% Вас устроит. Тогда лучше поискать более точные коэффициенты (A,B,C) для наиболее простого выражения вида Y=А*e^(-B*X)+C. И на этом остановиться. Хочется по-точнее, т.к нужно добиться максимального совпадения экспериментального результата с расчетом. Сложно пока оценить какой вклад вносит это выражение в результаты моделирования, т.к. есть ещё аналогичные выражения, влияющие на результат. Изменено 2 октября, 2011 пользователем Stefan1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться