С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/19: Рейтинг темы: голосов - 19, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 21.05.2009
Сообщений: 15
1

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

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

Author24 — интернет-сервис помощи студентам
Составить программу (хотябы от 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Блог
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) Есть тут на форуме билл...

Линейная интерполяция
Добрый день, очень нужна помощь, я уже всю голову сломал в чем и где ошибка Суть программы...

Интересная математическая задача
На очень большом листе клетчатой бумаги нарисовали систему координат. В точке (0; 0) маленький...

Интересная задача
A = 9; B = -17; C = 13; D = -39; ЕСЛИ (B > D) ТОГДА C=(D+B)*5; ЕСЛИ (D > C) ТОГДА A=(A mod B)...

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

Добавлено через 1 минуту
И чтоб научится на паскале надо терпение и ум...
Начни и покажи место где ты что не понял
0
2923 / 844 / 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
21 / 21 / 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
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
13.12.2009, 17:53
Помогаю со студенческими работами здесь

Интересная задача на полный перебор
Добрый вечер! Требуется программу, которая распределит камни в две кучи так, чтобы модуль разности...

Линейная интерполяция
Добрый день. Есть задание построить линейную интерполяцию функции, построить график функции,...

Линейная Интерполяция
&lt;?php $A=Array(); for ($i=0; $i&lt;100; $i++) { $A=($i+1); } ?&gt; ...

Линейная интерполяция
Как правильно написать программу линейной интерполяции? С чего начать подскажите?


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru