Вверх ↑
Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
#1: 2014-07-29 11:33:56 правка | ЛС | профиль | цитата


Редактировалось 5 раз(а), последний 2021-05-21 05:32:35
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#2: 2014-07-29 15:29:32 правка | ЛС | профиль | цитата


Редактировалось 5 раз(а), последний 2021-05-21 05:32:36
карма: 0

0
Ответов: 8915
Рейтинг: 823
#3: 2014-07-29 17:46:08 ЛС | профиль | цитата
194.44.245.209, говорящий IP, пока нет такого способа, хотя и причин для отсутствия чтения/сохранения из файла тоже не видно
карма: 19

0
Гость
Ответов: 17029
Рейтинг: 0
#4: 2014-07-31 11:49:31 правка | ЛС | профиль | цитата


Редактировалось 5 раз(а), последний 2021-05-21 05:32:36
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#5: 2014-07-31 12:11:26 ЛС | профиль | цитата
http://forum.d2h.ru/forum.html?q=3&p=270572#p270572
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 9906
Рейтинг: 351
#6: 2014-07-31 12:24:42 ЛС | профиль | цитата
Это может и не совсем то.

А вот вопрос интерполяции в обыкновенном MathParse решается одной формулой.
Он (MathParse) понимает в качестве аргументов и массивы, и матрицы.

И сделано это было для того, чтобы грамотный Инженер не просил "нового элемента". А мог сам изобразить любой (в том числе и свой, эксклюзивный) способ интерполяции.

А не грамотному - не помогут "новые элементы". Ибо, числу их - нет конца...

карма: 9

0
Гость
Ответов: 17029
Рейтинг: 0
#7: 2014-07-31 12:54:38 правка | ЛС | профиль | цитата


Редактировалось 5 раз(а), последний 2021-05-21 05:32:36
карма: 0

0
Ответов: 9906
Рейтинг: 351
#8: 2014-07-31 13:52:13 ЛС | профиль | цитата
Уважаемый anonymous, в чем Ваша проблема: в математике, или прочитать справку на элемент - религия не позволяет

Замечу Вам две вещи:
  • Вы до сих пор этого не изложили
  • Не всем религия позволяет беседовать с anonymous-ами

  • карма: 9

    0
    Ответов: 8915
    Рейтинг: 823
    #9: 2014-07-31 15:15:38 ЛС | профиль | цитата
    194.44.245.209, говорящий IP, термин "интерполяция" предпологает указание способа интерполяции
    В предложеном Вами примере четыре значения, для линейной интерполяции многовато (плоскость рисуется по трём точкам (не лежащих на прямой), а для квадратичной интерполяции маловато (надо пять точек)
    194.44.245.209 писал(а):
    Но вот решить такую задачу он не сможет
    Но вот пример решения Вашей задачи на "обыкновенном MathParse" (для облегчения понимания формулы пользователем, у которого математика не самая сильная сторона, она нарисована без явного применения матриц)
    code_34104.txt
    карма: 19

    0
    файлы: 1code_34104.txt [2.1KB] [467]
    Гость
    Ответов: 17029
    Рейтинг: 0
    #10: 2014-07-31 18:39:13 правка | ЛС | профиль | цитата


    Редактировалось 5 раз(а), последний 2021-05-21 05:32:36
    карма: 0

    0
    Ответов: 16884
    Рейтинг: 1239
    #11: 2014-07-31 20:00:28 ЛС | профиль | цитата
    Я, в таких случаях применяю lnLineCode
    карма: 25
    Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
    0
    Ответов: 8915
    Рейтинг: 823
    #12: 2014-07-31 21:38:56 ЛС | профиль | цитата
    vpn6.rv.uar.net писал(а):
    ..изначально вопрос был..
    Андрей, "..на HiAsm можно всё..", в том числе и матрица в программе и нахождение значений по этой матрице хоть по трём, хоть по пяти или девяти точкам интерполяции. Вот и пример: interpolationmatrix.rar
    карма: 19

    0
    файлы: 1interpolationmatrix.rar [3.1KB] [361]
    Ответов: 9906
    Рейтинг: 351
    #13: 2014-08-01 12:46:35 ЛС | профиль | цитата
    Леонид, опять ты меня обескураживаешь

    Add(MainForm,3872117,42,112)
    {
    Width=338
    Height=128
    Position=1
    link(onCreate,613891:doEnum,[])
    }
    Add(MathParse,189973,329,210)
    {
    @Hint=#25:Достаточно ОДНОЙ таблэтки|
    DataCount=3
    MathStr="(%1[trunc(%2)+1,trunc(%3)+1]*frac(%2) + %1[trunc(%2)+0,trunc(%3)+1]*(1-frac(%2)))*frac(%3) +
    (%1[trunc(%2)+1,trunc(%3)+0]*frac(%2) + %1[trunc(%2)+0,trunc(%3)+0]*(1-frac(%2)))*(1-frac(%3))"
    link(onResult,9574079:doText,[])
    link(X1,10666086:Var3,[(335,103)])
    link(X2,14749919:reCalc,[(342,187)(363,187)])
    link(X3,4857045:reCalc,[(349,194)(412,194)])
    AddHint(-72,40,168,13,@Hint)
    }
    Add(Edit,15837687,350,98)
    {
    Left=95
    Top=40
    Width=60
    Text="5.5555"
    DataType=4
    }
    Add(Edit,1340437,399,98)
    {
    Left=160
    Top=40
    Width=60
    Text="9.33333"
    DataType=4
    }
    Add(Label,15992881,350,56)
    {
    Left=120
    Top=20
    Width=11
    Height=17
    Caption="X"
    AddHint(-3,-26,22,13,Caption)
    }
    Add(Label,11674701,399,56)
    {
    Left=182
    Top=20
    Width=11
    Height=17
    Caption="Y"
    AddHint(0,-27,22,13,Caption)
    }
    Add(Label,9574079,399,210)
    {
    Left=239
    Top=40
    Width=44
    Height=17
    Caption="<пусто>"
    }
    Add(Button,6971499,266,210)
    {
    Left=21
    Top=40
    Caption="EXEC"
    link(onClick,189973:doCalc,[])
    }
    Add(StrList,1831593,105,63)
    {
    Strings=#66:6;4;2;0;-2;-4;-6;-8;-8;-10;-12;-14;-16;-18;-20;-22;-24;-26;-28;-28|63:9;7;5;3;1;-1;-3;-5;-5;-7;-9;-11;-13;-15;-17;-19;-21;-23;-25;-25|62:12;10;8;6;4;2;0;-2;-2;-4;-6;-8;-10;-12;-14;-16;-18;-20;-22;-22|59:15;13;11;9;7;5;3;1;1;-1;-3;-5;-7;-9;-11;-13;-15;-17;-19;-19|58:18;16;14;12;10;8;6;4;4;2;0;-2;-4;-6;-8;-10;-12;-14;-16;-16|56:21;19;17;15;13;11;9;7;7;5;3;1;-1;-3;-5;-7;-9;-11;-13;-13|56:24;22;20;18;16;14;12;10;10;8;6;4;2;0;-2;-4;-6;-8;-10;-10|54:27;25;23;21;19;17;15;13;13;11;9;7;5;3;1;-1;-3;-5;-7;-7|54:30;28;26;24;22;20;18;16;16;14;12;10;8;6;4;2;0;-2;-4;-4|54:33;31;29;27;25;23;21;19;19;17;15;13;11;9;7;5;3;1;-1;-1|54:36;34;32;30;28;26;24;22;22;20;18;16;14;12;10;8;6;4;2;2|55:39;37;35;33;31;29;27;25;25;23;21;19;17;15;13;11;9;7;5;5|57:42;40;38;36;34;32;30;28;28;26;24;22;20;18;16;14;12;10;8;8|59:45;43;41;39;37;35;33;31;31;29;27;25;23;21;19;17;15;13;11;11|59:48;46;44;42;40;38;36;34;34;32;30;28;26;24;22;20;18;16;14;14|59:51;49;47;45;43;41;39;37;37;35;33;31;29;27;25;23;21;19;17;17|59:54;52;50;48;46;44;42;40;40;38;36;34;32;30;28;26;24;22;20;20|59:57;55;53;51;49;47;45;43;43;41;39;37;35;33;31;29;27;25;23;23|59:60;58;56;54;52;50;48;46;46;44;42;40;38;36;34;32;30;28;26;26|59:63;61;59;57;55;53;51;49;49;47;45;43;41;39;37;35;33;31;29;29|
    }
    Add(ArrayEnum,613891,119,126)
    {
    link(onItem,5535643:doEnum,[])
    link(Array,1831593:Array,[])
    }
    Add(Str_Enum,5535643,168,126)
    {
    link(onEnum,14186574:doOperation,[])
    }
    Add(Matrix,8551146,266,56)
    {
    MatrixType=1
    Col=21
    Row=21
    }
    Add(MatrixRW,2016069,266,119)
    {
    link(Matrix,10666086:Var2,[])
    link(Value,5535643:Part,[(279,110)(258,110)(258,166)(181,166)])
    link(Y,613891:Index,[(293,110)(307,110)(307,173)(132,173)])
    }
    Add(Math,14186574,217,126)
    {
    OpType=1
    Op2=1
    ResultType=0
    link(onResult,2016069:doWrite,[])
    link(Op1,5535643:NumSubStr,[(223,117)(160,117)(160,166)(174,166)])
    }
    Add(InfoTip,15577338,91,28)
    {
    Info=#21:Инициализация матрицы|
    Font=[MS Sans Serif,10,1,32768,1]
    Width=232
    Height=158
    Margin=3
    }
    Add(MathParse,4857045,399,147)
    {
    DataCount=1
    MathStr="min(max(%1,0),19)"
    Point(reCalc)
    link(X1,1340437:Text,[])
    }
    Add(MathParse,14749919,350,147)
    {
    DataCount=1
    MathStr="min(max(%1,0),19)"
    Point(reCalc)
    link(X1,15837687:Text,[])
    }
    Add(GetDataEx,10666086,266,98)
    {
    link(Data,8551146:Matrix,[])
    }

    Ибо сказано:
    вопрос интерполяции в обыкновенном MathParse решается одной формулой

    карма: 9

    0
    Ответов: 8915
    Рейтинг: 823
    #14: 2014-08-01 15:12:19 ЛС | профиль | цитата
    Galkov, методы-то разные, в примере от Galkov-а чёткая линейная интерполяция, в примере от Леонид-а вывод формулы плоскости по трём точкам и подстановка значений X и Y в неё, аналогично можно сделать поверхность второго, третьего или четвёртого порядка
    Леонид писал(а):
    ..хоть по пяти или девяти точкам интерполяции..

    (Ограничение диапазона значений порадовало как бы не запамятовать )
    карма: 19

    0
    Ответов: 9906
    Рейтинг: 351
    #15: 2014-08-01 18:37:09 ЛС | профиль | цитата
    Леонид писал(а):
    методы-то разные

    Ну и причем тут за рыбу деньги... Это не отменяет того факта, что "достаточно одной ТАБЛЭТКИ"
    Сказано же было:
    И сделано это было для того, чтобы грамотный Инженер не просил "нового элемента". А мог сам изобразить любой (в том числе и свой, эксклюзивный) способ интерполяции

    Т.е., человек (может и я - не помню) трудился специально для этого, а ты ему выкладываешь схему из ~50 элементов, с ТРЕМЯ MatrixRW.

    Все нужное просто: задача интерполяции решается ОДНИМ MathParse с тремя входными аргументами: матрица и две координаты
    А все сложное - не нужно ((с) Калашников)

    Была бы сплайн интерполяция - тоже похоже было бы. Один MathParse с тремя входными аргументами: два массива (значений, и вторых производных в узлах) и одна координата. Дополнительный массив вторых производных должен вычисляться на этапе инициализации (т.н. метод прогонки)
    И это тоже не отменяет того факта, что "достаточно одной ТАБЛЭТКИ"
    ------------ Добавленo в 18.37:
    Леонид писал(а):
    Ограничение диапазона значений порадовало

    Вообще-то, у этих парсеров более философский смысл...
    Как бы схема разбита на функциональные блоки: Блок инициализации, Парсер-интерполятор, Парсеры-преобразователи.
    Ну и всякая там мелочь пузатая, в качестве пользовательского интерфейса.

    У Парсеров-преобразователей может быть (кроме ограничений) и функция масштабирования, и нелинейного преобразования... Да хоть бы и приведение бесконечного интервала -- к конечному целочисленному диапазону.


    карма: 9

    0
    Сообщение
    ...
    Прикрепленные файлы
    (файлы не залиты)