Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




METODE DE INTEGRARE A ECUATIILOR DIFERENTIALE DE ORDINUL INTAI

Matematica


Universitatea Tehnica Cluj-Napoca

Facultatea de Automatizari si Calculatoare

Sectia Automatica



An 1, Grupa 3111

METODE DE INTEGRARE A ECUAŢIILOR DIFERENŢ 414e49e ;IALE DE ORDINUL ÎNTÂI

Prof. Pop Kun Dorel Student: Imre Attila

Introducere

Se stie ca multe probleme din domeniul fizicii teoretice si al ingineriei se reduc la rezolvarea unor ecuatii sau sisteme de ecuatii diferentiale. Pe când rezolvarea lor analitica se face pe un model idealizat teoretic, transpunerea lor pe calculator presupune efectuarea unui compromis între precizia cu care se calculeaza rezultatul si timpul de rulare al algoritmului.

Integrarea numerica a ecuatiilor diferentiale

Având date:

si

se poate afla solutia y la valori discrete ale lui t.

Metoda lui Euler

Luam dezvoltarea în serie Taylor in vecinatatea lui t0:

Retinem numai primul termen derivat si definim:

pentru a obtine:

Metoda înjumatatirii (de medie)

Se bazeaza pe metoda lui Euler. Aproximarea creste în precizie evaluând panta de doua ori pe fiecare interval de latime h.

Calculam o tentativa a lui y la mijloc:

Re-evaluam panta:

Valoarea finala a lui y la capatul intervalului va fi:

Programul

Programul implementeaza cele doua metode de mai sus si traseaza graficele solutiilor gasite. Se va putea urmari diferenta dintre convergenta solutiilor suprapunând graficele si rulând algoritmii cu un numar variabil de iteratii.

Codul sursa

#include <stdio.h>

#include <stdlib.h>

#include <graphics.h>

#include <math.h>

#include <conio.h>

#include <dos.h>

int SW, SH; // dimensiunile ecranului

double zx, zy, gw, gh; // parametri de afisare

double l_lim, r_lim, u_lim, d_lim, h; // intervalul functiei

// functia

double func_init=0;

double func(double t, double y)

// metoda lui Euler

// rezultatul sub forma de vector valori double

// trabuie specificat numarul de iteratii

void euler(double *ret, int n)

// metoda lui medianei

// rezultatul sub forma de vector valori double

// trabuie specificat numarul de iteratii

void midpoint(double *ret, int n)

// initializare parametri functie:

- alocare memorie

- calculare pas h

double *init_func(int n, double a, double b, double c, double d)

// translatare coord. x in coordonate ecran

int fx(double x)

// translatare coord. y in coordonate ecran

int fy(double y)

// setare dimensiuni ecran

// necesare pentru afisare

void set_viewport(int a, int b, int c, int d)

// trasam graficul

void plot(double *data, int n, int col)

// initializare ecran video

void init_graphics()

int main()

closegraph();

return 0;


Document Info


Accesari: 3259
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )