Вы находитесь на странице: 1из 13

//derivata intr-un punct

#include<stdio.h>
#include <conio.h>
#include<math.h>
double f(double x)
{return x*x;}
int main ( )
{
double h1=0.00023,h2=0.00028, x0=3.14,d;
d=(h1*h1*f(x0+h2)+(h2*h2-h1*h1)*f(x0)-h2*h2*f(x0-h1))/(h1*h2*(h1+h2));
printf("derivata functiei in puncutu %.2f este : " ,x0);
printf("%.2f",d);
getch();
}
//metoda richardson
#include<stdio.h>
#include <conio.h>
#include<math.h>
double f(double x)
{return (x+1.3)*exp((x*x)-1);}
double richardson(double ls,double ld,int n, int m)
{double h,k,sumh,sumk,sum;
int i;
h=(ld-ls)/n;
k=(ld-ls)/m;
sumh=(f(ls)+f(ld))/2*h;
sumk=(f(ls)+f(ld))/2*k;
for(i=1;i<=n-1;i++) sumh=sumh+h*f(ls+i*h);
for(i=1;i<=m-1;i++) sumk=sumk+k*f(ls+i*k);
sum=sumh+(sumh-sumk)/((k/h)*(k/h)-1);
return sum; }
int main ()
{ double ls=1.5,ld=2.6;
int n=1200, m=1600;
printf("integrala este: ");
printf("%.1f",richardson(ls,ld,n,m));
getch();
}

//metoda lagrange
#include<stdio.h>
#include <iostream.h>
#include <conio.h>
#include<math.h>
using namespace std;
int main()
{ int n=5,i,j;
float x[10],y[10],x1= ,sum=0,prod;
x[0]= ; x[1]= ; x[2]= ; x[3]= ; x[4]= ; x[5]= ;
y[0]= ;y[1]= ;y[2]= ;y[3]= ;y[4]= ;y[5]= ;
for(i=0;i<=n;i++)
{prod=1;
for(j=0;j<=n;j++)
if(j!=1)
prod=prod*(x1-x[j])/(x[i]-x[j]);
sum=sum+y[i]*prod;
}
cout<<"sum="<<sum<<"\n";
system("pause");
return 0;
}
//metoda cubaturii
using namespace std;
double f(double x, double y)
{return (y+1.3)*exp((x*x)-1); }
double cubatura (double a, double b, double c,double d, int n, int m)
{int i,j;
double h,k, sum=0;
h=(b-a)/n;
k=(d-c)/m;
for(i=1;i<=n-1;i++)
for(j=1;j<-m-1;j++)
sum=sum+(h*k)/4*(f(a+i*h,c+j*k)+f(a+i*h,c+(j+1)*k)+f(a(i+1)*h,c+j*k)+f(a+(i+1)*h,c+(j+1)*k));
return sum;}
int main ()
{ double a=1,b=2,c=3,d=4;
int n=1200, m=1600;
printf("integrala este :");
printf("%.1f",cubatura(a,b,c,d,n,m));
getch(); }

/Newton 1
#include<stdio.h>
#include <conio.h>
#include<math.h>
int main ()
{ int n=5,i,j;
float x0=0,h=0.75,y[6]={0.99,0.51,0.33,0.24,0.21,0.16},xp=0,5;
float sum, prod;
sum=y[0]; prod=1;
for(i=1;i<=n;i++)
{for(j=0;j<=n-1;j++)
y[j]=y[j+1]-y[j];
prod=prod*(xp-(x0+(i-1)*h))/(h*i);
sum=sum+y[0]*prod; }
printf("suma e %f",sum);
getch(); return 0; }
//Newton 3
#include<stdio.h>
#include <conio.h>
#include<math.h>
int main ()
{ int n=5,i,j;
float x[6]={0,1,2,3,4,5};
float y[6]={0.99,0.51,0.33,0.24,0.21,0.16},xbar=0,5;
float sum, prod;
sum=y[0]; prod=1;
for(i=1;i<=n;i++)
{for(j=0;j<=n-i;j++)
y[j]=(y[j+1]-y[j])/(x[j+1]-x[j]);
prod=prod*(xbar-x[i-1]);
sum=sum+y[0]*prod; }
printf("suma e %f",sum);
getch(); return 0; }

//optimizare
#include<stdio.h>
#include <conio.h>
#include<math.h>
void reg_lin(int m,float x[],float y[],float *pA, float *pB, float*E)
{ float sx,sy,sxx,sxy;
int i;
sx=0;sy=0;sxx=0;sxy=0;
for(i=0;i<m;i++)
{sx=sx+x[i];sy=sy+y[i]; sxy=sxy+x[i]*y[i]; sxx=sxx+x[i]*x[i];}
*pA=(m*sxy-sx*sy)/(m*sxx-sx*sx);
*pB=(sxx*sy-sx*sxy)/(m*sxx-sx*sx); *E=0;
for(i=0;i<m;i++)
*E=*E+(y[i]-(*pA)*x[i]-(*pB))*(y[i]-(*pA)*x[i]-(*pB)); }
int main ()
{int n=5;
float x[10],y[10],pA,pB,E;
x[0]= ;x[1]= ;x[2]= ; x[3]= ; x[4]= ;
y[0]= ;y[1]= ;y[2]= ;y[3]= ;y[4]= ;
reg_lin(m,x,y,&pA,&pB,&E);
printf("A=%f",pA);
printf("\nB=%f",pB);
printf("\nE)=%f",E);
getch(); }

Valoarea polinomului intr-un punct


#include<stdio.h>
#include<stdlib.h>
#include<iostream.h>
using namespace std;
int main()
{int i , grad=4;
float a[10]={-0.5, 2, -3.1, 0.1}, x=1.618, p=0;
p=a[grad];
for(i=grad; i>=1; i)
p=p*x+a[i-1];
printf(Valoarea polinomului este %f\n, p);
system(PAUSE);
return 0;
}

Derivata polinomului intr-un punct


#include<iostream.h>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
int main()
{int i , grad=4;
float a[100]={-0.5, 2, -3.1, 0.1}, p, x=1.618, v[100];
for(i=grad-1; i>=0;i--)
v[i]=(i+1)*a[i+1];
p=v[grad-1];
for(i=grad-1; i>0;i--)
p=p*x+v[i-1];
printf(%f, p);
system(PAUSE);
return 0; }
Metoda bisectiei
#include<stdlib.h>
#include<iostream.h>
#include<math.h>
#include<stdio.h>
using namespace std;
float f(float x)
{ return 2.1*exp(3.2*x)-1.6*x*x-4.1;}
int main()
{float ls=0.1, ld=3.5, er=0.00001, xm, rad;
int k=0;
xm=(ls+ld)/2;
while((fabs(ld-ls)>er)&&(f(xm)!=0))
{k++;
xm=(ls+ld)/2;
if(f(xm)*f(ls)<0)
ld=xm;
else ls=xm;}
rad=xm;
cout<<radacina este<<rad<<endl<<numarul de pasi<<k<<endl;
system(PAUSE);
return0;}

Metoda aproximarii succesive


#include<iostream.h>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
using namespace std;
float fi (float x)
{ // return 2.1*exp(3.2*x)-1.6*x*x=4.1;
return log((1.6*x*x+4.1)/2.1)/3.2;
}
int main()
{float ls=0.11, ld=3.5, x0=1.6, er=0.00001, pc, xn, xn_1, der, rad, h=0.001;
int k=0;
pc=ls;
do
{ der=(fi(pc+h)-fi(pc))/h;
if(fabs(der)>=1)
{ cout<<eroare<<endl;
break;}
pc=pc+h;
}
while(pc<=ld)
xn=x0;
do
{
k++;
xn_1=xn;
xn=fi(xn_1);
}
while(fabs(xn-xn_1)>=er);
rad=xn;
cout<<radacina este<<rad<<endl;
cout<<numarul de pasi<<k<<endl;
system(PAUSE);
return 0;
}

Metoda tangentei
#, #, #, #
using namespace std;
float f (float x)
{ return 2.1*exp(3.2*x)-1.6*x*x-4.1;
}
int main()
{
float x0=2, er=0.00001, h=0.001, xn, xn_1, der;
int nmax=20, k=1;
xn=x0;
do
{ xn_1=xn;
der=(f(xn_1+h)-f(xn_1))/h;
if(der==0)
{ cout<<eroare<<endl;
exit(0);
}
xn=xn_1-f(xn_1)/der;
nmax--;
k++;
}
while((fabs(xn-xn_1)>=er)&&(nmax>0));
if(nmax==0)
{ cout<<eroare<<endl;
exit(0);
}
cout<<radacina este<<xn<<endl;
cout<<numarul de pasi<<k<<endl;
system(PAUSE);
return 0;
}

Metoda lui Gauss


#, #, #, #,(fara iostream)
int main()
{
int n=3, i , k, j;
float a[10][10], b[10], x[10], m ,d;
a[1][1]; a[1][2]; a[1][3]; a[2][1]; a[2][2]; a[2][3]; a[3][1]; a[3][2]; a[3][3];
b[1]; b[2]; b[3];
for(i=1;i<=n;i++)
{ for(k=i+1; k<=n; k++)
{ m=a[k][i]/a[i][i];
for(j=1; j<=n; j++)
a[k][j]=a[k][j]-m*a[i][j];
b[k]=b[k]-m*b[i];
}
}
d=1;
if(a[n][n]==0)
return 0;
for(i=1; i<=n; i++)
d=d*a[i][i];
for(i=n; i>=1; i--)
{
x[i]=b[i];
for(j=n; j>=i+1; j)
x[i]=x[i]-a[i][j]*x[j];
x[i]=x[i]/x[i][i];
}
for(i=1; i<=n; i++)
{ printf(\n%f, x[i]);
}
system(PAUSE);
return 0;
}

Metoda lui Jacobi


