2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3  След.
 
 Re: Полиномальная интерполяция в Wolfram Mathematica7
Сообщение19.11.2009, 23:40 


18/11/09
31
Вы, Leierkastenmann, прежде чем задавать мне вопросы и давать советы прочитайте внимательно о чем идет речь. Я уже написал выше о полиноме, какой хочу получить. Если Вы не можете мне помочь, пожалуйста, не мешайте другим, тем, кто пытается это сделать искренне.
А пытаюсь я получить функцию, описанную в Help к программе.
k=f(R, L)

-- Чт ноя 19, 2009 22:50:17 --

Вы, Leierkastenmann, прежде чем задавать мне вопросы и давать советы прочитайте внимательно о чем идет речь. Я уже написал выше о полиноме, какой хочу получить. Если Вы не можете мне помочь, пожалуйста, не мешайте другим, тем, кто пытается это сделать искренне.
А пытаюсь я получить функцию, описанную в Help к программе.
k=f(R, L)

 Профиль  
                  
 
 Re: Полиномальная интерполяция в Wolfram Mathematica7
Сообщение20.11.2009, 17:47 


18/11/09
31
Очень хотелось бы получить совет от человека, разбирающегося в функциях интерполяции Wolfram Mathematica7.

 Профиль  
                  
 
 Re: Полиномальная интерполяция в Wolfram Mathematica7
Сообщение20.11.2009, 18:10 
Заслуженный участник


04/05/09
4587
Мне кажется, вы не получите другого совета, пока не объясните, что же вы хотите получить.
Наверно даже лучше не в терминах Математики7, а своими словами.

 Профиль  
                  
 
 Re: Полиномальная интерполяция в Wolfram Mathematica7
Сообщение20.11.2009, 18:58 


18/11/09
31
Хочу получить интерполирующую функцию q=f(R, L) степенным многочленом с помощью операции
g = InterpolatingPolynomial[{{{0.125, .0 .00}, 0.00}, {{0.125, 10.00},
0.596}, {{0.125, 25.00}, 0.797}, {{0.125, 50.00},
0.888}, {{0.125, 100.00}, 0.940}, {{0.125, 150.00},
0.9592}, {{0.125, 200.00}, 0.9684}, {{0.125, 250.00},
0.9729}, {{0.125, 300.00}, 0.976}, {{0.125, 350.00},
0.9796}, {{0.125, 400.00}, 0.9813}, {{0.125, 450.00},
0.9832}, {{0.125, 500.00}, 0.9847}, {{0.125, 550.00},
0.9859}, {{0.125, 600.00}, 0.987}, {{0.125, 650.00},
0.988}, {{0.125, 700.00}, 0.9887}, {{0.125, 750.00},
0.9893}, {{0.125, 800.00}, 0.9896}, {{0.125, 850.00},
0.9898}, {{0.125, 900.00}, 0.9899}, {{0.125, 950.00},
0.99}, {{0.125, 1000.00}, 0.990}}, {R, L}]

 Профиль  
                  
 
 Re: Полиномальная интерполяция в Wolfram Mathematica7
Сообщение20.11.2009, 19:00 
Заслуженный участник


04/05/09
4587
Уточните, какие числа в перечисленном массиве - R, какие - L, и какие - q.

 Профиль  
                  
 
 Re: Полиномальная интерполяция в Wolfram Mathematica7
Сообщение20.11.2009, 19:40 


18/11/09
31
Каждая точка в приведенном массиве содержит координаты {{L, R}, q}.

 Профиль  
                  
 
 Re: Полиномальная интерполяция в Wolfram Mathematica7
Сообщение20.11.2009, 20:27 
Заслуженный участник


04/05/09
4587
Ок.
Вы заметили, что в ваших данных L всегда принимает одно значение? Т.е. данные не позволяют определить зависимость q от L.

 Профиль  
                  
 
 Re: Полиномальная интерполяция в Wolfram Mathematica7
Сообщение20.11.2009, 20:29 
Аватара пользователя


15/01/06
200
protsiv в сообщении #263685 писал(а):
Вы, Leierkastenmann, прежде чем задавать мне вопросы и давать советы прочитайте внимательно о чем идет речь. Я уже написал выше о полиноме, какой хочу получить. Если Вы не можете мне помочь, пожалуйста, не мешайте другим, тем, кто пытается это сделать искренне.
А пытаюсь я получить функцию, описанную в Help к программе.
k=f(R, L)

-- Чт ноя 19, 2009 22:50:17 --

Вы, Leierkastenmann, прежде чем задавать мне вопросы и давать советы прочитайте внимательно о чем идет речь. Я уже написал выше о полиноме, какой хочу получить. Если Вы не можете мне помочь, пожалуйста, не мешайте другим, тем, кто пытается это сделать искренне.
А пытаюсь я получить функцию, описанную в Help к программе.
k=f(R, L)


Вы абсолютно ничего не написали о полиноме, который хотите получить. Вы пишете, что используете метод математики и у Вас ничего не получается, от Вас все хором пытаются добиться какова же постановка Вашей задачи, а Вы в ответ все время пишете что-то об InterpolatingPolynomial. У Вас задача что ли для данного конкретного массива используя именно InterpolatingPolynomial получить полином? Если так, то тему можно считать закрытой, ничего для данного массива вы этой функцией не получите. Если не так, то напишите нормально и четко, не прибиваясь к функциям Математики и вообще к Математике, какую задачу Вы решаете. И тогда можно будет продолжить.

 Профиль  
                  
 
 Re: Полиномальная интерполяция в Wolfram Mathematica7
Сообщение20.11.2009, 21:14 


18/11/09
31
Да действительно, venco, L в приведенном массиве равно 0.125. И я уже присал выше, что для этого L я уже получил аппроксимирующую плоскую функцию. Повторяюсь:

q := {{0.00, 0.00}, {10.00, 0.596}, {25.00, 0.797}, {50.00,
0.888}, {100.00, 0.940}, {150.00, 0.9592}, {200.00,
0.9684}, {250.00, 0.9729}, {300.00, 0.976}, {350.00,
0.9796}, {400.00, 0.9813}, {450.00, 0.9832}, {500.00,
0.9847}, {550.00, 0.9859}, {600.00, 0.987}, {650.00,
0.988}, {700.00, 0.9898}, {750.00, 0.9893}, {800.00,
0.9896}, {850.00, 0.9898}, {900.00, 0.9899}, {950.00,
0.99}, {1000.00, 0.990}}

g = SetPrecision[Collect[InterpolatingPolynomial[q, R], R], 20]

выдает результат
0.10321069314364408886 R - 0.0060921680449515548672 R^2 +
0.00021526188965000303760 R^3 - 4.9024380170309802404*10^-6 R^4 +
7.6687126570169823369*10^-8 R^5 - 8.6470460710971304929*10^-10 R^6 +
7.2830791784149045218*10^-12 R^7 -
4.7034611960616578939*10^-14 R^8 +
2.3739657038442522949*10^-16 R^9 -
9.4940978910601964160*10^-19 R^10 +
3.0371047474885264330*10^-21 R^11 -
7.8165158640299035964*10^-24 R^12 +
1.6225016882748641796*10^-26 R^13 -
2.7139587568329125025*10^-29 R^14 +
3.6418375861283536251*10^-32 R^15 -
3.8860199342877397260*10^-35 R^16 +
3.2497278263416174656*10^-38 R^17 -
2.0818823622708316895*10^-41 R^18 +
9.8558693666404699776*10^-45 R^19 -
3.2464656463398293820*10^-48 R^20 +
6.6396271630385450394*10^-52 R^21 - 6.3458331446225376992*10^-56 R^22

Однако подобных плоских табличных функций у меня 5 для разных L (снова повторю написанное выше L (0.125, 0.25, 0.5, 0.75 и 1.0)).
Теперь я хочу получить обобщающую аппроксимирующую функцию, обединяющую все 5 для разных L.
Идя от простого к сложному, я пытаюсь получить в трехмерном измерении ту же первую плоскую функцию, которая на трехмерном графике будет лежать в плоскости, параллельной x,y (k,R) и расположенной по оси z (L) на расстоянии 0.125 от начала координаю (а опять повторил то, что уже писал выше).
В итоге я собираюсь получить аппроксимирующую полиномальную функцию y=f(x,z) (k=f(R, L)).
Но Mathematica7 уже на третей точке делает остановку счета.

 Профиль  
                  
 
 Re: Полиномальная интерполяция в Wolfram Mathematica7
Сообщение21.11.2009, 00:18 
Аватара пользователя


15/01/06
200
protsiv в сообщении #263962 писал(а):
Да действительно, venco, L в приведенном массиве равно 0.125. И я уже присал выше, что для этого L я уже получил аппроксимирующую плоскую функцию. Повторяюсь:

Однако подобных плоских табличных функций у меня 5 для разных L (снова повторю написанное выше L (0.125, 0.25, 0.5, 0.75 и 1.0)).
Теперь я хочу получить обобщающую аппроксимирующую функцию, обединяющую все 5 для разных L.
Идя от простого к сложному, я пытаюсь получить в трехмерном измерении ту же первую плоскую функцию, которая на трехмерном графике будет лежать в плоскости, параллельной x,y (k,R) и расположенной по оси z (L) на расстоянии 0.125 от начала координаю (а опять повторил то, что уже писал выше).
В итоге я собираюсь получить аппроксимирующую полиномальную функцию y=f(x,z) (k=f(R, L)).
Но Mathematica7 уже на третей точке делает остановку счета.


Почему ту же первую плоскую функцию? У Вас что там цилиндроподобная зависимость что ли?
Я никак не возьму в толк - почему Вы, имея еще другие данные для L, все время в качестве примера приводите только для одного L набор точек? Дайте Вы математике полный набор, может она и построит полином.
Еще вопрос, что же Вы хотите - аппроксимацию или интерполяцию в итоге-то?

Вот Вам пример, как можно Математику заставить на ваших данных строить любые полиномы, только задавая наперед их степень. Но полиномы, аппроксимирующие, а не интерполирующие.
Код:
vars = {x, y, z};
data = {{0.00, 0.00, 0.125}, {10.00, 0.596, 0.125}, {25.00, 0.797,
    0.125}, {50.00, 0.888, 0.125}, {100.00, 0.940, 0.125}, {150.00,
    0.9592, 0.125}, {200.00, 0.9684, 0.125}, {250.00, 0.9729,
    0.125}, {300.00, 0.976, 0.125}, {350.00, 0.9796, 0.125}, {400.00,
    0.9813, 0.125}, {450.00, 0.9832, 0.125}, {500.00, 0.9847,
    0.125}, {550.00, 0.9859, 0.125}, {600.00, 0.987, 0.125}, {650.00,
    0.988, 0.125}, {700.00, 0.9898, 0.125}, {750.00, 0.9893,
    0.125}, {800.00, 0.9896, 0.125}, {850.00, 0.9898, 0.125}, {900.00,
     0.9899, 0.125}, {950.00, 0.99, 0.125}, {1000.00, 0.990, 0.125}};
