Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > нужна помощь в решении уравнения в комплексной области,паскаль

нужна помощь в решении уравнения в комплексной области,паскаль

Ответ
Поиск в этой теме
Непрочитано 04.07.2012, 20:16 #1
нужна помощь в решении уравнения в комплексной области,паскаль
niderok
 
Регистрация: 02.07.2012
Сообщений: 19

Здравствуйте,уважаемые программисты! С такой проблемой к вам. Передо мной стоит задача в решении уравнения, которое имеет комплексные корни. программа которую сюда присылаю, имеет два уравнения, одно уравнение находит корни в выбранной области,методом пол_дела, второе уравнение зависит от решения первого,метод тот же используется. для первого уравнения решения выходят "хорошие", а вот для второго будут комплексные, так как нужно находить корени из отрицательных чисел. и вот тут я не знаю как быть,если есть мысли могли бы вы мне помочь,в решении моей задачи. Сразу говорю сам я толком ничего не умею программировать. Поэтому фраза сделай так-то так-то просто бесполезна,понять я понимаю,а как сделать не знаю.Огромное спасибо за внимание!
Код:
[Выделить все]
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,a02)*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.

Последний раз редактировалось Кулик Алексей aka kpblc, 04.07.2012 в 21:30.
Просмотров: 2918
 
Непрочитано 04.07.2012, 23:16
#2
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Ошибся форумом. Вряд ли кто тут будет такие задачки с "writeln" решать. Иди, где есть "уважаемые программисты".
ShaggyDoc вне форума  
 
Непрочитано 05.07.2012, 00:09
#3
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Думаю, такой вопрос больше сюда по адресу. Ну или на какой другой профильный форум..
bargool вне форума  
 
Непрочитано 05.07.2012, 00:18
#4
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


в маткад, паскаль... сишарп! http://msug.vn.ua/Posts/Details/4394
gomer вне форума  
 
Автор темы   Непрочитано 05.07.2012, 08:25
#5
niderok


 
Регистрация: 02.07.2012
Сообщений: 19


спасибо
niderok вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > нужна помощь в решении уравнения в комплексной области,паскаль

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь! Ищу литературу как обрамлять проемы, дверные и оконные в железобетоне di_per_se Поиск литературы, чертежей, моделей и прочих материалов 5 27.04.2012 15:50
Нужна помощь знатоков Маткада! (Решение уравнения) loje4ka Прочее. Программное обеспечение 16 10.11.2008 15:39
Нужна помощь Николай1 Прочее. Архитектура и строительство 2 27.02.2004 12:47