• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Параметрическая функция

  • Автор темы Автор темы Su-34
  • Дата начала Дата начала

Su-34

Новые
Регистрация
10 Ноя 2011
Сообщения
65
Реакции
0
Баллы
0
Параметрическая функция

Помогите новичку! Мне надо задать параметрическую функцию
x=(t+1/t)/2
y=(t-1/t)/2
в Visual Fortran. Как задать промежуток a,b или их должно быть несколько ввиду разрывности? Что неправильного в кодах?


program lab1
real a,b,h,x,y
integer i,N
open(10,file='lab1.txt')
a=??
b=??
N=31
h=(b-a)/(N-1)
do i=1,N
t=a+h*i
r=f**2
x=(t+1/t)/2
y=(t-1/t)/2
print*,x,y
write(10,*)x,y
end do
end
 

Вложения

  • 12345.webp
    12345.webp
    8.3 KB · Просмотры: 66
Что неправильного в кодах?
Во-первых, ни к селу, ни к городу затесавшаяся (явно из предыдущей задачи) строка
Во-вторых, тут так. Действительно, нужно просчитать порознь 4 ветви функции. Вот перечень диапазонов изменения параметра t и координат x, y:
Код:
 1<t<+∞    1<x<+∞   0<y<+∞
 0<t<1    +∞>x>1   -∞<y<0
-∞<t<-1   -∞<x<-1  -∞<y<0
-1<t<0    -1>x>-∞   0<y<+∞
причем (ВАЖНО!) параметр t не должен принимать нулевого значения, иначе возникнет ошибка.
 
Т.е. надо несколько циклов задавать?? Можете показать:tehnari_ru_203:
 
Т.е. надо несколько циклов задавать?? Можете показать:tehnari_ru_203:
Ох, да не знаю я Вашего Фортрана! Просто скопируйте еще три раза фрагмент вычисления значений и записи в файл, меняя параметры a и b.
 
Ну я пытаюсь. Но вот это тоже вроде не то.....:(

program lab1
real a,b,h,x,y
integer i,N
open(10,file='lab1.txt')
a=-8
b=-1
N=31
h=(b-a)/(N-1)
do i=1,N
t=a+h*i
x=(t+1/t)/2
y=(t-1/t)/2
print*,x,y
write(10,*)x,y
END DO
a=-5
b=-1
N=31
h=(b-a)/(N-1)
do i=1,N
t=a+h*i
x=(t+1/t)/2
y=(t-1/t)/2
print*,x,y
write(10,*)x,y
END DO
a=1
b=5
N=31
h=(b-a)/(N-1)
do i=1,N
t=a+h*i
x=(t+1/t)/2
y=(t-1/t)/2
print*,x,y
write(10,*)x,y
END DO
a=1
b=8
N=31
h=(b-a)/(N-1)
do i=1,N
t=a+h*i
x=(t+1/t)/2
y=(t-1/t)/2
print*,x,y
write(10,*)x,y
end do
end
 
В общем - так. Опять же переписал программу на привычный мне Паскаль и результат построил в ORIGIN'е. Всё получилось, только возникла паразитная соединительная линия, проходящая через начало координат. Чтобы этого избежать, нужно разбить файл пополам и строить две серии порознь. Не знаю, можно ли сделать такое в Excell'е - никогда графиков в нем не строил.
Код:
var
 a,b,h,x,y,t:real;
 i,N:integer;
 ff:Text;

BEGIN
 Assign(ff,'D:\lab2.dat');
 Rewrite(ff);
 a:=0.05;
 b:=0.95;
 N:=18;
 h:=(b-a)/N;
 for i:=0 to N do
  begin
   t:=a+h*i;
   x:=(t+1/t)/2;
   y:=(t-1/t)/2;
   writeln(ff,t:6:2,x:12:3,y:12:3);
  end;
 a:=1;
 b:=11;
 N:=20;
 h:=(b-a)/N;
 for i:=0 to N do
  begin
   t:=a+h*i;
   x:=(t+1/t)/2;
   y:=(t-1/t)/2;
   writeln(ff,t:6:2,x:12:3,y:12:3);
  end;
 a:=-11;
 b:=-1;
 N:=20;
 h:=(b-a)/N;
 for i:=0 to N do
  begin
   t:=a+h*i;
   x:=(t+1/t)/2;
   y:=(t-1/t)/2;
   writeln(ff,t:6:2,x:12:3,y:12:3);
  end;
 a:=-0.95;
 b:=-0.05;
 N:=18;
 h:=(b-a)/N;
 for i:=0 to N do
  begin
   t:=a+h*i;
   x:=(t+1/t)/2;
   y:=(t-1/t)/2;
   writeln(ff,t:6:2,x:12:3,y:12:3);
  end;
 Close(ff);
END.
 

Вложения

  • Lab_2.webp
    Lab_2.webp
    12.7 KB · Просмотры: 53
Назад
Сверху