Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 13.03.2014, 15:55   #1 (permalink)
Maryam
Новичок
 
Регистрация: 13.03.2014
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Решить систему дифференциальных уравнений

Помогите плиз,нужно решить,а то у меня не совсем то что нужно получается.
Помогите,плиз.Мне нужно решить систему дифференциальных уравнений с начальными условиями,действующая на отрезке [0,2pi] методом Эйлера.И подсчитать в определённой точке.Подскажите правильно ли?(скинула как картинку)
y'(x)=z
z'(x)=-(\alpha +\beta *cos(x))*y
w'(x)=g
g'(x)=-(\alpha +\beta *cos(x))*w
Миниатюры
img_new.jpg  
Maryam вне форума   Ответить с цитированием

Старый 13.03.2014, 15:55
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Пожалуйста, не забудьте прочитать данные темы

Решить систему линейных уравнений методом Зейделя
Решите систему линейных уравнений методом простой итерации
Решение уравнений методом Ньютона

Старый 13.03.2014, 15:57   #2 (permalink)
Maryam
Новичок
 
Регистрация: 13.03.2014
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Тут начальные условия y(0)=1,z(0)=0,w(0)=0,g(0)=0
Maryam вне форума   Ответить с цитированием
Старый 13.03.2014, 16:30   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

А что такое \alpha и \beta?
Vladimir_S вне форума   Ответить с цитированием
Старый 13.03.2014, 17:25   #4 (permalink)
Maryam
Новичок
 
Регистрация: 13.03.2014
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Это какие-то числа.альфа принадлежит отрезку [0,0.101],а бета положительная и должна быть меньше либо равна альфа.В моей задачке я взяла за альфу 0.07,а за бета 0.02
Maryam вне форума   Ответить с цитированием
Старый 13.03.2014, 17:27   #5 (permalink)
Maryam
Новичок
 
Регистрация: 13.03.2014
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Если знаете как решить,можно не Эйлером)
Maryam вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 15.03.2014, 14:57   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Maryam Посмотреть сообщение
(скинула как картинку)
Очень жаль. Если бы Вы скинули листинг, как текст, то можно было бы потестировать Вашу программу, а набивать вручную - увольте!
Цитата:
Сообщение от Maryam Посмотреть сообщение
Подскажите правильно ли?
И да, и нет.
Ход построения программы в целом правильный (вот только не знаю, зачем Вам очистка файлового буфера; за многие годы, что я занимаюсь программированием, не было случая, чтобы оно мне понадобилось. Ну да дело Ваше).
Но!!! Поймите - компьютер это не Ваша подружка, которая поймёт Вас с полуслова. Он (компьютер) общих идей и общих соображений не воспринимает. То есть напрочь. Ему, тупице, нужно, чтобы всё было расписано точно, аккуратно и однозначно, а не "абы как, и так сойдёт, ну ясно же, что...". А что мы видим в Вашем листинге?
1. В перечне параметров функции F вместо g воткнут опять же f.
2. Четыре изменяемых в цикле переменных обозначены то y1-y4, то y_1-y_4, т.е. то с подчерками, то без. Как говорится, "как Бог на душу положит".
Никуда не годится! Внимательность, точность, аккуратность - вот девизы программиста.
Успехов!
Vladimir_S вне форума   Ответить с цитированием
Старый 19.03.2014, 12:40   #7 (permalink)
Maryam
Новичок
 
Регистрация: 13.03.2014
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию система оду

Помогите,пожалуйста)система дифференциальных уравнений с начальными условиями(y(0)=1,z(0)=0,w(0)=0,g(0)=0).x принадлежит отрезку [0,2pi].Альфа и бета-числа,уд. условиям. альфа принадл. отрезку [0,0.101],а бета строго больше нуля,но меньше или равно альфа.
y'(x)=z
z'(x)=-(альфа+бета*cos(x))*y
w'(x)=g
g'(x)=-(альфа+бета*cos(x))*w
В программе я взяла альфа=0.09,а бета=0.05.Прога ,которая ниже у меня ПРЕДСТАВЛЕНА идёт,но ответ получается не такой какой мне нужно,посмотрите,может у меня где-то недочёт.Критика...зачем листинг скинула не принимается

Замечание:
Ну и для чего было вторую тему по той же задаче открывать?
Темы объединены.

Модератор
Вложения
Тип файла: txt программа.txt (738 байт, 557 просмотров)
Maryam вне форума   Ответить с цитированием
Старый 19.03.2014, 12:43   #8 (permalink)
Maryam
Новичок
 
Регистрация: 13.03.2014
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Код Pascal
program Euler;
var T : Text;
a, b, h, x: real;
y, z, w, g, y_1, y_2, y_3, y_4 : real;
function F(x, y, z, w, g: real; n:byte):real;
begin
case n of
1: f:=z;
2: f:=-(0.09+0.05*cos(t))*y;
3: f:=g;
4: f:=-(0.09+0.05*cos(t))*w;
end;
end;
begin
assign(T, 'c:\euler.txt'); rewrite(T);
a:=0; b:=2*pi; h:=pi/40;
y:=1; z:=0; w:=0; g:=0;
x:=a;
while x<=b+h do
begin
writeln(T, x:10:5, y:10:5, z:10:5, w:10:5, g:10:5);
y_1:=y+h*f(x, y, z, w, g, 1);
y_2:=z+h*f(x, y, z, w, g, 2);
y_3:=w+h*f(x, y, z, w, g, 3);
y_4:=g+h*f(x, y, z, w, g, 4);
y:=y_1; z:=y_2; w:=y_3; g:=y_4;
x:=x+h;
end;
flush(T); close(T);
end.
Maryam вне форума   Ответить с цитированием
Старый 19.03.2014, 14:10   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Maryam Посмотреть сообщение
посмотрите,может у меня где-то недочёт
Есть такой. Честно говоря, я вообще не понимаю, как Вы ухитрились оттранслировать программу: ведь в функции F у Вас аргументом косинуса является t - файловая переменная!!! Да любой транслятор должен визг поднять на всю Ивановскую - а у Вас тишь да гладь, вот только результат какой-то не тот...
Чудеса!
Vladimir_S вне форума   Ответить с цитированием
Старый 19.03.2014, 15:30   #10 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Maryam Посмотреть сообщение
ответ получается не такой какой мне нужно
Догадываюсь, что Вас смущает: тождественно-нулевые значения функций w и g во всём диапазоне. Так? Ну, не знаю: вроде так оно и быть должно. Ведь получается, что решение w(x)≡0, w'(x)≡0, g(x)≡0 и g'(x)≡0 для любого x полностью удовлетворяет как второй паре уравнений, так и граничным условиям! Так что, боюсь, тут из нулей не выпрыгнуть.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 03:05.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.