Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
vVv-3
0 / 0 / 0
Регистрация: 21.05.2009
Сообщений: 15
1

Линейная интерполяция (интересная задача)

05.10.2009, 14:47. Просмотров 2858. Ответов 5
Метки нет (Все метки)

Составить программу (хотябы от Begin до End) линейной интерполяции намагничивания магнитного материала, а также табуляцию интерполирующей функции.
Распишу все что нужно бы сделать по плану(как я понял):
1. Задать точки в два массива(обязательно по возрастанию):
H:array[1..10] of real=(1.5,2,3,4,5,7,10,20,30,50)
B:aray[1..10] of real=(10,20,30,40,50,60,70,80,90,100)
2. Ввод заданного значения "X" в компьютер (не равной точке в заданном массиве)
3. Поиск между какими значениями 'H' задана X (например зададим X=15 - находиться ммежду 10 и 20, а по B этим точкам соответствуют значения 70 и 80 (т.е. B[i] соответствует H[i] всегда)
4.Далее в качестве интерполирующей функции выбираем Y=kX+M, где Х-задано, а K и M вычисляються по формулам К=(B[i]-B[i-1])/(H[i]-H[i-1]), M=B[i] - K*H[I-1] (В моём примере x=15, B[i-1]=70 , B[i]=80 ,H[i-1]=10, H[i]=20).
5.Выводим на экран значение Y.
Вроде бы всё.
Помoгите плз, я програмирую на паскале плохо (постоянно ошибки) и сделаю нврн к новому году, а так в заданиях хорошо разбираюсь и все расписал по полочкам, заодно при написании программы, вы увидите применение языка Pascal в электротехнике, и в приближении значений функции...
Огромное спасибо если кто сделает, да ешо и напишет программу "от корки до корки"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2009, 14:47
Ответы с готовыми решениями:

Линейная интерполяция
x 0.3 0.4 0.5 0.6 0.7 f(x) 0,2913 0,3799 0,4621 0,5380 0,6044 f(0.87) Есть...

Интересная программа
Есть матрица размером 2^n*2^n.В ячейках матрицы блоки по m байт.Матрица...

Линейная программа
Помогите пожалуйсиа сделать =(( Найти S-плошадь кальца для заданных значений...

Линейная структура
Помогите кто нибудь пожалуйста программку на Паскале для написанной ниже...

линейная структура
7. Ввести с клавиатуры три переменные вещественного типа (X, Y, Z). Выполнить...

5
odip
Эксперт С++
7162 / 3221 / 76
Регистрация: 17.06.2009
Сообщений: 14,161
06.10.2009, 13:10 2
вы увидите применение языка Pascal в электротехнике, и в приближении значений функции..
Насколько я понимаю это ты должен все увидеть
я програмирую на паскале плохо (постоянно ошибки) и сделаю нврн к новому году,
Ну так ты хотя бы начни !
0
mamedovvms
2918 / 839 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
06.10.2009, 13:20 3
программа простая, только вот какой вопрос а как быть если есть такой элемент, то есть если ты задашь x=20
0
vlad97
8 / 8 / 2
Регистрация: 06.10.2009
Сообщений: 87
06.10.2009, 13:24 4
Цитата Сообщение от vVv-3 Посмотреть сообщение
(например зададим X=15 - находиться ммежду 10 и 20
Тоесть между таким и таким(10-20) Диапозон чтоли?

Добавлено через 1 минуту
И чтоб научится на паскале надо терпение и ум...
Начни и покажи место где ты что не понял
0
mamedovvms
2918 / 839 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
06.10.2009, 13:43 5
вся задача закручена на i а найти его не составляет проблем
Pascal
1
2
for k:=2 to n-1 do
 if (h[k]>h[k-1])and(h[k]<h[k+1]) then i:=k;
0
Ardatov
20 / 20 / 1
Регистрация: 13.12.2009
Сообщений: 43
13.12.2009, 17:53 6
Цитата Сообщение от vVv-3 Посмотреть сообщение
1. Задать точки в два массива(обязательно по возрастанию):
H:array[1..10] of real=(1.5,2,3,4,5,7,10,20,30,50)
B:aray[1..10] of real=(10,20,30,40,50,60,70,80,90,100)
2. Ввод заданного значения "X" в компьютер (не равной точке в заданном массиве)
3. Поиск между какими значениями 'H' задана X (например зададим X=15 - находиться ммежду 10 и 20, а по B этим точкам соответствуют значения 70 и 80 (т.е. B[i] соответствует H[i] всегда)
4.Далее в качестве интерполирующей функции выбираем Y=kX+M, где Х-задано, а K и M вычисляються по формулам К=(B[i]-B[i-1])/(H[i]-H[i-1]), M=B[i] - K*H[I-1] (В моём примере x=15, B[i-1]=70 , B[i]=80 ,H[i-1]=10, H[i]=20).
5.Выводим на экран значение Y.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
uses crt;
var h,b: array[1..10] of real;
    x, y, k, m: real;
    i, kr: integer;
    flag: boolean;
begin
clrscr;
flag:=false;
h[1]:=1.5; h[2]:=2;  h[3]:=3;  h[4]:=4;  h[5]:=5;
h[6]:=7;   h[7]:=10; h[8]:=20; h[9]:=30; h[10]:=50;
b[1]:=10;  b[2]:=20; b[3]:=30; b[4]:=40; b[5]:=50;
b[6]:=60;  b[7]:=70; b[8]:=80; b[9]:=90; b[10]:=100;
write('x= ');
readln(x);
for i:=1 to 10 do begin
if flag=false then begin
 if x<h[i] then begin
  flag:=true;
  kr:=i;
 end;
end;
end;
k:=(b[kr]-b[kr-1])/(h[kr]-h[kr-1]);
m:=b[kr]-k*h[kr-1];
y:=k*x+m;
writeln('y= ',y:2:3);
readkey;
end.
0
13.12.2009, 17:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2009, 17:53

Линейная структура
Помогите решить.

Интересная задачи с матрицами
Программа должна запрашивать N (1 &lt;= N &lt;= 99) и формировать матрицу (и выводить...

Линейная и двумерные массивы
помогите решить задачки 1)линейная задача . В прямоугольном треугольнике...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru