[C][Matlab] Równanie Laplace'a metodą Jacobiego
-
- Użytkownik
- Posty: 37
- Rejestracja: 7 lis 2011, o 14:43
- Płeć: Kobieta
- Lokalizacja: Gdańsk
- Podziękował: 4 razy
[C][Matlab] Równanie Laplace'a metodą Jacobiego
witam , mam problem z napisaniem w c lub Matlabie programu , który rozwiązuje Równanie Laplacea metoda Jacobiego , dowolny warunek brzegowy, np \(\displaystyle{ [0,1]}\) , z macierza \(\displaystyle{ 11 \times 11}\)... nie wiem kompletnie od czego powinnam zaczac pisac prokram, kod, pomógłby mi ktoś?
Ostatnio zmieniony 19 lis 2012, o 12:01 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania. Całe wyrażenia matematyczne umieszczaj w tagach[latex] [/latex] .
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania. Całe wyrażenia matematyczne umieszczaj w tagach
-
- Użytkownik
- Posty: 37
- Rejestracja: 7 lis 2011, o 14:43
- Płeć: Kobieta
- Lokalizacja: Gdańsk
- Podziękował: 4 razy
[C][Matlab] Równanie Laplace'a metodą Jacobiego
No to spoko. Masz wzór, jaki jest problem, żeby go zapisać w programie?
-
- Użytkownik
- Posty: 37
- Rejestracja: 7 lis 2011, o 14:43
- Płeć: Kobieta
- Lokalizacja: Gdańsk
- Podziękował: 4 razy
[C][Matlab] Równanie Laplace'a metodą Jacobiego
Bo nie zumiem jak mam zaimplementowac pochodną oraz jak stworzyć macierz 11 X11
-
- Użytkownik
- Posty: 37
- Rejestracja: 7 lis 2011, o 14:43
- Płeć: Kobieta
- Lokalizacja: Gdańsk
- Podziękował: 4 razy
[C][Matlab] Równanie Laplace'a metodą Jacobiego
moje zagadnienie jest takie, że mam równanie Laplacea- czyli juz tu sa pochodne... i korzystając z metody Jacobiego, czyli metodą krokó i tworzac macierz 11x11 obliczyć to równanie
[C][Matlab] Równanie Laplace'a metodą Jacobiego
no to zobacz, że w linku nawet słowem nie masz wspomnianych pochodnych
-
- Użytkownik
- Posty: 37
- Rejestracja: 7 lis 2011, o 14:43
- Płeć: Kobieta
- Lokalizacja: Gdańsk
- Podziękował: 4 razy
[C][Matlab] Równanie Laplace'a metodą Jacobiego
Kod: Zaznacz cały
#include<iostream>
#include<fstream>
#include<conio.h>
#include<math.h>
using namespace std;
const int iter = 3000; // liczba iteracji
const float eps = 0.01;
const float pi = 3.141;
const int terms = 100;
const int L =1;
const float step = 0.02;
const float xo = 0.0;
const float yo = 0.0;
float rozmiar = L/step;
double analityczne (double x, double y, int koniec )
{
double suma = 0.0;
for(int n = 1;n <= koniec;n += 2)
{
suma += ((400.0)/(pi*n)) * sin(n*pi*x/L) * sinh(n*pi*y/L)/sinh(n*pi);
}
return suma;
}
main()
{
ofstream dane;
ofstream analt;
dane.open("Wyniki obliczen1.txt");
analt.open("Wyniki analityczne1.txt");
double macierzK [rozmiar+1][rozmiar+1];
double macierzP [rozmiar-1][rozmiar-1];
double macierzA [rozmiar+1][rozmiar+1];
for(int i = 0; i < rozmiar+1; ++i)
{
for(int j = 0; j < rozmiar+1; ++j)
{
if ((i == rozmiar))
{
macierzK[i][j] = 11;
}
else
{
macierzK[i][j]=0.0;
}
} // inicjalizacja macierzy , warunki brzegowe
}
for(int i = 0; i < rozmiar + 1; ++i) // inicjalizacja
{
for(int j = 0; j < rozmiar + 1; ++j)
{
macierzA[i][j] = 0;
}
}
for(int i = 0; i < rozmiar + 1; ++i) // wyniki z formuły analitycznej
{
for(int j = 0; j < rozmiar + 1; ++j)
{
macierzA[i][j] = analityczne(xo + i*step,yo + j*step,terms);
}
}