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


Ответ
 
Опции темы Опции просмотра
Старый 05.07.2012, 17:26   #1 (permalink)
niderok
Новичок
 
Регистрация: 05.07.2012
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Нужна помощь в решении уравнения, которое имеет комплексные корни

Здравствуйте,уважаемые программисты! С такой проблемой к вам. Передо мной стоит задача в решении уравнения, которое имеет комплексные корни. программа которую сюда присылаю, имеет два уравнения, одно уравнение находит корни в выбранной области,методом пол_дела, второе уравнение зависит от решения первого,метод тот же используется. для первого уравнения решения выходят "хорошие", а вот для второго будут комплексные, так как нужно находить корени из отрицательных чисел. и вот тут я не знаю как быть,если есть мысли могли бы вы мне помочь,в решении моей задачи. Сразу говорю сам я толком ничего не умею программировать. Поэтому фраза сделай так-то так-то просто бесполезна,понять я понимаю,а как сделать не знаю.Огромное спасибо за внимание!

program pr;
uses crt;
var t1:text;
const a0=1E-5; ro1= 1000; ro2= 0.590; Cp1= 4216; //Cp2= 2034; lyam1= 0.680; gam= 1.3; l= 2257200; pi=3.14; p0= 1e5; T111=4967; p111=6.0716e+10; sigma= 0.05891; v= 279e-9; Rv=454; Rg=287; E=1e-8; var mg0,mg00,rov,Cp2,Z,A,value1,vT,a00,pg0,lam_TT,Lam, Lam_R,Lam_VV,Lam_T,lam_RR,lam_MM,pv0,max,Ya,betta, Ts,Ts1,Nu,laym,laym1,value:real; i:integer;

function f(a01,mg01:real):real;
begin f:= (4*pi/3)*((pv0-p0)*a01*a01*a01-2*sigma*a01*a01)+mg01*Rg*Ts1;
end;

function Y(lam,a002:real):real;
begin Y:= sqrt((lam*a002*a002*ro1*Cp1)/lyam1);
end;

function pg00(mg02,a002:real):real;
begin

pg00:=(3*mg0*Rg*Ts1)/(4*pi*a002*a002*a002);
end;
function
FF(lam,a02,mg02:real):real;
begin
FF:= ro1*a02*a02*lam*lam+4*v*ro1*lam+(3*gam*pv0*Y(lam,a 02)*Y(lam,a02)*(1+pg00(mg02,a02)/(ro2*l)))/ (gam*Y(lam,a02)*Y(lam,a02)+betta*(1+Y(lam,a02)))+3 *pg00(mg02,a02)-2*sigma/a02; end; function

pol_del1(mg_01:real):real;

var a,b,c: real;

begin a:= 0; b:= 6.6e-6; c:= (a+b)/2;
while (abs(b-a)>E) do
begin
if f(a,mg_01)*f(c,mg_01) < 0 then b:= c
else a:= c;
c:= (a+b)/2;
end;

value1:= (a+b)/2;
result:=value1;
end;
function pol_del2(res,mg_02:real):real;
var a,b,c: real;
begin a:= -1e6; b:= 1e6;
c:= (a+b)/2;
while (abs(b-a)>E) do begin

if FF(a,res,mg_02)*FF(c,res,mg_02) < 0 then b:= c
else a:= c; c:= (a+b)/2;
end;
Lam:= (a+b)/2;
result:=Lam;
end;
begin

pv0:=p0+2*sigma/a0;
vT:=lyam1/(ro1*Cp1);
Ts1:=T111/ln(p111/pv0);
mg00:=(128*sigma*sigma*sigma*pi)/(81*Rg*Ts1*(2*sigma/a0)*(2*sigma/a0));
Cp2:=gam*Rv/(gam-1);
betta:=3*(gam-1)*sqr(Cp2*Ts1/l)*((ro1*Cp1)/(ro2*Cp2));
assign(t1,'D:\данные\10 мая для устойчивого.txt');

rewrite(t1);
writeln(t1,' mg0 value1 Lam');

begin for i:=0 to 1000
do begin mg0:=i*mg00/1000;
value1:=pol_del1(mg0);
Lam:=pol_del2(value1,mg0);
writeln(t1,mg0,' ',value1,' ',Lam);
end;
close(t1);
end;
end.
niderok вне форума   Ответить с цитированием

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

Посмотрите данные обсуждения, в них скорее всего есть важные ответы

Паскаль. Найти корни уравнения методом хорд
Определить корни уравнения, используя метод секущих
Нужна помощь в решении задачи
Нужна помощь в решении двух задач
Нужна помощь в решении задач на Паскале

Старый 05.07.2012, 19:18   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Возможно, я и смог бы Вам помочь, но не прежде, чем будет выложена ПОЛНАЯ формулировка задачи. С видом уравнений и всем прочим.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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


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

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




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

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