Читайте также:
|
|
к курсовой работе: «» мая 20___ г.
Руководитель ______________ /Фамилия И.О. /
Студент ____________________ /Фамилия И.О./
Приложение 2.
Схема алгоритма уточнения корней по методу половинного деления
Приложение 3.
Схема алгоритма уточнения корня методом итераций
Приложение 4.
Схема алгоритма уточнения корня методом Ньютона
Приложение 5.
Схема алгоритма уточнения корня уравнения (метод Хорд)
Приложение 6.
Program Yravnenie;
uses crt;
var
a,b,c,d,d1,d2:real;
p,q,s,f:real;
x1,x2,x3:real;
m,n,z,mnim,dejst,k:real;
label 1,2,3;
begin
clrscr;
writeln('Ввод исходных данных');
writeln('Введите коэффициенты уравнения');
write('a=');readln(a);
write('b=');readln(b);
write('c=');readln(c);
write('d=');readln(d);
p:=(3*a*c-sqr(b))/(3*sqr(a));
q:=(2*sqr(b)*b-9*a*b*c+27*sqr(a)*d)/(27*sqr(a)*a);
s:=sqr(q)/4+(sqr(p)*p)/27;
if s<0.1e-6 then
begin
writeln('s<0');writeln('Уравнение имеет три действительных корня') end else goto 1;
if q<0.1e-6 then f:=arctan(sqrt(-(sqr(q)/4+sqr(p)*p/27)))/(-q/2) else
if q>0.1e-6 then f:=arctan(sqrt(-(sqr(q)/4+sqr(p)*p/27)))/(-q/2)+pi else
f:=pi/2;
x1:=2*sqr(-p/3)*cos(f/3)-b/(3*a);
x2:=2*sqr(-p/3)*cos(f/3+2*pi/3)-b/(3*a);
x3:=2*sqr(-p/3)*cos(f/3+4*pi/3)-b/(3*a);goto 2;
1:if s>0.1e-6 then begin
writeln('s>0');
writeln('Уравнение имеет один действ. корень и два комплексных');
d1:=-q/2+sqrt(sqr(q/2)+(sqr(p)*p)/27);
if d1<0 then m:=-exp((1/3)*ln(abs(d1))) else m:=exp((1/3)*ln(d1));
d2:=-q/2-sqrt(sqr(q/2)+(sqr(p)*p)/27);
if d2<0 then n:=-exp((1/3)*ln(abs(d2))) else n:=exp((1/3)*ln(d2));
z:=b/(3*a);
mnim:=(sqrt(3)/2)*(m-n);
dejst:=-(1/2)*(m+n)-z;
x1:=m+n-z;
writeln('x1=',x1:6:3);
writeln('x2=',dejst:6:3,'+i',mnim:6:3);
writeln('x3=',dejst:6:3,'-i',mnim:6:3);goto 3;end;
k:=exp((1/3)*ln(-q/2));
x1:=2*k-z;
x2:=-k-z;
x3:=x2;
writeln('s=0');writeln('Уравнение имеет три действительных корня');
2: writeln('x1=',x1:6:3);writeln('x2=',x2:6:3);writeln('x3=',x3:6:3);
3: readln;
end.
Приложение 7.
program polovin_del;
uses crt;
var
a,b,c,e,fa,fc:real;
begin
clrscr;
write('a=');readln(a);
write('b=');readln(b);
write('e=');readln(e);
repeat
fa:=2*exp(3*ln(a))-7*sqr(a)+8*a-2;
c:=(a+b)/2;
fc:=2*exp(3*ln(c))-7*sqr(c)+8*c-2;
if fa*fc>0 then a:=c else b:=c
until
abs(a-b)<=e;
writeln('x=',c:8:5);
writeln('f(x)=',fc:8:5);
end.
Приложение 8.
program interpol;
type
vector=array[0..10] of real;
var
a,b:vector;
k,n,i,j: integer;
x,y,l:real;
label 2,3,4,5,6,7;
procedure lagranj(a,b:vector; n:integer; x:real; var l:real);
var
i,j:integer;
th,zn:real;
label 1;
begin
l:=0;
for i:=0 to n-1 do
begin
th:=1;zn:=1;
for j:=0 to n-1 do
begin
if j=i then goto 1;
th:=th*(x-a[j]);
zn:=zn*(a[i]-a[j]);
1: end;
l:=l+b[i]*(th/zn);
end;
end;
begin
2: writeln('Вв кол-во узлов-n'); readln(n);
if n<=1 then begin writeln('это не интерпол, повт ввод'); goto 2; end;
writeln('Введите значения узлов x[i],y[i]');
for i:=0 to n-1 do
begin
7: writeln('x[',i,']=?'); readln(a[i]);
if i>=0 then if a[i]<a[i-1] then begin writeln('повт ввод x[',i,']>x[',i-1,']');goto 7;end;
writeln('y[',i,']=?'); readln(b[i]);
end;
3:writeln('Введите номер задачи:');
writeln('1- интерполяция');
writeln('2- экстраполяция');
writeln('3-конец работы');
readln(k);
if (k<1) or (k>3) then begin writeln('такой задачи нет'); goto 3;end;
if k=1 then goto 4;
if k=2 then goto 5;
if k=3 then goto 6;
4: begin
writeln('x='); readln(x);
if (x<a[0]) or (x>a[n-1]) then begin writeln('это не интерполяция');goto 4; end;
lagranj(a,b,n,x,l);
writeln('при x=',x:6:2,' y=',l:6:2);
goto 3;
end;
5: begin
writeln('x='); readln(x);
if (x>a[0]) and (x<a[n-1]) then begin writeln('это не экстраполяция');goto 5; end;
lagranj(a,b,n,x,l);
writeln('при x=',x:6:2,' y=',l:6:2);
goto 3;
end;
readln;
6: end.
Дата добавления: 2015-12-01; просмотров: 20 | Нарушение авторских прав