Forma chiusa di integrale
Salve a tutti!
Potete aiutarmi con questo integrale? Esiste la sua soluzione in forma chiusa? Grazie! |
Quote:
\psi è la funzione poligamma di ordine 0 e \psi^{(1)} quella di ordine 1, tutto il resto quasi ovvio |
mi riuscite a risolvere
? |
Quote:
|
Quote:
come si svolge? |
Quote:
1) cosa sarebbe la "a"? 2) l'indice inferiore della sommatoria, se non leggo male, mi pare "n+1", cosa che mi sembra assurda, semmai sarà n diverso da 1 3) i coefficienti b_n e a_n che moltiplicano rispettivamente seno e coseno che sono? interpreto io a_n, dato che mi pare strano sia "6n" 4) L che è? insomma quello che c'è scritto su quella lavagna secondo me è molto impreciso, certamente non si può dire se è risolvibile o meno perché c'è scritto tutto e nulla... quello che è scritto è solo una serie di fourier di cui non puoi studiare convergenza dato che non sono specificati né i coefficienti, ne tantomeno la funzione da sviluppare. |
Sembrerebbe una serie di Fourier. (Quell'"n+1" immagino sia stato scritto per sbaglio al posto di "n=1".) Bisognerebbe capire di cosa...
|
Problema: supponiamo di avere una misura in gradi, per esempio (30+-0.2)°. In radianti è (0.52+-0.003)(non importano le cifre significative, è un esempio). Ora, faccio il seno di entrambe, ottenendo sin(30*pi/180) e sin(0.52). Il fattore pi/180 lo metto per avere un numero puro come argomento del seno. Per l'errore devo propagare, e il problema sorge quando il fattore pi/180 viene portato fuori: ho (pi/180)*cos(30*pi/180)*0.02*(pi/180) e per l'altro solo cos(0.003)*0.003. Il risultato viene diverso, dove ho sbagliato?
Sent from my GT-I9505 using Tapatalk 4 Edit: il 180 fuori porta un problema di unità di misura però... |
Edit
|
Quote:
cos(0.52)*0.003 invece, se usi i risultati in gradi e usi il fattore di conversione all'interno ocio perché la formula di propagazione dice che sigma_f = |f'(x)| sigma_x cioé, in questo caso la tua misura è l'angolo in gradi, da cui valuti f(x) = sin(Pi/180 x) in corrispondenza del valore x misurato... usando la propagazione: cos(Pi/180 30) Pi/180 0.2 e i due risultati coincidono... |
Quote:
Sent from my GT-I9505 using Tapatalk 4 |
help
Ciao a tutti, sono dario fgx, ma non riesco più a recuperare la mia password di accesso.
Mi servirebbe aiuto con questa equazione; y’’ + 16 y = - 120 y’ |y’| ho provato a risolverla in matlab con dsolve ma non riesce. Qualcuno può aiutarmi? Grazie |
Su http://www.hwupgrade.it/forum/regolamento.php viene spiegato non solo che non si possono avere due account diversi, ma anche come recuperare la password.
Ragion per cui: cortesemente, mandami un pvt con la vecchia utenza quando l'hai recuperata. |
Quote:
Ho chiesto all'amministratore del forum che ha associato il mio nick ad un nuovo indirizzo mail ora sono operativo. Chiedo scusa per la violazione Torno a chiedere aiuto... Grazie |
Considerando questo forse dovresti usare l'NDSolve di Mathematica invece di Matlab se puoi (magari prendendo spunto dai grafici che vedi li' per le condizioni iniziali).
Se comincia a darti errori strani, ti riscrive True o False quando metti le condizioni iniziali,ti dice che in quel posto ci sarebbero dovute essere altre equazioni etc, chiudi e riapri il programma (a volte basta dimenticarsi di mettere il doppio = e mettendone uno solo, rimangono in memoria i valori incasinando tutto il resto da quel momento in poi... un'altra soluzione è un comando di kill che però non ricordo). Di norma devi procedere con un s = NDSolve... e subito dopo plotti (trovi gli esempi nell'aiuto già fatti) p.s. non sono un esperto, in caso aspetta altri : ) |
Quote:
|
Quote:
Ti ringrazio, si mi aspetto una soluzione oscillante smorzata, quindi quel tool mi pare vada bene. |
Quote:
E' la soluzione ad un problema di idraulica. per farvi capire quel che mi serve allego un pdf. alla prima pagina di questo pdf si analizza il caso 1. A pagina tre di questo pdf lui fornisce una soluzione semplificata (in assenza di attriti viscosi). A me serve la soluzione con attriti viscosi, quindi risolvere l'equazione completa. le condizioni al contorno sono: y(0) = y0 y'(0) = 0 Grazie edit: non mi allega il file perchè è grosso |
Quote:
(es gli dai l'equazione dell'oscillatore armonico omogeneo, magari senza dare le condizioni iniziali e lui ti da la soluzione generale A Cos(t) + B Sin(t) ). Soluzione esatta -> no problemi di approssimazione numerica se l'equ diff è infame è obbligato l'uso di un metodo numerico, che comporta sempre approssimazioni numeriche (che possono essere buone o no, ma è un altro discorso questo..) ma soprattutto ti butta fuori la soluzione valutata in una griglia di punti (da cui tramite interpolazione si può ottenere una valutazione in punti che non appartengono alla griglia...). Per quello che ti serve a te basta anche una soluzione di questo tipo. In ogni caso, per avere la soluzione numerica è obbligatorio specificare le condizioni iniziali, quindi quello che tu chiami y0 lo dovresti particolarizzare con un certo valore per ottenere qualcosa. |
Quote:
Allora usando mathematica (che non avevo mai usato), ho ficcato dentro questa espressione: NDsolve[{y[x] + y''[x] == -y'[x]*Abs[y'[x]]}, y[0] = 1, y'[0] = 0] ma non succede nulla. sembra suggerirmi un'altra espressione dalla sintassi più semplice ma non la risolve ugualmente. Suggerimenti? |
Quote:
sol = NDSolve[{y[x] + y''[x] == -y'[x] Abs[y'[x]], y[0] == 1, y'[0] == 0},y[x],{x,xmin,xmax}]; Plot[y[x] /. sol,{x,xmin,xmax}] metti al posto di xmin e xmax il valore di x rispettivamente minimo e massimo che vuoi plottare (ocio alla singolarità a x = -1.7) |
Quote:
la sola forma sembra suggerire un termine di smorzamento viscoso che dipende dal segno della velocitá... che tipo di problema stai affrontando? giusto per sapere |
Considera per esempio l'integrale da 1 ad e di ln(x)/x in dx
Se poni t = ln(x), differenziando ottieni dt = (1/x) in dx Per gli estremi t(1) = ln(1) = 0 t(e) = ln(e) = 1 Diventa integrale da 0 a 1 di t in dt. Li' è la stessa cosa. Come estremi ottieni 0 per l'estremo di sotto (condizione di contorno) e l'altro risultato facendo la sostituzione che dice lui. In pratica ti basta differenziare la y (derivata per incremento, ottenendo derivata seconda di fi rispetto ad x per dx) e ti rendi subito conto che il tutto torna. |
Quote:
Ti ringrazio, purtroppo però provando tra 0 e 10 mi da una serie di errori tipo questo: ReplaceAll::reps: poi sembra che provi a calcolare numericamente (cioè compaiono prorio dei numeri al posto di x nelle espressioni ) ed infine si blocca dopo alcuni tentativi. Ogni ulteriore scontato dettaglio è gradito perchè non ho mai usato prima questo sw. Ho solo aperto il notebook di mathematica e ficcato dentro la tua espressione tra 0 e 10. |
Quote:
|
1 Allegato(i)
Quote:
sol = NDSolve[{y[x] + y''[x] == -y'[x] Abs[y'[x]], y[0] == 1, y'[0] == 0}, y[x], {x, 0, 10}]; Plot[y[x] /. sol, {x, 0, 10}] |
Quote:
Riprova chiudendo e riaprendo... e guarda gli esempi sia in internet che nell'aiuto : ) |
Quote:
Ora considerando che la mia espressione in realtà è: -LS/(gΩ)y'' - 2y = (1/(2g))y'|y'|(Lλ/D) come scrivo un codice veloce che mi permetta di fare una analisi al variare di λ, D, L, S, Ω ? In matlab si poteva fare in modo che in input venissero chiesti questi parametri. Ad esempio sarebbe utile un codice che mi permettesse di plottare la soluzione al variare di λ tra 0 e 100 (ad esempio). Grazie mille! |
Quote:
credo mancasse la S maiuscola in NDSolve |
Quote:
f[omega_, L_, d_, S_, lambda_, g_] := NDSolve[{-L S/(g omega) y''[x] - 2 y[x] == 1/(2 g) y'[x] Abs[y'[x]] L lambda/d , y[0] == 1, y'[0] == 0}, y[x], {x, 0, 10}]; (* fissi i valori di omega,L,d,S,g qui sotto*) omega = 20. ; L = 1. ; d = 2.; g = 0.2; S = 4.; a = 5; (* è il passo con cui vari lambda da 1 a 100*) fun = Table[y[x] /. f[omega, L, d, S, lambda, g], {lambda, 1, 100, a}]; Plot[fun, {x, 0, 10}] |
Quote:
grande! Ancora grazie! Mi piace questo mathematica! Immagino di poter fare lo stesso giochetto che hai fatto con il parametro lambda per tutti quanti gli altri vero? Ti chiedo ancora una cosa: se voglio calcolare dopo quanto tempo l'ampiezza si è r idotta ad 1/e come faccio? altra cosa: perchè non riesco a plotare y' ? Non dovrebbe bastare cambiare y[x] con y'[x] in fun = Table[y[x] /. f[omega, L, d, S, lambda, g], {lambda, 1, 100, a}]; Plot[fun, {x, 0, 10}][/quote] ? Tnx |
Quote:
aaaahhh capito! :) in pratica la usuale "t" la chiama "y" in quel caso, e come condizioni a contorno (estremi di integrazione) mette quelle scritte all'inizio. Grazie mille!!! :sofico: |
Quote:
ti rispondo velocemente alle tue domande, ma ad occhio credo di non poter fare a meno di dover usare tecnicismi che però, appena si apprendono i concetti base della programmazione mathematica, sono davvero banali; se ti interessa, trovi guide dettagliate nell'help del programma e ovviamente online sul sito wolfram, oltre che libri (ma chi ne ha bisogno con così tanta roba gratis?) 1) si, puoi scegliere di variare un parametro alla volta e plottare le soluzioni al variare di esso, una volta fissati tutti gli altri. cambi semplicemente nel table il nome della variabile su cui cicli (quella tra parentesi graffe prima della fine dell'istruzione, per intenderci) e ti assicuri di aver fissato tutte le altre variabili al valore voluto prima del comando Table. |
Quote:
tnx |
Quote:
imax = Length[fun]; tau = Table[ x /. FindRoot[fun[[i, 1]] == 1/Exp[1], {x, 1}], {i, 1, imax}] implicitamente ho assunto che la funzione al massimo valga 1.; quindi attento, se cambi la condizione iniziale questo comando è da cambiare! controlla sempre che tornino, alla fine sono calcolati numericamente, magari il programma sfasa.. per quanto riguarda la derivata prima cado dalle nubi anche io, perché si fa in quel modo e con altri esempi più semplici la cosa funziona... |
Quote:
Forse va cambiato pure prima? |
Quote:
f[omega_, L_, d_, S_, lambda_, g_] := NDSolve[{-L S/(g omega) y''[x] - 2 y[x] == 1/(2 g) y'[x] Abs[y'[x]] L lambda/d , y[0] == 1, y'[0] == 0}, y, {x, 0, 10}]; (* fissi i valori di omega,L,d,S,g qui sotto*) omega = 20. ; L = 1. ; d = 2.; g = 0.2; S = 4.; a = 5; (* è il passo con cui vari lambda da 1 a 100*) fun = Table[y[x] /. f[omega, L, d, S, lambda, g], {lambda, 1, 100, a}]; funder = Table[ y'[x] /. f[omega, L, d, S, lambda, g], {lambda, 1, 100, a}]; Plot[fun, {x, 0, 10}] Plot[funder, {x, 0, 10},PlotRange->Full] imax = Length[fun]; tau = Table[ x /. FindRoot[fun[[i, 1]] == 1/Exp[1], {x, 1}], {i, 1, imax}] |
Quote:
grazie mille ancora!!! Devo però segnalarti un problema. Usando il nuovo codice sembra che i risultati siano diversi, in particolare dal plot di y sembra che l'oscillazione sia smorzata in tempi molto più lunghi rispetto a prima. Posso chiederti di provare da te il codice con i seguenti parametri? y(0)=0.01 (quindi si deve correggere l'espressione per i tempi di smorzamento) omega = 0.000785; L = 0.1; d = 0.01; g = 9.81; S = 0.001; a = 0.04; lambda da 0 a 0.1 e plottare tutto tra 0 e 30 secondi edit errore mio, non cambia nulla. ora l'unico problema è che non mi calcola i tempi di smorzamento se cambio l'ampiezza iniziale da 1 al valore più realistico di 0.01 |
Quote:
in cima al file aggiungi una variabile (diciamo in, o come ti pare a te), la setti al valore che vuoi come condizione iniziale, e in DNSolve, al posto di y[0] == 1 scrivi y[0] == in; poi modifica il comando FindRoot così: FindRoot[fun[[i, 1]] == in/Exp[1], {x, 1}] nel caso in cui fallisca ancora la ricerca dei tempi di smorzamento, devi cambiare l'ultimo parametro nell'ultima graffa del comando FindRoot, che praticamente è il punto x in cui inizia a trovare numericamente le soluzioni dell'equazione p.s. comunque noto ora che le cose funzionano male quando il moto è oscillante ....tutte le volte che facevo le prove usavo moti smorzati esponenzialmente e lì non ci sono problemi a trovare il tempo di smorzamento... ma se oscilla, beh è tutto un altro discorso!!l'unica cosa che posso consigliarti è questa: trova le posizioni dei massimi e dei minimi e vedi quale si avvicina di più al valore voluto...è una cosa approssimata ma credo che di meglio non si possa fare |
Tutti gli orari sono GMT +1. Ora sono le: 04:38. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.