Funzione con sommatoria in C

di il
11 risposte

Funzione con sommatoria in C

Buongiorno a tutti,
ho un problema. Dovrei scrivere in C (in particolare in Origin C), una funzione contenente una sommatoria, del tipo

y= somm (i; da 1 a 150) cos(a)^(i-1)(1-cos(a))exp(-ix/T1)

dove T1 e a sono dati fissati

Una mano, please? Ci sto semi impazzendo

11 Risposte

  • Re: Funzione con sommatoria in C

    Che cosa e' Origin C?
  • Re: Funzione con sommatoria in C

    Origin è un programma di fitting, una sua estensione è Origin C, semplicemente per dire che lavora con un linguaggio C.
  • Re: Funzione con sommatoria in C

    Y=0

    for(int i=1;i<=150;i++){
    y += f(i);
    }


    f(i) -> funzione applicata a ogni i

    Per cos,sin,pow,ecc guarda in math.h
  • Re: Funzione con sommatoria in C

    Scusa, ma ci stai impazzendo significa che hai scritto del codice (quale) e hai avuto degli errori (quali) ?
  • Re: Funzione con sommatoria in C


    Prova anche a postare le librerie che hai incluso,
    il comando di compilazione.
    Insomma più notizie, altrimenti ti rompi solo la testa =
  • Re: Funzione con sommatoria in C

    E' quello che ho provato anch'io, ma mi dà comunque errori

    #pragma warning(error : 15618)
    #include <origin.h>
    void _nlsfSmallAngles(
    // Fit Parameter(s):
    double M0, double a, double T1, double n,
    // Independent Variable(s):
    double x,
    // Dependent Variable(s):
    double& y)
    {
    // Beginning of editable part

    { int i, y=0;

    for(i=1;i<=n;i++)
    y += M0*(1-cos(a)^(i-1)*(1-cos(a))*exp(-i*x/T1)) + exp(-n*x/T1)*(cos(a))^n;
    }

    }


    E gli errori che mi segnala:
    compiling...
    _nlfSmallAngles.fit
    C:\Users\OriginLab\81\User Files\OriginC\NLSF\_nlfSmallAngles.fit(35) :Error, Function argument y is not used inside the function body
    C:\Users\OriginLab\81\User Files\OriginC\NLSF\_nlfSmallAngles.fit(28) :Error, error(s) found in compiling function _nlsfSmallAngles
    Compile Failed!


    Ora, quello che mi interessa è l'editable part, in quanto la parte prima è diversa perchè, come dicevo prima, lavoro in Origin C
  • Re: Funzione con sommatoria in C

    Attenzione che nei parametri di funzione hai la y
    double& y
    e poi definisci una variabile locale con lo stesso nome
    int i, y=0;
    Prova a cambiare nome alla variabile locale o al parametro
  • Re: Funzione con sommatoria in C

    )^(i
    Occhio che in linguaggio C/C++ '^' è un'operazione binaria. Per la potenza devi usare la funzione pow() in math.h
  • Re: Funzione con sommatoria in C

    candaluar ha scritto:


    Attenzione che nei parametri di funzione hai la y
    double& y
    e poi definisci una variabile locale con lo stesso nome
    int i, y=0;
    Prova a cambiare nome alla variabile locale o al parametro
    Credo debba essere
    int i;
    y=0;
  • Re: Funzione con sommatoria in C

    In Origin C mi riesce a leggere così le potenze, per fortuna

    Unico dubbio, non sono più così sicura che y+=f(i) vada bene.
    Ora riesco a compilare, ma la funzione che risulta non è qualcosa che cresce esponenzialmente o simile, ma una costante.

    Grazie mille comunque a tutti per l'aiuto!
  • Re: Funzione con sommatoria in C

    Y = y + f(i) ???
Devi accedere o registrarti per scrivere nel forum
11 risposte