У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Числові методи в інформатиці Приклади типових завдань

Скласти графічний алгоритм і програму мовою Сі для розв’язування рівняння методом Ньютона з похибкою, що не перевищує число е=10-5, при x0=1.

cos x - x2 =2;

#include <iostream.h>

#include <conio.h>

#include <iomanip.h>

#include <stdlib.h>

#include <stdio.h>

#include <math.h>

 

float x0,x,t,eps;

int n;

float f(float t,x);

{

f=cos(tx)-pow(tx,2)-2;

};

float fp(float q);

{

fp=sin(q)-(2*q);

};

void main(void)

clrscr();

x0=1;

n=0;

eps=0.00001;

 

do

{ x=x0-(f(x0)/fp(x0));

t=abs(x-x0);

x0=x;

n=n+1;

}

while(t<eps);

cout<<endl<<

"Корiнь = "<<x;

cout<<endl<<

"Кiлькiсть iтерацiй = "<<n;

getch();

}

Скласти графічний алгоритм і програму мовою Сі для розв’язування системи рівнянь методом Зейделя з похибкою, що не перевищує число е=10-5, при x0=2; y0=2,3

xy - x2 + 12y = 0;

19x - 5yex=1.

Скласти графічний алгоритм і програму мовою Сі для перевірки чи належить точка A(x,y) лінії, побудованій за інтерполяційною формулою Лагранжа і заданій у 8 точках.

#include<iostream.h>

#include<conio.h>

#include<math.h>

#include<iomanip.h>

float

x[8]={0,1,2,3,4,5,6,7},

y[8]={0.1,0.5,0.9,1.3,1.7,2.1,2.5},

n=8,x0,y0,y1,x1,Ax,Ay,Lx;

int i;

void main (void)

{

clrscr();

cout<<

"Введiть координати точки А"<<

endl<<" x=";

cin>>Ax;

cout<<"y=";

cin>>Ay;

x0=x[0]; y0=y[0];y1=y[1];x1=x[1],i=0;

n:

if (x0<=Ax>=x1)

Lx=y0*(Ax-x0/x0-x1)+y1*(Ax-x1/x1-x0);

else

if(i!=n-1)

{

i++,x0=x[i]; y0=y[i];y1=y[i+1];x1=x[i+1];

goto n;

}

if (Lx!=Ay)

cout<<endl<<"Точка А("<<Ax<<","<<Ay<<")

не належить лiнiї, побудованiй по

iнтерполяцiйнiй формулi Лагранжа. "<<

"Вiдхилення дорiвнює "<<Lx-Ay;

else cout<<endl<<

"Точка А("<<Ax<<","<<Ay<<") належить

лiнiї, побудованiй по iнтерполяцiйнiй

формулi Лагранжа";

getch();

}

Скласти графічний алгоритм і програму мовою Сі для обчислення означеного інтегралу за методом трапецій s = ?xevxdx в межах [0,2].

#include <iostream.h>

#include <conio.h>

#include <iomanip.h>

#include <stdlib.h>

#include <stdio.h>

#include <math.h>

float x[10],y[10],h,a=0,b=2,

InTr,SumY,e=2.7183;

int n=10,i;

void main (void)

{

clrscr();

h=(b-a)/n;

for(i=0;i<=10;i++)

{

x[i]=a+h*i;

y[i]=(x[i]*pow(e,sqrt(x[i])));

SumY=SumY+y[i];

cout<<"\nx="<<x[i];

cout<<"\ny="<<y[i];

}

InTr=h*((y[0]+y[n])/2+SumY);

cout<<

"Iнтеграл за методом трапецiй S="

<<InTr;

getch();

}

Скласти графічний алгоритм і програму мовою Сі для знаходження мінімуму функції y=ex+x2 методом золотого перерізу в межах [0,1] з похибкою, не більшою за 0.0001.

#include <iostream.h>

#include <conio.h>

#include <iomanip.h>

