Автор Тема: Ряд Е24 и Маткад  (Прочитано 3857 раз)

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

Оффлайн LEO

  • Ветеран
  • *****
  • Сообщений: 4417
  • Карма: 310
  • Пол: Мужской
    • Просмотр профиля
Ряд Е24 и Маткад
« : 03.04.07, 17:08:25 »
собсно нужна функция вида f(x) которая ставила бы в соответствие x его ближайшее значение из ряда Е24 ... кто знаком с маткадом - может подскажете встроенную функцию, или как реализовать?
http://is.gd/fpTeSMПродам книжки про Ajax и ASP.NET, http://is.gd/lDL64HПриглашаю в Dropbox


Оффлайн LEND

  • Пользователь
  • **
  • Сообщений: 95
  • Карма: 155
  • Истина как всегда где-то рядом
    • Просмотр профиля
Re: Ряд Е24 и Маткад
« Ответ #1 : 03.04.07, 20:22:24 »
<<собсно нужна функция вида f(x) которая ставила бы в соответствие x его
ближайшее значение из ряда Е24 ... кто знаком с маткадом - может подскажете
встроенную функцию, или как реализовать?>>

LEO
Я попробовал проанализировать ряд 1.0, 3.3, 10, 33, 100, 330 и написать функцию f(x), но это ничего не дает.
Тогда попробовал последовательность  1.0, 1.1, 1.2, 1.3, 1.4 ... 910, то получилось вот что:
 Пусть
  1 элемент 1.0
  2 элемент 1.1
  3 элемент 1.2
   и т.д. до 910

  то тогда Y=f(X) и получается:
  Y1=1.0+(1/10-0.1)
  Y2=1.0+(2/10-0.1)
  ...
  Yn=1.0+(n/10-0.1)
 
  Но найдем уравнение под n
   n=10*[(Yn-1.0)+0.1]
  Подставляем значения:
  Допустим Yn=910, тогда
  n=10*[(910-1)+0.1]
     n=10*[909+0.1]
      n=10*[909.1]
       n=9091
  Может тебе это нужно?
  И это так ли?

Я написал программу на VBS - попробуй

'*******************************************************************
' Автор LEND
' Имя программы: Leo.vbs
' Язык: VBScript
' Описание: ... Ближайшее значение из ряда Е24 и т.д.
'*******************************************************************
'Определить значение ряда Е24
'Пусть дан элемент под номером 24
i=24
' тогда
y=1.0+(i/10-0.1)
MsgBox "Значение элемента под номером "  & i & " равно " & y
'--------------------------------------------------
'Найдем кол. элементов ряда Е24 на протяжении n=3
Set WshShell=WScript.CreateObject("WScript.Shell")
n=3
For i=1 To n
   y=1.0+(i/10-0.1)
   WScript.Echo "i=" & i & " y=" & y
Next
'-------------------------------------------------
'Найдем n для значения из ряда Е24
'Выберем 3.3 т.е. y=3.3
' Найдем n при  y=3.3
 y=3.3
 n=10*((y-1.0)+0.1)
MsgBox "Номер значения для элемента ряда E24 "  & y & " равно " & n   
'-------------------------------------------------



Если задача решается таким способом, то можно написать и на JAVA

LEND
В мире временном, сущность которого - тлен,
Не сдавайся вещам несущественным в плен. © О.Х.

Оффлайн yurez

  • Старожил
  • ****
  • Сообщений: 836
  • Карма: 185
  • Пол: Мужской
  • прохожий
    • Просмотр профиля
Re: Ряд Е24 и Маткад
« Ответ #2 : 03.04.07, 20:32:11 »
ближайшее х можно найти записав все значения ряда в массив, и задавая х сравнить их с последним большим(меньшим) членом массива применяя простейший цикл until.отсюда и узнаем номер элемента массива, а затем значение члена массива значению функции.

Оффлайн LEO

  • Ветеран
  • *****
  • Сообщений: 4417
  • Карма: 310
  • Пол: Мужской
    • Просмотр профиля
Re: Ряд Е24 и Маткад
« Ответ #3 : 03.04.07, 20:53:57 »
ребята, спасибо, но алгоритм составить или написать на VB программу с такой функцией я и сам за пару минут могу =)

а как эту дрянь в маткад потом пихнуть, я не знаю. там тоже есть возможность программирования, но... нормально этого там не сделать, я по крайней мере ниасилил =)

пытался внедрять как-нибудь через объекты и т.п. - все равно фигня получается...

там можно задать функцию вида
F(x)= | a if x < n1
        | b if x < n2
        | ..... и т.д.
короче через условия...

по-идее это и есть решение... только вбивать 72 строчки вот так =) и еще считать ni для каждой (это середина интервала, чтобы ф-ция возвращала ближайшее значение из ряда)
... это гемор...

но я попытался... сделать в AutoIt скрипт... для начала просто потестить...

WinActivate("Mathcad")
Sleep(100)
for $i=1 to 72
send ("1",0)
send ("+]",0)
send ("{RIGHT}",0)
Next
MsgBox(0, "Test","Finish")

но он не работает... 1 посылается нормально, а клавиша ] и shift + ]  - нет.

так что вот сижу и думаю... )))
п.с. Mathcad 14
http://is.gd/fpTeSMПродам книжки про Ajax и ASP.NET, http://is.gd/lDL64HПриглашаю в Dropbox

Оффлайн LEND

  • Пользователь
  • **
  • Сообщений: 95
  • Карма: 155
  • Истина как всегда где-то рядом
    • Просмотр профиля
Re: Ряд Е24 и Маткад
« Ответ #4 : 04.04.07, 19:16:02 »
Leo
Я не работаю с Маткад. А как ты занесешь все значения ряда в массив(72 значения)?
Ручным способом. Ведь не зная функции ты можешь это сделать только таким способом.
Найти функцию для создания такой и таких цепочек не так уж и просто, тем более там присутствуют
дробные числа. Значения в указанном массиве Е24 меняются особо. Конечно, если постараться - можно
занести эти данные программно - но это если хорошо подумать, т.е. занести все 72 значения в массив.
В мире временном, сущность которого - тлен,
Не сдавайся вещам несущественным в плен. © О.Х.

Оффлайн LEO

  • Ветеран
  • *****
  • Сообщений: 4417
  • Карма: 310
  • Пол: Мужской
    • Просмотр профиля
Re: Ряд Е24 и Маткад
« Ответ #5 : 05.04.07, 20:36:55 »
LEND, да если б не эта дураццкая совершенно система ввода в маткад, было бы все давно решено, в удобстве ввода имхо коммандная строка рулит, зато в каде все выглядит наглядно, и можно в начале значения поменять, формулы ниже пересчитаются...
правда, установил маткад14 (типа новый), посмотрел whats new =) мда... символьные вычисления, которые в максиме были с незапамятных времен =) наконец-то он производные правильно считает =)

а вообще надо попробовать эксиом и мепл, может там дело обстоит лучше. у кого есть последние версии?

LEND
ряд - это скрин из pdf-ридера. значения можно скопировать. можно написать прогу, которая с помощью sendkeys вобъет в маткад нужную функцию. правда, как я писал - не вышло =)
п.с. преимущество "программного вбивания" конечно не в затраченном времени, прогу даже дольше писать, зато вероятность ошибок и очепяток меньше =)
ну и интереснее это )))
« Последнее редактирование: 05.04.07, 21:09:05 от LEO »
http://is.gd/fpTeSMПродам книжки про Ajax и ASP.NET, http://is.gd/lDL64HПриглашаю в Dropbox

Оффлайн LEND

  • Пользователь
  • **
  • Сообщений: 95
  • Карма: 155
  • Истина как всегда где-то рядом
    • Просмотр профиля
Re: Ряд Е24 и Маткад
« Ответ #6 : 05.04.07, 22:38:16 »
Наверно в Маткаде функцию можно подобрать под эту цепочку.
Можно конечно ввести эти цифры, можно ввести в файл, а потом подъсоединить их в программу.
Я попробую написать такую программу, избигая ввода цифр, с помощью подобранной мной выше функцией.
Попробую... т.е. программно ввести цифры 1.0, 1.1, 1.1, 1.3... 910
А потом можно сделать то, что выразил yurez
<<ближайшее х можно найти записав все значения ряда в массив, и задавая х сравнить их с последним большим(меньшим) членом массива применяя простейший цикл until.отсюда и узнаем номер элемента массива, а затем значение члена массива значению функции.>>
LEND
« Последнее редактирование: 05.04.07, 22:50:45 от LEND »
В мире временном, сущность которого - тлен,
Не сдавайся вещам несущественным в плен. © О.Х.

Оффлайн LEO

  • Ветеран
  • *****
  • Сообщений: 4417
  • Карма: 310
  • Пол: Мужской
    • Просмотр профиля
Re: Ряд Е24 и Маткад
« Ответ #7 : 06.04.07, 22:08:33 »
LEND, спасибо еще раз. думаю игра не стоит свеч ))
повторюсь - задача - вставить функцию в маткад, чтобы ее потом использовать
т.е. например
 f(x):=......
a:=5
b:=f(a)

проблема - как вбить функцию в маткад.
2 варианта:
вбить 72 строки
вбить программу

1й вариант - лениво, еще можно ошибится при вводе. зато просто ))
2й - гемор, надо изучать как работает система программирования в маткаде...
строк по-меньше, может... не на много, тот же массив все равно придется ручками забит... вставка из буфера вставляет как текст, и как формула это работать не будет. ((
как сделать, чтобы работало - не знаю. не нашел.

есть правда там специальная вставка - но это для других целей.
скрин1 - кусок хелпа из маткада,
скрин2 - спец. вставка...

повторюсь, большое всем спасибо, но не стоит тратить на это ваше время, мне эти округления по ряду надо делать менее 10 раз, в общем-то ))
просто я надеялся, что есть "простой путь", а его не оказалось.
http://is.gd/fpTeSMПродам книжки про Ajax и ASP.NET, http://is.gd/lDL64HПриглашаю в Dropbox

Оффлайн LEND

  • Пользователь
  • **
  • Сообщений: 95
  • Карма: 155
  • Истина как всегда где-то рядом
    • Просмотр профиля
Re: Ряд Е24 и Маткад
« Ответ #8 : 06.04.07, 22:12:10 »
Я уже написал. Отправлю ВАМ в личку. Сами решите, может понадобиться.
LEND

LEO: Спасибо.
« Последнее редактирование: 06.04.07, 23:17:38 от LEO »
В мире временном, сущность которого - тлен,
Не сдавайся вещам несущественным в плен. © О.Х.