Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

Zdzisiu

Metody numeryczne?

Rekomendowane odpowiedzi

Przede mną poprawka z koła a nie mam pojęcia jak ruszyć kilku zadań :hmm:

 

1.

"Wykorzystując arkusz kalkulacyjny (lub mathcad) i metodę siecznych wyznaczyć przybliżoną wartość ujemnego pierwiastka równania: x^3 +2,15 z^2 – 5,2x + 7,3025 = 0. Obliczenia numeryczne rozpocząć, gdy przedział, w którym znajduje się pierwiastek zostanie wyznaczony graficznie i jego długość nie przekroczy 0,1 cm. "

 

2.

"W programie Mathcad metodą Newtona wyznaczyć przybliżoną wartość najmniejszego dodatniego pierwiastka równania:

 

x^3+2x^2-11x+1=0

 

obliczenia numeryczne rozpocząć gdy przedział w którym znajduje się pierwiastek zostanie odczytany graficznie i jego długość nie przekroczy 0,1cm"

 

3.

"Wykorzystując arkusz kalkulacyjny i metodę trapezów wyznaczyć przybliżoną wartość całki:

 

ln(1+x)/1+x^2 dx

(całka oznaczona z 1 do 0)

 

Przyjąć należy długość przedziału w przedziale całkowania h = 0,1. Ocenić błąd ."

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Pascala widzę może po raz 3 na oczy :P niemniej dzięki.

 

Właśnie do mnie dotarło że muszę ogarnąć jeszcze taki typ zadań:

 

Wykorzystując ark kalk wyznaczyć metodą Runie Kutla wyznaczyć przybliżoną wartość równania różniczkowego

 

y'=x/y+x^2

 

Przy wart początkowej y(1)=1 przyjmując skok h=0.1 . Wyznaczyć 10 kolejnych wartości y.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Co do pierwszego zadania - mierzenie błędu centymetrami zabrzmiało bardzo matematycznie :D

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Runge-Kutta ktorego rzedu?

 

Jak RK4 to

// Runge-Kutta.cpp
//--------------------------------------------------
//A Runge-Kutta Method for solving Differential Equations
//of the form y'=f(x,y); y(x0)=y0
//--------------------------------------------------

#include <iostream>
#include <iomanip>
using namespace std;

//Define constants
#define X0 0 
#define Y0 0
#define H 0.2
#define N 5

//Define Functions
double f(double x, double y);
double runge(double x, double y);


//Main Function
int main(double x, double y)
{
cout<<"\t*** Euler Method ***"
<<"\n\n";
cout<<" "
<<setw(12)<<"x"<<setw(12)<<"\ty"
<<"\n"
<<"\t------------------------------"
<<"\n";
y=Y0;
for(int i=0;i<=5;i++)
{
x=X0+(i*H);
y=runge(x,y);
cout<<left<<setw(6)<<i<<"|"
<<setprecision(4)<<left<<setw(8)<<"\t"<<x
<<setprecision(4)<<left<<setw(8)<<"\t"<<y;
cout<<"\n\n";
}
cout<<"\n\n";
return 0;
}

double runge(double x, double y)
{
double K1 = (H * f(x,y));
double K2 = (H * f((x + 1 / 2 * H), (y + 1 / 2 * K1)));
double K3 = (H * f((x + 1 / 2 * H), (y + 1 / 2 * K2)));
double K4 = (H * f((x + H), (y + K3)));
double runge = (y + (1 / 6) * (K1 + 2 * K2 + 2 * K3 + K4));
return runge;
}

double f(double x, double y)
{
double f = x+y;
return f;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Mam podobna sytuację;] Byłbym niezmiernie wdzięczny za wszelką pomoc:

 

w mathcadzie:

Stosujac netode Newtona wyznaczyc ujemny pierwiastek rownania:

x^3-2.15x^2-5.2x+7.3025x

z dokładnością 10^-9

 

Za to nie mam pojecia jak sie zabrać

 

I drugie:

Przedstawić wykres różnic pomiedzy wartościami funkcji w węzłach a wartosciami wielomianu interpolacyjnego lanange'a w tych punktach węzłowych dla poniższych danych pomiarowych

 

x | 0.625 | 0.75 | 1.0

y | -18.80859375 | -18.84375 | -18.0

 

 

i tutaj na podstawie tych notatek http://selles.siena.pl/Marcin%20Skany%20No...ian%20Langr.JPG coś naskrobałem ale nawet nie wiem czy dobrze.

 

Bardzo prosze o pomoc.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

1. Racz spojrzec do linka w poscie #2

2. Jezeli nie jest to polecenie wykonania wykresu wielomianu interpolacyjnego(otrzymanego dzieki interpolacji na tych wezlach), to nie wiem.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wyznaczanie calki metoda trapezow jest banalne. Bierzesz wzor i wyznaczasz jego wartosci kolejno inkrementujac x o jakas wartosc (np 0.01). wyznaczasz dwa punkty f(x1) i f(x2) z czego x1 = 0.01 a x2 = 0.02. Masz dwa punkty na wspolrzednych i dwa punkty na osi x (y1, y2, x1, x2). Wzorem na pole trapezu wyznaczasz jego pole. Sumujesz je z kolejnymi polami z x2 i x3. Potem z x3 i x4 i tak do konca. Suma pol to calka :)

 

np:

 

for (float  x = 0; x<1; x = x+0.01)
{
 x1 = x;
 x2 = x1 + 0.01;
 y1 = ln(1+x1)/1+x1^2;
 y2 = ln(1+x2)/1+(x2)^2;
 pole = pole + WyznaczPoleTrapezu(x1,y1,x2,y2);
}

 

Czworokat tworzacy trapez to bedzie (x1,0)(x1,y1)(x2,y2)(x2,0)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...