Extras din notiță
MET BISEC POL
#include <stdio.h>
#include <conio.h>
#include <math.h>
double valpol(int n,double A[10],double x)
{
int i;
double b;
b=A[n];
for(i=n-1;i>=0;i--)
b=A[i]+x*b;
return b;
}
main()
{
int n;
double A[10];
double i,ls,ld,er,xm,*r;
printf("neroarea:");
scanf("%lf",&er);
printf("ngrad:");
scanf("%d",&n);
printf("nlim st:");
scanf("%lf",&ls);
printf("nlim dr:");
scanf("%lf",&ld);
for(i=0;i<=n;i++)
{
printf("ndati coef[%d]:",i);
scanf("%lf",&A[i]);
printf("nA[i]");
}
if(valpol(n,A,ls)*valpol(n,A,ld)>0)
{
printf("err");
getche();
return 0;
}
if(valpol(n,A,ls)==0)
{
*r=ls;
return 1;
}
if(valpol(n,A,ld)==0)
{
*r=ld;
return 1;
}
xm=(ls+ld)/2;
while((fabs(ld-ls)>er)&&(valpol(n,A,xm)!=0))
{
xm=(ls+ld)/2;
if(valpol(n,A,xm)*valpol(n,A,ls)<0)
ld=xm;
else ls=xm;
}
*r=xm;
printf("nradacina:%lf",*r);
getche();
return 1;
}
MET BISEC ECT
#include<conio.h>
#include<stdio.h>
#include<math.h>
double f(double x)
{
return exp(x)-1/x;
}
double der(double x)
{
return 2*x+1.5857;
}
int bisectie(/*double(*f)(double),*/double ls,double ld,double err,double *sol)
{
double xm;
if(f(ls)*f(ld)>0)
return 0;
if(f(ls)==0)
{
*sol=ls;
return 1;
}
if(f(ld)==0)
{
*sol=ld;
return 1;
}
xm=(ls+ld)/2;
while((fabs(ld-ls)>err)&&(f(xm)!=0))
{
xm=(ls+ld)/2;
if(f(ls)*f(xm)<0)
ld=xm;
else ls=xm;
}
*sol=xm;
return 1;
}
main()
{
int e;
double ls,ld,err,*sol;
clrscr();
printf("limst:");
scanf("%lf",&ls);
printf("limdr:");
scanf("%lf",&ld);
printf("eroarea:");
scanf("%lf",&err);
e=bisectie(ls,ld,err,sol);
printf("sol:%lf",*sol);
getche();
return e;
}
MET APROX SUCC
#include <conio.h>
#include <math.h>
double *sol;
double fi (double x)
{
return (-x)*x+2;
}
double Derf(double x)
{
return (-2)*x;
}
/*Functia calculeaza radacina unei ecuatii prin metoda aproximatiilor succesive.
Functia intoarce 0 cand se gaseste radacina cu aproximatia dorita
1 cand nu se indeplinneste conditia de convergenta 2 cand nu se atinge precizia in numarul de pasi impus*/
int AproxSuc (double ls, double ld,
double x0, double err,double NMax, double *sol)
{
double xn,xn_1,pct,pas=0.001;
int iter,sem=1;
pct=ls;
do { xn=Derf(pct);
if ((Derf(pct))>=1) sem=0;
else pct+=pas;
}
while ((sem==1)&&(pct<=ld));
if (sem==0) return 1;
else xn=x0;
iter=1;
do {
xn_1=xn;
xn=fi(xn_1);
iter++;
}
while((fabs(xn-xn_1)>err)&&(iter<=NMax));
*sol=xn;
if (iter<NMax) return 0;
else return 2;
}
main()
{
int i,NMax;
double ls,ld,err,x0;
clrscr();
printf("Calul solutiei unei ecuatii date, cu metoda aproximatiilor succesive.nn");
printf("nIntroduceti eroarea maxima dorita:nn");
scanf("%lf",&err);
printf("nIntroduceti valoarea de start pentru aproximatii:nx0= ");
scanf("%lf",&x0);
printf("nnIntroduceti limitele intervalului in care se cauta solutia:");
printf("nnls= ");
scanf("%lf",&ls);
printf("nld= ");
scanf("%lf",&ld);
printf("nIntroduceti numarul maxim de iteratii:nNMax= ");
scanf("%d",NMax);
printf("n%d",AproxSuc(ls,ld,x0,err,NMax,sol));
printf("Radacina ecuatiei este:t %lf",*sol);
getch();
}
MET NW-RAP ECT
#include <conio.h>
#include <math.h>
double *sol;
double f (double x)
{
return (-x)*x+2;
}
double Derf(double x)
{
return (-2)*x;
}
/*Functia calculeaza radacina unei ecuatii prin metoda Newton-Raphson pentruecuatii transcedente.
Functia intoarce 2 cand derivata este nula 1 cand nu pot afla radacina cu precizia dorita 0 in caz de succes*/
int NewtonRaphsonF (double x0,
double niter,double err,double *sol)
{
double xn,xn_1,aux;
int cont=1;
xn=x0;
do { xn_1=xn;
if ((aux=Derf(xn_1))==0) return 2;
xn=xn_1-f(xn_1)/aux;
cont++;
}
while ((fabs(xn-xn_1)>err)&&(cont<=niter));
if (cont>=niter) return 1;
*sol=xn;
return 0;
}
main()
{
int i,NMax;
double ls,ld,err,x0;
clrscr();
printf("Calul solutiei unei ecuatii date, cu metoda Newton-Raphsonnn");
printf("nIntroduceti eroarea maxima dorita:nn");
scanf("%lf",&err);
printf("nIntroduceti valoarea de start pentru aproximatii:nx0= ");
scanf("%lf",&x0);
printf("nIntroduceti numarul maxim de iteratii:nNMax= ");
scanf("%d",NMax); printf("n%d",NewtonRaphsonF(x0,NMax,err,sol));
printf("Radacina ecuatiei este:t %lf",*sol);
getch();
}
Preview document
Conținut arhivă zip
- Metode Numerice
- Anca 1.cpp
- Anca 2.cpp
- Anca 3.cpp
- Metoda curbatura trapezului.c
- Metoda aproximatilor succesive.c
- Metoda bisectia pt ec.c
- Metoda bisectia pt polinoame.c
- Metoda de rezolvare a sistemelor inferior triunghiular.c
- Metoda derivarii prin cinci puncte.c
- Metoda derivarii prin doua puncte.c
- Metoda derivarii prin trei puncte.c
- Metoda lui Gauss de eliminare.c
- Metoda Newton-Raphson pentru ecuatii.c
- Metoda Newton-Raphson pentru polinoame.c
- Metode Numerice probleme.doc
- Rezolvarea sistemelor de ecuatii neliniare prin metoda lui Newton.c