#include <stdlib.h>

#include <stdio.h>

#include <math.h>

float a=0,b=1,E=0.0001,

A,B,e=2.7183,y,z,x;

void main (void)

{

clrscr();

y=0.618*a+0.382*b;

z=0.382*a+0.618*b;

A=pow(e,y)+y*y;

B=pow(e,z)+z*z;

start: if (A<B)

{

b=z;

if ((b-a)<E) goto end;

else

{

z=y;B=A;y=0.618*a+0.382*b;

A=pow(e,y)+y*y;

goto start;

}

}

else

{

a=y;

if ((b-a)<E) goto end;

else

{

y=z;A=B;z=0.382*a+0.618*b;

B=pow(e,z)+z*z;

goto start;

}

}

end:

x=(a+b)/2;

cout<<"\nЗначення мiнiмуму

функцiї методом золотого

перерiзу x="<<x;

getch();

}

Скласти графічний алгоритм і програму мовою Сі для перевірки чи належить точка S(x,y) лінії регресії першого порядку, побудованій за 45 точками.

#include<iostream.h>

#include<conio.h>

#include<math.h>

#include<iomanip.h>

float

a,b,hy=.25,y[45],x[45],

SumY,SumX,SumXY,SumX2,

Yreg,Sx,Sy;

int i,n=45;

void main (void)

{

for(i=0;i<=45;i++)

{

x[i]=i;

y[i]=hy*i;

SumY=SumY+y[i];

SumX=SumX+x[i];

SumXY=SumXY+x[i]*y[i];

SumX2=SumX2+x[i]*x[i];

}

a=n*SumXY-SumY*SumX/(n*SumX2-SumX*SumX);

b=SumY-a*SumX/n;

clrscr();

cout<<endl<<

"Введiть координати точки S x=";

cin>>Sx;

cout<<" y=";

cin>>Sy;

Yreg=a*Sx+b;

if(Sy!=Yreg)cout<<

"Точка S не лежить на лiнiї регресiї";

else cout<<

"Точка S лежить на лiнiї регресiї";

getch();

}

Скласти графічний алгоритм і програму мовою Сі для визначення координати мінімуму функції y=(2x-ex)3 при x Є [-10,10] покроковим методом з похибкою, що не перевищує 10-3.

#include<iostream.h>

#include<conio.h>

#include<math.h>

#include<iomanip.h>

float

 

a=-10,b=10,h=0.01,

e=2.7183,x,y,y_min,x_min;

void main (void)

{

clrscr();

x=a;

x_min=x;

y_min=pow((2*x-pow(e,x)),3);

cout<<endl<<

"----- Покроковий метод ----¬"<<endl;

s:

y=pow((2*x-pow(e,x)),3);

cout<<setprecision(3)<<

endl<<"x="<<x<<" y="<<y;

if (y_min>y)

{

y_min=y;

x_min=x;

}

if (x<=b)

{

x=x+h;

goto s;

}

cout<<endl<<

"L--------------------------- ";

cout<<endl<<

"Мiнiмум функцiї при х="<<x_min<<

" y="<<y_min;

getch();

}

Скласти графічний алгоритм і програму мовою Сі для розв’язування диференціального рівняня за методом Рунге-Кута xЙ = et-cos рt, xt=0 = 1 в межах [0,1].

#include<iostream.h>

#include<conio.h>

#include<math.h>

#include<iomanip.h>

float a=0,b=1,h,R0=0,R=0,t=.1,

t0=1,k0=0,k1=0,k2=0,k3=0,e=2.7183,

Pi=3.14;

int i,n=10;

void main (void)

{

clrscr();

i=1;

h=(b-a)/n;

cout<<endl<<

"--- Метод Рунге-Кутта --¬"<<endl;

cout<<setw(3)<<setprecision(5)<<

"¦ t="<<t0<<"\t x="<<R;cout<<setw(3)<<

setprecision(5)<<"\t\t¦";

f:

k0=pow(e,R0)-cos(Pi*(t-h));

k1=pow(e,R0+k0*h/2)-cos(Pi*(t-h+h/2));

k2=pow(e,R0+k1*h/2)-cos(Pi*(t-h+h/2));

k3=pow(e,R0+k2*h)-cos(Pi*(t-h+h));

R=R0+h/6*(k0+2*k1+2*k2+k3);

cout<<endl<<setw(3)<<setprecision(5)<<

"¦ t="<<t<<"\t x="<<R;

cout<<setw(1)<<setprecision(5)<<"\t¦";

if (i<n)

{

i=i+1;

t=t+h;

R0=R;

goto f;

}

cout<<endl<<"L------------------------ ";

getch();

}

Скласти графічний алгоритм і програму мовою Сі для розв’язування диференціального рівняня за методом Ейлера yV = eрx-x, yt=0=1; yЙt=0=2; yЙЙt=0=2; yЙЙЙt=0=0; yЙV=4 в межах [0,1].

#include<iostream.h>

#include<conio.h>

#include<math.h>

#include<iomanip.h>

float

a=0,b=1,h,z0=1,z1=2,

z2=2,z3=0,z4=4,k0=0,

Pi=3.14,x=0,y,z0p,z1p,

z2p,z3p,z4p;

int i,n=10;

void main (void)

{

clrscr();

h=(b-a)/n;

cout<<endl<<

"--- Метод Ейлера --¬"<<endl;

for (i=0;i<=n;i++)

{

z4p=exp(Pi*x-x);

z3p=z4*h;

z2p=z3*h;

z1p=z2*h;

z0p=z1*h;

cout<<setw(3)<<setprecision(5)

<<"¦ x="<<x<<"\t y="<<z0p;

cout<<setw(3)<<setprecision(5)

<<"\t\t¦";

x=x+h;

}

cout<<endl<<

"L------------------------ ";

getch();

}

Скласти графічний алгоритм і програму мовою Сі для обчислення означеного інтегралу за методом Сімпсона s = ?sin(xex)dx в межах [-р/2, р/2].

Скласти графічний алгоритм і програму мовою Сі для знаходження мінімуму функції y=ex - 3x3 методом випадкового пошуку в межах [-5,5] з похибкою, не більшою за 0.0001.

#include<iostream.h>

#include<conio.h>

#include<math.h>

#include<iomanip.h>

#include<time.h>

#include <stdlib.h>

#include <stdio.h>

float

a=-5,b=5,E=0.0001,

e=2.7183,x,y,y_min,x_min;

int i;

void main (void)

