|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2005
Città: Roma sud
Messaggi: 590
|
[c] Piano cartesiano e distriduzione normale
Ciao a tutti dovrei realizzare il seguente programma:
"Realizzare un programma che dato in input media e varianza sia in grado di disegnare sul piano cartesiano il grafico di una distribuzione normale"; x calcolare la normale ho scritto la formula e funziona ora il problema è come faccio a fare il grafico dato che il risultato della funzione è sempre un numero tio 0.00457? il grafico dovrebbe essere tipo l'immagine allegata: P.S. Come compilatore uso turbo c++ della borland grazie ciao
__________________
-Mac Book intel core duo 1,83GHz, 1,25 Gb RAM -Amd athlon 64 dual core 4400+, 2 GB RAM, Asus a8n-sli Deluxe, totale 500 GB di HARD DISK(4 hdd) |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2003
Messaggi: 704
|
Ciao frizzo.. scusa se ti disturbo.. volevo sapere se potevi postare il codice relativo alla distribuzione normale...
Anche io sto lavorando con le gaussiane... (in particolare sto creando un vettore di valori che graficati dovrebbero generare una gaussiana).... Grazie ancora!!! Mi spiace non poterti aiutare nello specifico.. ma forse per graficare ti dovresti appoggiare a delle librerie esterne... ciao e grazie ancora!! |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Aug 2005
Città: Roma sud
Messaggi: 590
|
Quote:
Questo è il codice non sono sicurissimo che sia giusto a me pare funzioni... il problema è per la grafica Codice:
#include<conio.h>
#include<iostream.h>
#include<graphics.h>
#include<math.h>
double normale(int x,int m,int var);
void main()
{
double ris,max=0.0;
int x,m,var;
clrscr();
//Dati programma
m=7;
var=12;
//Fine Dati programma
ris=normale(x,m,var);
cout<<ris;
getch();
}
double normale(int x,int m,int var)
{
double e=2.71828;
double sca,appo,p;
sca= sqrt(var);
appo=-(pow(x-m,2)/(2*var));
p=(1/(sca*sqrt(2*M_PI)))*pow(e,appo);
return p;
}
__________________
-Mac Book intel core duo 1,83GHz, 1,25 Gb RAM -Amd athlon 64 dual core 4400+, 2 GB RAM, Asus a8n-sli Deluxe, totale 500 GB di HARD DISK(4 hdd) |
|
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
A meno di errori grossolani:
Codice:
#include <stdio.h>
#include <math.h>
#include <conio.h>
#define SCREEN_X 79
#define SCREEN_Y 19
#define PI 3.14159265359
void main(void)
{
char table_g[SCREEN_X][SCREEN_Y];
float min_x,max_x,step_x,s,m,a=4.,b=1.;
int i,j,c;
printf("Varianza: ");
scanf("%f",&s);
printf("Media: ");
scanf("%f",&m);
do
{
for(i=0;i<SCREEN_X;i++)
{
for(j=0;j<SCREEN_Y;j++)
table_g[i][j]=' ';
}
min_x=m-a*s;
max_x=m+a*s;
step_x=(max_x-min_x)/(SCREEN_X-1);
for(i=0;i<SCREEN_X;i++)
{
/* j=1./(sqrt(2*PI*s))*exp(-pow(min_x+i*step_x-m,2)/(2*s))*SCREEN_Y;*/
j=exp(-pow(min_x+i*step_x-m,2)/(2*s))*SCREEN_Y*b;
if(j<SCREEN_Y)
table_g[i][j]='*';
}
for(i=0;i<SCREEN_X;i++)
printf("-");
printf("\nVarianza: %.2f\nMedia: %.2f\nRange: %.2f/%.2f\n",s,m,min_x,max_x);
for(i=0;i<SCREEN_X;i++)
printf("-");
for(j=SCREEN_Y-1;j>=0;j--)
{
printf("\n");
for(i=0;i<SCREEN_X;i++)
printf("%c",table_g[i][j]);
}
printf("\n-[ESC=Exit][+=Zoom in][-=Zoom out]");
for(i=0;i<SCREEN_X-34;i++)
printf("-");
c=getch();
if(c=='+')
{
a/=1.1;
b*=1.1;
}
if(c=='-')
{
a*=1.1;
b/=1.1;
}
} while (c!=0x1B);
}
Ultima modifica di repne scasb : 25-02-2007 alle 23:05. |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Aug 2005
Città: Roma sud
Messaggi: 590
|
Quote:
Ti ringrazio molto funziona solo che all'umentare della varianza la curva dovrebbe oltre che allargarsi anche appittirsi come altezza... e al diminuire della varianza dorebbe alzarsi e scringersi invecie si abbassa.... come si potrebbe risolvere? grazie ciao
__________________
-Mac Book intel core duo 1,83GHz, 1,25 Gb RAM -Amd athlon 64 dual core 4400+, 2 GB RAM, Asus a8n-sli Deluxe, totale 500 GB di HARD DISK(4 hdd) |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jul 2004
Messaggi: 1685
|
Quote:
![]() dove mu è la media e sigma^2 la varianza... per ottenere un grafico devi sostituire alla x valori numerici tra -infinito e +infinito... in generale dato che la distribuzione è compresa per il 99.8% tra mu-3sigma e mu+3sigma non dovrebbero interessare valori esterni... e dato che è simmetrica fa' i calcoli solo tra mu e mu+3sigma e poi "rifletti" ciao! |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:55.





