#, #, #, #(fara iostream)
int main()
{int n=3, i, j, sem;
float a[10][10], b[10], x[10], sum, xn[10], xn1[10], eps=0.001;
a[1][1]; a[1][2]; a[1][3]; a[2][1]; a[2][2]; a[2][3]; a[3][1]; a[3][2]; a[3][3];
b[1]; b[2]; b[3];
x[1]; x[2]; x[3]===1 sau 2
for(i=1; i<=n; i++)
{ sum=0;
for(j=1; j<=n; j++)
sum=sum +fabs(a[i][j]);
if(sum>2*fabs(a[i][i]))
{ printf(EROARE);
getch();
exit(0);}
for(i=1; i<=n; i++)
xn[i]=x[i];
do { sem=0;
for(i=1; i<=n; i++)
xn1[i]=xn[i];
for(i=1; i<=n; i++)
{
xn[i]=b[i];
for(j=1; j<=n; j++)
if(j!=1)
xn[i]=xn[i]-a[i][j]*xn1[j];
xn[i]=xn[i]/a[i][i];
}
for(i=1; i<=n; i++)
if(fabs(xn[i]-xn1[i]>eps)
sem=1;
}
while(sem==1);
for(i=1; i<=n; i++)
printf( \n%f, xn[i]);
system (PAUSE);
return 0;
}

Regresia hiperbolica
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
using namespace std;
void opt_lin(int m, float x[ ], float y[ ], float *pA, float *pB, float *E)
{ float sx, sy, sxx, sxy;
int i;
sx=sy=sxx=sxy=0;
*E=0;
for(i=1; i<=m; i++)
{ sx=sx+x[i];
sy=sy+1/y[i];
sxy=sxy+x[i]/y[i];
sxx=sxx+x[i]*x[i];
}
*pA=(m*sxy-sxy*sy)/(m*sxx-sx*sx);
*pB=(sxx*sy-sx*sxy)/(m*sxx-sx*sx);
for(i=1; i<=m; i++)
*E=*E+(y[i]-1/((*pA)*x[i]-(*pB)))*(y[i]-1/((*pA)*x[i]-(*pB)));
}
int main()
{ int m=5;
float x[10]={0, 1.1, 1.2, 1.3, 1.4, 1.5}, y[10]={0, 2.3, 3.4 , 4.5, 5.6, 6.7}, Pa, Pb, e;
opt_lin(m, x, y, &Pa, &Pb, &e);
cout<<A=<<Pa<<B=<<Pb<<e=<<e<<endl;
getch(); }

Regresia exponentiala

#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
int main()
{
int m=4;
float x[5]={1, 1.5, 2, 2.5 3}, y[5]={2.4, 3.39, 4.8, 6.78, 9.6}, pa, pb, e, sx=0, sxx=0, sy=0,
sxy=0;
for(int i=0; i<m; i++)
{
sx=sx+x[i];
sxx=sxx+x[i]*x[i];
sy=sy+log(y[i]);
sxy=sxy+x[i]*log(y[i]);
}
pa=exp((sy*sxx-sx*sxy)/(m*sxx-sx*sx));
pb=exp((m*sxy)-(sx*sy))/((m*sxx)-(sy*sx));
for(int i=0; i<m; i++)
e=e+(y[i]-pa*pow(pb, x[i])-pa*pow(pb, x[i]));
printf(%f\n, e);
printf(%f %f, pa, pb);
getch();
}

Trigronometrica
#include<conio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
int main()
{ int m=4;
float x[4]={1.5, 1.75, 2, 2.25}, y[4]={2.312, 1.565, 0.852, 0.215}, pa, pb, e, scos2x=0,
scosx=0, sy=0, sycosx=0, om=1;
for(int i=0; i<m; i++)
{ sy=sy+y[i];
scos2x=scos2x+cos(om*x[i])*cos(om*x[i]);
scosx=scosx+cos(om*x[i]);
sycosx=sycosx+y[i]*cos(om*x[i]);
}
pa=((sy*scos2x)-(scosx*sycosx))/((m*scos2x)-(scosx*scosx));
pb=((m*sycosx)-(scosx*sy))/((m*scos2x)-(scosx*scosx));
for(int i=0; i<m; i++)
e=e+ pow(y[i]-pa-pb*cos(om*x[i]),2);
printf(%f\n,e);
printf(%f
%f, pa, pb);
getch();
}

Euler
#include<conio.h>
#include<stdio.h>
#include<math.h>
float f(float x, float y)
{ return x+y; }
void euler_imb(float x0, float y0, float h, float y[ ], float x[ ], int n)
{ int i;
y[0]=y0;
x[0]=x0;
for(i=1; i<n; i++)
{ x[i]=x[0]+i*h;
y[i]=y[i-1]+0.5*h(f(x[i-1], y[i-1])+f(x[i-1]+h, y[i-1]+h*f(x[i-1], y[i-1])));
}}
int main()
{ float x0=1, y0=-1, h=0.1, y[31], x[31];
int n=31, i;
euler_imb(x0, y0, h, y, x, n);
for(i=0; i<n; i++)
{ printf(\nx[%d]=%f, i, x[i]);
printf(y[%d]=%f\n, i, y[i]);
}
getch(); return 0; }

Вам также может понравиться