Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- /*
- Metody Numeryczne zadanie nr 6
- Przygotował: Dawid Grzeszuk
- Kierunek: Informatyka 3 semestr
- Środowisko: Visual Studio 2015
- Język programowania: C#
- */
- namespace D_RN
- {
- class MetodaSiecznych
- {
- private double x;
- private double x0;
- private double x1;
- private double eps;
- private int liczba_krokow;
- public MetodaSiecznych(double x0,double x1,double eps)
- {
- this.x = 0;
- this.x0 = x0;
- this.x1 = x1;
- this.eps = eps;
- this.liczba_krokow = 0;
- }
- private double liczenie_funkcji(double x)
- {
- return (x - 2 * Math.Exp(-x));
- }
- public double liczenie_siecznej()
- {
- do
- {
- //wykonywanie funkcji
- x = x1 - liczenie_funkcji(x1) * (x1 - x0) / (liczenie_funkcji(x1) - liczenie_funkcji(x0));
- //zamiana wartosci
- x0 = x1;
- x1 = x;
- //zwiekszanie liczby krokow
- liczba_krokow++;
- } while (!(Math.Abs(liczenie_funkcji(x)) < eps));
- return x;
- }
- public double zwroc_liczbe_krokow()
- {
- return liczba_krokow;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- double x0 = -1;
- double x1 = -1;
- double eps;
- while(!(x0>=0 && x0<=1))
- {
- Console.WriteLine("podaj x0 (0<=x0<=1): ");
- x0 = Convert.ToDouble(Console.ReadLine());
- Console.Clear();
- }
- while (!(x1 >= 0 && x1 <= 1))
- {
- Console.WriteLine("podaj x1 (0<=x1<=1): ");
- x1 = Convert.ToDouble(Console.ReadLine());
- Console.Clear();
- }
- Console.WriteLine("podaj epsilon: ");
- eps = Convert.ToDouble(Console.ReadLine());
- Console.Clear();
- MetodaSiecznych obiekt = new MetodaSiecznych(x0, x1, eps);
- Console.WriteLine("wynik to: {0}",obiekt.liczenie_siecznej());
- Console.WriteLine("wynik wyliczono w {0} krokach",obiekt.zwroc_liczbe_krokow());
- Console.WriteLine("dokladnosc wyniku wynosi: {0} \n", eps);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement