Автор Тема: Найти параметры формулы  (Прочитано 8687 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #15 : 15 Марта 2012, 12:01:38 »
Расскажу про свой метод. Он универсальный и я им решал задачи аж с 22 независимыми параметрами. Для нашего примера текст проги в Yabasic на редкость прост и можно адаптировать на любой язык:

open #1,"my.txt","r"
open #2,"mya.txt","w"
dim x(100),y(100),f(100)
z=1:s1=30:nn=3000000
for i=1 to 18:input #1 x(i),y(i):next i
a0=2:b0=2:c0=2:d0=2:f0=2
for j=1 to nn
a=a0*(1+z*(ran()-.5))
b=b0*(1+z*(ran()-.5))
c=c0*(1+z*(ran()-.5))
d=d0*(1+z*(ran()-.5))
f=f0*(1+z*(ran()-.5))
s=0
for i=1 to 18
x=x(i):t=b*x^c*sin(d*x^f)
f(i)=a/2*(exp(t)+1/exp(t))
s=s+(y(i)-f(i))^2
next i
if s<=s1 then print a,b,c,d,f,s
print #2,a using "##.#####",b using "##.#####",c using "##.#####",d using "##.#####",f using "##.#####",s using "##.#####"
if s<4 then z=0.1:fi
if s<.05 then z=0.01:fi
if s<.002 then z=0.001:fi

a0=a:b0=b:c0=c:d0=d:f0=f:fi
next j

Выделенные красным цветом элементы позволили выйти на оптимум.
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #16 : 15 Марта 2012, 13:03:14 »
Окончательно:
      
 a=2.6174823934
 b= 1.7194930647  
 c= 2.3092444674
 d= 1.5033309483  
 f=1.8459728015

S2= 0.00112965
« Последнее редактирование: 15 Марта 2012, 13:06:42 от renuar911 »
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #17 : 15 Марта 2012, 19:48:46 »
Dlacier !!!

Посмотрите в ссылка
Там мне подробно описали процесс получения ответа в Маткаде. Я, правда, не очень все понял, но Вам будет очень полезно.

За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн Dlacier

  • Глобальный модератор
  • *****
  • Сообщений: 3656
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #18 : 16 Марта 2012, 13:11:26 »
Спасибо большое, я уже разобралась (там ничего сложного, просто вы не работали в МатКаде):)
И много полезного написали, я больше люблю работать в Mathematica, испробую FindFit :)

У меня возник вопрос (прошу прощения, что не по теме), приходилось ли вам решать систему уравнений, с кол-вом уравнений намного превосходящих кол-ва параметров? Такие задачи также решаются путем минимизации, некоторой функции.
« Последнее редактирование: 16 Марта 2012, 13:25:12 от Dlacier »
Чтобы правильно задать вопрос, нужно знать большую часть ответа. (с)
Формулы пишите в LaTex.

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #19 : 16 Марта 2012, 19:55:08 »
Решал 50 уравнений с 15 параметрами, но никогда не минимизировал чего-либо. Эти 15 обычно выражал через 35 неизвестных. Но вопрос интересный, надо с ним разобраться  :)  
У меня просьба: если в Математике  FindFit получится, то скиньте пожалуйста это решение. Я теперь хочу в книге привести как можно больше разных способов решения задачи. Мне обещали еще парочку методов дать с решениями. Итого набирается интересная палитра анализа непростых функций.
« Последнее редактирование: 16 Марта 2012, 20:00:47 от renuar911 »
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн Dlacier

  • Глобальный модератор
  • *****
  • Сообщений: 3656
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #20 : 16 Марта 2012, 20:12:37 »
Не совсем себе это представляю, как вы просто выражали и считали:)
Изначальна такая задача содержит в себе некоторую ошибку, то есть найти такие значения параметров, чтобы они давали строгие тождества для всех уравнений просто маловероятно (в моем случае я бы сказала невозможно), поэтому используют методы оптимизации.
Чтобы правильно задать вопрос, нужно знать большую часть ответа. (с)
Формулы пишите в LaTex.

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #21 : 16 Марта 2012, 23:15:56 »
Не знаю. Я в Мапл набивал все 50 уравнений, система же  35  параметров обозначала как  a1=a1 и так далее. 15 параметров расписывала в функции от 35.

Зайдите в ссылка
там коллега решил задачу в Мапл, я скопировал, но у меня не идет. Может, с моим Мапл что-то неладно?
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #22 : 17 Марта 2012, 00:47:15 »
Насчет системы я все перепутал  :). У меня наоборот было: мало уравнений и много параметров.
В Вашей постановке еще ни разу не решал. Прошу меня простить за невнимательность.
Но вопрос действительно интересный и надо его исследовать хотя бы по литературный источникам.
За жизнью надо тщательно следить, все время избегая с ней разлуки.

 

Перенесено: Найти задуманное четырехзначное число. 3 класс

Автор Dlacier

Ответов: 0
Просмотров: 7555
Последний ответ 08 Апреля 2016, 13:06:09
от Dlacier
Перенесено: ПОМОГИТЕ Найти и изобразить на плоскости

Автор tig81

Ответов: 0
Просмотров: 7061
Последний ответ 29 Мая 2014, 14:17:12
от tig81
Перенесено: Необходимо найти dy/dx - странные примеры.

Автор Dlacier

Ответов: 0
Просмотров: 8086
Последний ответ 08 Апреля 2016, 13:08:00
от Dlacier
Найти координаты точки прикосновения прямой а

Автор Коровка

Ответов: 0
Просмотров: 6899
Последний ответ 03 Июля 2019, 12:15:50
от Коровка
Перенесено: Как найти объем производства?

Автор tig81

Ответов: 0
Просмотров: 6956
Последний ответ 15 Ноября 2013, 23:44:55
от tig81