Oppure

Loading
21/01/10 15:53
stella.p
Questa è la traccia:
1. Legge da tastiera un numero intero n, 1<=n<=25 ed un numero
positivo eps";
2. Legge da tastiera un vettore w€IR^n e una matrice R€IR^(nXn);(€=APPARTIENE)
3. Calcola la norma del max, di w;
4. Costruisce il vettore v^(0) dividendo il vettore w per la sua norma;
5. Costruisce la matrice A = eps*traspostaR*R;
6. Genera le seguenti successioni, per k>=1:
v^(k) = Av^(k-1)
bk = ||(v^(k-1))-v^(k)||max
7. Stampa ad ogni iterazione bk;
8. Arresta il calcolo quando bk<=eps oppure k = 100;
9. Stampa il numero k delle iterazioni effettuate;
10. Stampa le componenti dell'ultimo vettore v^(k) calcolato.

IO HO FATTO FINO AL PUNTO 5, MA IL 6 7 E 9 NON RIESCO PROPRIO.. QUALCUNO PUò DARMI UN SUGGERIMENTO:hail::hail::hail:??? GRAZIE MILLE A TUTTI
aaa
21/01/10 16:26
Lawliet
visto che non sei nuova: pierotofy.it/pages/extras/forum/2/78115-leggere_prima_di_postare_est_regolamento/ leggiti un pò il regolamento, anche se del C++ ma è equivalente per il C.
Riguardo alle tue tracce, cosa non riesci a fare? Posta il codice di quello che hai fatto e vediamo un pò tutti insieme.
aaa
21/01/10 17:14
stella.p
Lo conosco il regolamento del forum.. forse mi sono spiegata male io.. Non voglio che qualcuno mi faccia il codice, vorrei solo qualche suggerimento per continuare, poi me lo finisco io..
aaa
21/01/10 19:21
nessuno
Visto che i vari punti sono collegati, perche' non mostri il codice per i punti che hai risolto (magari commentandolo) ?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
22/01/10 18:55
stella.p
Ecco una bozza del codice che ho fatto.. sicuramente ci saranno molte imprecisioni, ma l'avevo scritto su un foglio per esercitarmi per la prova scritta che purtroppo non è al pc, quindi non potrò controllare gli errori..

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 25

typedef double vettore [N];
typedef double matrice [N][N];

void leggi_n(double&);
void leggi_eps(double);
void leggi_w(vettore,int);
void leggi_R(matrice,int,int);
void norma_w(vettore,int, double);
void crea_v(vettore, int);
void crea_trasposta(matrice,int,int);
void crea_A(matrice, matrice, matrice,int,int);
.
.
.

void leggi_n(double&n)
{
     printf("\n\nInserisci il numero n:");
     printf("\n\n                          n= "); 
     scanf("%lf",&n); 
     
     return; 
}

void leggi_eps(double e) 
{ 
     printf("\n\nInserisci la tolleranza:");                
     printf("\n\n                         e = "); 
     scanf("%lf",&e); 
     return e; 
} 

void leggi_w(vettore w, int n)
{
     int i;
     for (i=1;i<n;i++)
     printf("inserisci componente numero %d del vettore w",i);
     scanf("%f",v[i]);
     return;
}

void leggi_R(matrice R, int n)
{
     int i,j;
     printf("\n\nIntroduci gli elementi della matrice A: ");
      for (i=0; i<n; i++){
          for (j=0; j<n; j++){
              printf("\n\nA[%d,%d]=",i,j);
              scanf("%f",&A[i][j]);}}
      return;
}

void norma_w(vettore w, int n, double a)
{
      a=fabs(u[0]);
      for(i=0;i<n;i++)
      if (fabs(u[i])>a)
      a=u[i];
      printf("\n\nLa norma del massimo e' %f",a);
      return;
}

void crea_v(vettore v, int n, double a)
{
     int vett=0;
     for (i=0; i<n; i++)
     vett+=(w[i])/a;
     v[i]=vett;
     return;
}

void crea_A(matrice A, matrice R, matrice Rt, int e, int n)
{
     int i,j,k,prodotto=0;
     for (i=0; i<n; i++)
          for (j=0; j<n; j++)
     Rt[i][j]=R[j][i];
     
     for(k=0;k<n;k++)
     prodotto=prodotto+(e)*Rt[i][k]*R[k][j];
     A[i][j]=prodotto;
     return;
}

main()
{
      ...
}

aaa