Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
#define M 9
double X [ M ];
double Y [ M ];
double a = -4. ;
double b = 4. ;
double dx = 1;
int i;
for( i = 0; i < M ; i++){
X [ i ] = a+i*dx;
Y [ i ] = funzione ( X [ i ]);
fprintf ( fp, "%13.5f %13.5f \n", X [ i ], Y [ i ]);
}
for( i = M-1; i >= 0 ; i--){
X [ i ] =a+i*dx;
Y [ i ] = funzione(X[ i ]);
}
int k = 1;
i = 0;
while( i <= M){
fprintf ( fp, "%2d %13.8f %13.8f \n",k, X [ i ], Y [ i ]);
i++;
k++;
}
int k = 1;
double resto;
i = 0;
while (i < M+1){
resto = ( X[ i ] - (int) X[ i ]);
if (resto==0){
fprintf ( fp, "%2d %13.8f %13.8fn", k, X[ i ], Y[ i]);
i++;
k++;
}
int i, passo;
passo = 3;
for(i = 0; i < M; i++){
if( X[ i ] < 0. && i%passo==0 ){
fprintf (fp, "%2d %13.7f %13.7f\n", i+1, X[ i ], Y[ i ]);
}
if( X[ i ] >= 0.) {
fprintf( fp, "%2d %13.7f %13.7f \n", i+1, X[ i ], Y[ i ]);
i += 3;
}
double dx1 = 1/3. ;
double dx2 = 1/4. ;
for(i = 0; i < M; i++){
if ( i==0 || X[ i-1 ] < 0 ){
X[ i ] = a + i*dx1;
}else{
dx1 = dx2;
X[ i ] = X[ i-1 ] + dx1;
}
Y[ i ] = funzione ( X[ i ]);
}
int K = 1;
i = 0;
while ( i < N ){
if ( i%4 == 0 ){
fprintf (fp, "%2d %13.9f %13.9f\n", K, X[ i ], Y[ i ]);
}
i++;
k++;
}
fprintf ( fp, "Intervallo: [%d,%d] \n", a,b);
fprintf ( fp, "h=%13.8f \n", h);
fprintf ( fp, "Suddivisione:%d \n", M);
FIBONACCI CON WHILE
fi = fi-1 + fi-2 solo primi 30 numeri
int fb;int fb1;int fb2;i=1;fb=0;fb1=0;fb2=1;while(i<30){fprintf(fp, "%5d %5d\n", i, fb);fb = fb1+fb2;fb2 = fb1;fb1 = fb;i++;}Stampare solo indice multiplo di 5
int fb;int fb1;int fb2;i=1;fb=0;fb1=0;fb2=1;while (i<30){if (i%5==0){fprintf(fp, "%5d %5d\n", i, fb);fb = fb1+fb2;fb2 = fb1;fb1 = fb;}i++;}H = (double) (b - a) / N;for (i = 0; i < N; i++) {t = a1 + i*H; x = 2 * (t + 1); y = 4 * (t * t - 1) + 8 * (t + 1); printf(" %13.8f %13.8f \n", x, y);}
double funzione (double x, double c){
double y; y = 2 * c * x - c * c; return y;}
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define OUTFILE "inttra.dat"
#define NINT 2
double funzione (double x);
double primitiva (double x);
int main(void){
FILE *fp;
double a = -1.;
double b = 1.;
double h ;
int i ;
int j ;
int n = 2;
double l = 0 ;
double s ;
double intanalitica;
double tmp ;
double ris_int [ 6 ];
double era [ 6 ] ;
double err [ 6 ] ;
double p ;
double rapp1;
if((fp=fopen(OUTFILE,"w"))==NULL){
(void)fprintf(stderr,"Non si apre: %s!\n", OUTFILE);
return EXIT_FAILURE;
}
intanalitica = primitiva (b) - primitiva (a);
/*case 4:
psik[0]=-0.8611363116; psik[1]=-0.3399810436;
psik[2]= 0.3399810436; psik[3]=0.8611363116;
wk[0]=0.34785548451; wk[1]=0.65214551549;
wk[2]=wk[0];
wk[3]=wk[0]; punti 1,2,3*/
default:
printf("troppi punti");
s = 0. ;
for ( k = 0 ; k < ng ; k++ ){
xk = 0.5 * ( b + a ) + 0.5 * ( b - a ) *psik [ k ] ;
s = s + funzione ( xk ) * wk [ k ] * jac;
era = fabs ( s - intanalitica ) ;
err = fabs ( s - intanalitica ) / fabs ( intanalitica ) ;
if ( k > 0 ){
fig = fabs ( s - s_1 ) / fabs ( s ) ;
s_1 = s ;
}
fprintf(fp, "%d %1f %13.8f %13.8f %13.8f\n", ng,s, era,err,fig);
}
fclose(fp);
return EXIT_SUCCESS;
}
double funzione (double x)
{
return exp(2*x)*cos(x);
}
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define OUTFILE "intretce.dat"
#define NINT 2
double funzione (double x);
double primitiva (double x);
int main(void){
FILE *fp;
double a = -1.;
double b = 1.;
double h ;
int i ;
double s ;
int j ;
int n = 2 ;
double idx ;
double isx ;
double y ;
double ris_int [ 6 ] ;
double intanalitica ;
double err [ 6 ] ;
double era [ 6 ] ;
double p ;
double rapp1;
if((fp=fopen(OUTFILE,"w"))==NULL){
(void)fprintf(stderr, "Non si apre:%s!\n", OUTFILE);
return EXIT_FAILURE;
}
n = NINT ;
intanalitica = primitiva (b) - primitiva (a);
for ( i = 0; i < 6; i++){
while ( /*fabs(b-a)>ER &&*/ k <= iter [ i ]){
xm = (a + b) /2. ;
fxm = funzione (xm);
if (fa*fxm > 0. ){
a = xm;
fa = fxm;
}else{
b = xm;
fb = fxm;
}
q = fabs( xm - xk_1 ) / fabs(xm);
e1 = fabs( xm - ZERO) / xm;
e2 = fabs(xm - ZERO);
e3 = fabs(xm - ZERO) / fabs (xk_1 - ZERO);
k++;
xk_1 = xm;
}
fprintf(fp, "%1d %13.8f %.8e %.8e\n", (k - 1), xm, q, e1,e2...);
}
fclose(fp);
return EXIT_SUCCESS;
}
double funzione(double x)
{
double y;
y=exp(x)+x-2;
return y;
}
DERIVATE IN AVANTI
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define NINT 10
#define OUTFILE "diffav.dat"
double funzione (double x);
double derivata (double x);
int main (void){
- FILE *fp;
- double a = -1.0; [ESTREMI INTERVALLO]
- double b = 1.0;
- double h = 0;
- double xk = 0;
- double xka;
- int j;
- int k;
- double fd1k_a [20 + 1]; [()ⁿ⁰ + gradi] + 1
- int n;
if((fp=fopen(OUTFILE,"w"))==NULL){
(void)fprintf(stderr,"Non si apre: %s!\n", OUTFILE);
return EXIT_FAILURE;
}
n = NINT + 1;
h = (double) (b - a) / (n - 1) ;
xk = a + h;
xka = xk + h;
- ″ = (k+2 - 2k+1 + k) / h² (A)
- ″ = (k - 2k-1 + k-2) / h² (I)
- ″ = (k+1 + k-1 - 2k) / h² (C)
for (j = 0; j < 2; j++){
h = (double) (b - a) / (n - 1);
for (k = 1; k < n - 1; k++){
fd1k_c[k] = (funzione(xka) - funzione(xki)) / (2*h);
xk = xk + h;
xka = xk + h;
xki = xk - h;
}
xk = a + h;
for (k = 1; k < n - 1; k++){
fprintf(fp, "%13.8f %13.8f %13.8f\n", xk, fd1k_c[k], fabs(derivata(xk) - fd1k_c[k]));
xk = xk + h;
}
fprintf(fp,"\n");
n = 2*n;
}
fclose(fp);
return EXIT_SUCCESS;
}
double funzione(double x)
{
return exp(2*x)*sin(x);
}
double derivata (double x)
{
return 2*exp(2*x)*sin(x)+exp(2*x)*cos(x);
}