n = 10;
funs = Flatten[Append[{1}, vars^# & /@ Range[n]]];
dataAll = {data, RotateLeft[#] & /@ data, RotateRight[#] & /@ data};
varsAll = {Most[vars], Most[RotateLeft[vars]], Most[RotateRight[vars]]}
funsAll =
  Flatten[Append[{1}, #]] & /@ Transpose[varsAll^# & /@ Range[n]];
interpol = Table[Fit[dataAll[[i]], funsAll[[i]], varsAll[[i]]], {i, 3}]
interpolTest =
Table[interpol[[i]] /. # & /@ (Rule @@@
        Transpose[{varsAll[[i]], #}] &) /@ (Most[#] & /@
       dataAll[[i]]) - (Last[#] & /@ dataAll[[i]]), {i, 3}]

x = f(z,y) очень плохо аппроксимируется, но тут с аппроксимацией можно и дальше извращаться, делая, к примеру, разнородные степени по разным координатам.

 Профиль  
                  
 
 Re: Полиномальная интерполяция в Wolfram Mathematica7
Сообщение22.11.2009, 15:12 


18/11/09
31
Извините, я человек новый. Подскажите, пожалуйста, на этом форуме есть возможность вставки в текст сообщений картинок или прикрепления файлов (графических или программных)? Хочу показать график функции, которую я стремлюсь получить.

 Профиль  
                  
 
 Re: Полиномальная интерполяция в Wolfram Mathematica7
Сообщение22.11.2009, 18:05 
Аватара пользователя


15/01/06
200
protsiv в сообщении #264391 писал(а):
Извините, я человек новый. Подскажите, пожалуйста, на этом форуме есть возможность вставки в текст сообщений картинок или прикрепления файлов (графических или программных)? Хочу показать график функции, которую я стремлюсь получить.


Можно. Используйте кнопку "Img" в окне сообщений, или тэги "Img", и вставляете ссылку на предварительно размещенный где-нибудь рисунок.
Еще можно почитать FAQ, там все написано.

 Профиль  
                  
 
 Re: Полиномальная интерполяция в Wolfram Mathematica7
Сообщение22.11.2009, 20:56 


18/11/09
31
А как вставить адрес рисунка между двумя "Img" . Неужели я должен вручную прописать полный путь к файлу на моем компьютере? В FAQ об этом ничего нет.

 Профиль  
                  
 
 Re: Полиномальная интерполяция в Wolfram Mathematica7
Сообщение22.11.2009, 21:08 
Аватара пользователя


15/01/06
200
protsiv в сообщении #264491 писал(а):
А как вставить адрес рисунка между двумя "Img" . Неужели я должен вручную прописать полный путь к файлу на моем компьютере? В FAQ об этом ничего нет.


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

 Профиль  
                  
 
 Re: Полиномальная интерполяция в Wolfram Mathematica7
Сообщение22.11.2009, 21:39 


18/11/09
31
Имеем 5 табличных функций q=f(R), построенных для разных L (0.125, 0.25, 0.5, 0.75 и 1.0))
q125 := {{0.00, 0.00, 0.125}, {10.00, 0.596, 0.125}, {25.00, 0.797,
0.125}, {50.00, 0.888, 0.125}, {100.00, 0.940, 0.125}, {150.00,
0.9592, 0.125}, {200.00, 0.9684, 0.125}, {250.00, 0.9729,
0.125}, {300.00, 0.976, 0.125}, {350.00, 0.9796, 0.125}, {400.00,
0.9813, 0.125}, {450.00, 0.9832, 0.125}, {500.00, 0.9847,
0.125}, {550.00, 0.9859, 0.125}, {600.00, 0.987, 0.125}, {650.00,
0.988, 0.125}, {700.00, 0.9887, 0.125}, {750.00, 0.9893,
0.125}, {800.00, 0.9896, 0.125}, {850.00, 0.9898, 0.125}, {900.00,
0.9899, 0.125}, {950.00, 0.99, 0.125}, {1000.00, 0.990, 0.125}}
q250 := {{0.00, 0.00, 0.25}, {10.00, 0.211, 0.25}, {25.00, 0.461,
0.25}, {50.00, 0.652, 0.25}, {100.00, 0.797, 0.25}, {150.00,
0.8481, 0.25}, {200.00, 0.8798, 0.25}, {250.00, 0.9031,
0.25}, {300.00, 0.921, 0.25}, {350.00, 0.934, 0.25}, {400.00,
0.9427, 0.25}, {450.00, 0.9486, 0.25}, {500.00, 0.9525,
0.25}, {550.00, 0.9554, 0.25}, {600.00, 0.958, 0.25}, {650.00,
0.9608, 0.25}, {700.00, 0.9634, 0.25}, {750.00, 0.966,
0.25}, {800.00, 0.9683, 0.25}, {850.00, 0.9702, 0.25}, {900.00,
0.9717, 0.25}, {950.00, 0.9727, 0.25}, {1000.00, 0.973, 0.25}}
q500 := {{0.00, 0.00, 0.500}, {10.00, 0.0308, 0.500}, {25.00, 0.1199,
0.500}, {50.00, 0.2640, 0.500}, {100.00, 0.4600, 0.500}, {150.00,
0.5723, 0.500}, {200.00, 0.6450, 0.500}, {250.00, 0.7001,
0.500}, {300.00, 0.7434, 0.500}, {350.00, 0.775, 0.500}, {400.00,
0.7989, 0.500}, {450.00, 0.8176, 0.500}, {500.00, 0.8328,
0.500}, {550.00, 0.8453, 0.500}, {600.00, 0.8562, 0.500}, {650.00,
0.8657, 0.500}, {700.00, 0.8747, 0.500}, {750.00, 0.883,
0.500}, {800.00, 0.8904, 0.500}, {850.00, 0.8967, 0.500}, {900.00,
0.9018, 0.500}, {950.00, 0.9056, 0.500}, {1000.00, 0.9085, 0.500}}
q750 := {{0.00, 0.00, 0.750}, {10.00, 0.0075, 0.750}, {25.00, 0.0363,
0.750}, {50.00, 0.1022, 0.750}, {100.00, 0.2344, 0.750}, {150.00,
0.3367, 0.750}, {200.00, 0.4212, 0.750}, {250.00, 0.4893,
0.750}, {300.00, 0.5431, 0.750}, {350.00, 0.5849, 0.750}, {400.00,
0.6192, 0.750}, {450.00, 0.6485, 0.750}, {500.00, 0.6742,
0.750}, {550.00, 0.6975, 0.750}, {600.00, 0.7191, 0.750}, {650.00,
0.7376, 0.750}, {700.00, 0.7557, 0.750}, {750.00, 0.7706,
0.750}, {800.00, 0.7832, 0.750}, {850.00, 0.7938, 0.750}, {900.00,
0.8024, 0.750}, {950.00, 0.8091, 0.750}, {1000.00, 0.8142, 0.750}}
q1000 := {{0.00, 0.00, 1.0}, {10.00, 0.0025, 1.0}, {25.00, 0.01369,
1.0}, {50.00, 0.0438, 1.0}, {100.00, 0.1195, 1.0}, {150.00,
0.1935, 1.0}, {200.00, 0.2611, 1.0}, {250.00, 0.3216,
1.0}, {300.00, 0.3751, 1.0}, {350.00, 0.4198, 1.0}, {400.00,
0.4582, 1.0}, {450.00, 0.492, 1.0}, {500.00, 0.5225, 1.0}, {550.00,
0.5503, 1.0}, {600.00, 0.5765, 1.0}, {650.00, 0.5996,
1.0}, {700.00, 0.6209, 1.0}, {750.00, 0.6399, 1.0}, {800.00,
0.6568, 1.0}, {850.00, 0.6716, 1.0}, {900.00, 0.6846,
1.0}, {950.00, 0.6957, 1.0}, {1000.00, 0.705, 1.0}.
На двумерном графике они приведены сверху вниз
Изображение
Если построить их на трехмерном графике, где L третья координата, то получаем
Изображение
или поверхность
Изображение
Требуется аппроксимировать их одной зависимостью q=f(R, L).

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу Пред.  1, 2, 3  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group