{

randomize();

clrscr();

x=a; x_min=x;

y_min=pow(e,x)-3*pow(x,3);

for(i=0;i<0;i++)

{

x=a+(b-a)*random(10)/10;

y=pow(e,x)-3*pow(x,3);

if(y<y_min)

{

y_min=y;

x_min=x;

}

}

cout<<endl<<

"Мiнiмум функцiї методом

випадкового пошуку f("

<<x_min<<")="<<y_min;

 

getch();

}

Скласти графічний алгоритм і програму мовою Pascal для розв’язування рівняння методом Ньютона з похибкою, що не перевищує число е=10-5, при x0=1.

cos x - x2 =2;

program iter_Nuton;

uses crt;

var x0,x,t,eps:real;

n:integer;

function f(tx:real):real;

begin

f:=cos(tx)-sqr(tx)-2;

end;

function fp(q:real):real;

begin

fp:=sin(q)-(2*q);

end;

begin clrscr;

x0:=1; n:=0; eps:=0.00001;

repeat

x:=x0-(f(x0)/fp(x0));

t:=abs(x-x0);

x0:=x;

n:=n+1;

until t<eps;

writeln('Корiнь = ',x:8:4);

writeln('Кiлькiсть iтерацiй = ',n);

readln;

end.

Скласти графічний алгоритм і програму мовою Pascal для розв’язування системи рівнянь методом Зейделя з похибкою, що не перевищує число е=10-5, при x0=2; y0=2,3

xy - x2 + 8y = 0;

12x - 5yex=1.

Скласти графічний алгоритм і програму мовою Pascal для перевірки чи належить точка A(x,y) лінії, побудованій за інтерполяційною формулою Лагранжа і заданій у 8 точках.

program Lagrange;

uses crt;

var

x[8]={0,1,2,3,4,5,6,7},

y[8]={0.1,0.5,0.9,1.3,1.7,2.1,2.5},

n=8,x0,y0,y1,x1,Ax,Ay,Lx: real

i: integer

label n;

begin clrscr;

writeln('Введiть координати точки А x=');

readln(Ax);

writeln('y=');

readln(Ay);

x0=x[0]; y0=y[0];y1=y[1];x1=x[1],i=0;

n:

if x0<=Ax>=x1 then

Lx=y0*(Ax-x0/x0-x1)+y1*(Ax-x1/x1-x0);

else

if i<>n-1 then

begin

i=i+1,x0=x[i]; y0=y[i];y1=y[i+1];x1=x[i+1];

goto n;

end;

if Lx<>Ay then

writeln('Точка А(',Ax,Ay,')

не належить лiнiї, побудованiй по

iнтерполяцiйнiй формулi Лагранжа.

"Вiдхилення дорiвнює ',Lx-Ay);

else writeln('Точка А(',Ax,',',Ay,') належить

лiнiї, побудованiй по iнтерполяцiйнiй

формулi Лагранжа');

readln;

end.

Скласти графічний алгоритм і програму мовою Pascal для обчислення означеного інтегралу за методом трапецій s = ?xevxdx в межах [0,2].

program Method_Trap;

uses crt;

var

x[0..10],y[0..10]: array of real;

h,a=0,b=2,InTr,SumY,e=2.7183: real

n=10,i: integer;

begin

clrscr;

h=(b-a)/n;

for i=0 to i<=10

do

x[i]=a+h*i;

y[i]=(x[i]*exp(sqrt(x[i])));

SumY=SumY+y[i];

writeln('x=’,x[i]);

writeln('y=’,y[i]);

end;

InTr=h*((y[0]+y[n])/2+SumY);

writeln('Iнтеграл за методом трапецiй S=',InTr);

readln;

}

Скласти графічний алгоритм і програму мовою Pascal для знаходження мінімуму функції y=ex+x2 методом золотого перерізу в межах [0,1] з похибкою, не більшою за 0.0001.

program Zol_Sich;

uses crt;

var

a=0,b=1,E=0.0001,

A,B,e=2.7183,y,z,x: real

label start;

begin

clrscr;

y=0.618*a+0.382*b;

z=0.382*a+0.618*b;

A=exp(y)+y*y;

B=exp(z)+z*z;

start:

if A<B then

begin

b=z;

if (b-a)<E then goto end;

else

begin

z=y;B=A;y=0.618*a+0.382*b;

A=exp(y)+y*y;

goto start;

end;

end;

else

begin

a=y;

if (b-a)<E then goto end;

else

begin

y=z;A=B;z=0.382*a+0.618*b;

B=exp(z)+z*z;

goto start;

end;

end;

end;

x=(a+b)/2;

writeln('Значення мiнiмуму

функцiї методом золотого

перерiзу x=',x);

writeln;

end.

Скласти графічний алгоритм і програму мовою Pascal для перевірки чи належить точка S(x,y) лінії регресії першого порядку, побудованій за 45 точками.

program Regresiya;

uses crt;

var

a,b,hy:=.25,SumY,SumX,SumXY,SumX2,Yreg,Sx,Sy;

y[0..45],x[0..45]:array of real;

i,n:=45: integer;

begin

for i:=0 to i<=45 do

begin

x[i]:=i;

y[i]:=hy*i;

SumY:=SumY+y[i];

SumX:=SumX+x[i];

SumXY:=SumXY+x[i]*y[i];

SumX2:=SumX2+x[i]*x[i];

end;

a:=n*SumXY-SumY*SumX/(n*SumX2-SumX*SumX);

b:=SumY-a*SumX/n;

clrscr;

writeln('Введiть координати точки S x=');

readln(Sx);

writeln(' y=');

readln(Sy);

Yreg:=a*Sx+b;

if Sy<>Yreg then

writeln('Точка S не лежить на лiнiї регресiї');

else

writeln('Точка S лежить на лiнiї регресiї');

readln;

end.

Скласти графічний алгоритм і програму мовою Pascal для визначення координати мінімуму функції y=(2x-ex)3 при x Є [-10,10] покроковим методом з похибкою, що не перевищує 10-3.

Program myprogram;

Uses crt;

Const a=-10,b=10,h=0.01,

e=2.7183;

Var

x,y,y_min,x_min:real;

bregin

clrscr();

x:=a;

x_min:=x;

y_min:=exp(1/3*(2*x-exp(1/x*e)));

writeln("----- Покроковий метод ----¬");

s:y:=exp(1/3*(2*x-exp(1/x*e)));

writeln("x=",x:9:5,” y=",y:9:5);

if (y_min>y) begin

y_min:=y;

x_min:=x;

end

if (x<=b) begin

x:=x+h;

goto s;

end

writeln(“L---------------------------”);

writeln(“Мiнiмум функцiї при х=",x_min:9:6," y=",y_min:9:6);

getch();

end.

Скласти графічний алгоритм і програму мовою Pascal для розв’язування диференціального рівняня за методом Рунге-Кута xЙ = et-cos рt, xt=0 = 1 в межах [0,1].

Program mymy;

Uses crt;

var

a=0,b=1,h,R0=0,R=0,t=.1,

t0=1,k0=0,k1=0,k2=0,k3=0,e=2.7183,

Pi=3.14 :real;

i,n=10:integer;

Begin

clrscr();

i:=1;

h:=(b-a)/n;

writeln("--- Метод Рунге-Кутта --¬");

f:

k0:=exp(e*1/R0)-cos(Pi*(t-h));

k1:=exp(e*1/(R0+k0*h/2))-cos(Pi*(t-h+h/2));

k2:=exp(e*1/(R0+k1*h/2))-cos(Pi*(t-h+h/2));

k3:= exp(e*1/(R0+k2*h))-cos(Pi*(t-h+h));

R:=R0+h/6*(k0+2*k1+2*k2+k3);

if (i<n)

begin

i=i+1;

t=t+h;

R0=R;

goto f;

end;

writeln("L------------------------ ");

getch();

end.

Скласти графічний алгоритм і програму мовою Pascal для розв’язування диференціального рівняня за методом Ейлера yV = eрx-x, yt=0=1; yЙt=0=2; yЙЙt=0=2; yЙЙЙt=0=0; yЙV=4 в межах [0,1].

Program mmm;

Uses crt;

var

a=0,b=1,h,z0=1,z1=2,

z2=2,z3=0,z4=4,k0=0,

Pi=3.14,x=0,y,z0p,z1p,

z2p,z3p,z4p:real;

i,n=10:integer;

begin

clrscr();

h:=(b-a)/n;

writeln("--- Метод Ейлера --¬");

for i:=0 to n do

begin

z4p:=exp(Pi*x-x);

z3p:=z4*h;

z2p:=z3*h;

z1p:=z2*h;

z0p:=z1*h;

writeln(

"¦ x=",x," y=",z0p);

x:=x+h;

end;

writeln(“L------------------------ ");

getch();

end.

Скласти графічний алгоритм і програму мовою Pascal для обчислення означеного інтегралу за методом Сімпсона s = ?sin(xex)dx


Сторінки: 1 2