Generare una successione

di il
2 risposte

Generare una successione

Salve ragazzi , il testo del problema mi chiede di generare la successione x(k) = ?Ax(k-1) + (1 - ?)x(k-1) dove A è una matrice , x un vettore e ? una costante (che nel mio codice ho chiamato c) e di fermarmi se k(iterazioni)>100 o se la norma infinito è > di una certa tolleranza. Potete per favore controllare se la mia funzione è giusta?

	int k=0;
	do
    {
       
        creazione_vettore(n,c,A,x0,xk);
        copiavet(x0,xk,n);
		 k++;	
    }while (k<100 && norma_infinito(xk,n)>toll);
    printf("le iterazioni sono %d",k);
    stampa_vettore(xk,n);
	return 0;	
}
questo è cio che accade nel main il resto sono dichiarazioni

void creazione_vettore(int n,double c,matrice A,vettore x,vettore b)
{
	 for(int i=0;i<n;i++)
    {
        b[i]=0;
        for(int j=0;j<n;j++)
        {
            b[i]+=(c*(A[i][j]*x[j])+(1-c)*x[j]);
        }
    }
    return;
}

2 Risposte

  • Re: Generare una successione

    Volevi dire se la norma è minore di una certa tolleranza?

    Secondo me la funzione deve essere così
    
    void creazione_vettore(int n,double c,matrice A,vettore x,vettore b)
    {
        for(int i=0;i<n;i++)
        {
            b[i]=(1-c)*x[i];
            for(int j=0;j<n;j++)
            {
                b[i]+=c*(A[i][j]*x[j]);
            }
        }
    }
    
    Il resto lo puoi sapere solo tu se è corretto
  • Re: Generare una successione

    Weierstrass ha scritto:


    Volevi dire se la norma è minore di una certa tolleranza?

    Secondo me la funzione deve essere così
    
    void creazione_vettore(int n,double c,matrice A,vettore x,vettore b)
    {
        for(int i=0;i<n;i++)
        {
            b[i]=(1-c)*x[i];
            for(int j=0;j<n;j++)
            {
                b[i]+=c*(A[i][j]*x[j]);
            }
        }
    }
    
    Il resto lo puoi sapere solo tu se è corretto
    il resto l'ho già preso da altre funzioni che ho testato a parte . Ti ringrazio molto dell'aiuto
Devi accedere o registrarti per scrivere nel forum
2 risposte