22 Mart 2016 Salı

C# Maclaurin Series Calculator

C# Maclaurin Series Calculator 


Maclaurin serileri günümüz, fonksiyon sonuçlarına yaklaşımda bulunmak amacıyla yoğun olarak kullanılmaktadır. Sizden istenen aşağıdaki resimde verilen form uygulamasını gerçekleştirmenizdir.

[caption id="attachment_177" align="aligncenter" width="272"]C# Maclaurin Series Calculator C# Maclaurin Series Calculator[/caption]

Bu uygulama kullanıcıdan:
1. Yaklaşımda bulunulması istenen fonksiyonu seçmesini (Equation: ComboBox)
2. İstenilen input değerinin (x) girilmesini (Input: TextBox)
3. Eğer kullanılacak olan fonksiyon trigonometrik bir fonksiyon ise, input olarak girilen değerin
derece olarak mı, yoksa radyan olarak mı verildiğinin belirtilmesini (RadioButtons)
4. Hesaplama sırasında maximum kaç iterasyando tamamlanması gerektiğini (Max Iteration
CheckBox & TextBox)
5. Hesaplama sırasında göz önünde bulundurulması gereken eşik değerini (Thresshold CheckBox
& TextBox)
Alacak ve Calculate butonuna basıldığında verilen parametrelere uygun olan sonucu oluşturacak ve
sonucu bir MessageBox da gösterecektir.
Equation ComboBox:
Bu ComboBox hesaplanacak fonksiyonun seçilmesinde kullanılır. Sizden istenen fonksiyonlar şu
şekildedir.
 exp(x)
 1/(1-x)
 1/((1-x)^2)
 sin(x)
 cos(x)
 arcsin(x)
 arccos(x)
 sinh(x)
 cosh(x)
Kullanıcı bu ComboBox ın içeriğini her değiştirdiğinde, derece/radyan seçimi yapılan radio Buttonların
Enable durumu güncellenecektir.
Max Iteration:
Max iteration hesaplama sırasında kullanılacak olan terim sayısını göstermektedir. Örneğin 5 girilen
max iteration değeri için exponential fonksiyonuna yaklaşılmak isteniyorsa. Maclaurin serisinin ilk 5
terimi toplama dahil edilip sonuç oluşturulacaktır. Bu TextBox ın Enable durumu yanındaki CheckBox
ın Check olma durumuna bağlıdır.
Thresshold:
Thresshold değeri hesaplamanın sonlanmasını belirleyen bir başka parametredir. Eğer herhangi bir
iterasyonda, ilgili iterasyona ait elemanın değeri Thresshold değerinin altındaysa, hesaplamaya devam
etmenin gerek olmadığı anlamına gelir. Mevcut sonuç geri döndürülür. Bu TextBox ın Enable olma
durumu yanındaki CheckBox ın Check olma durumuna bağlıdır.

In English :
C# Maclaurin Series Calculator
Maclaurin series today, the function has been used extensively in order to approach the problem. You is your realization of the desired application form given in the picture below.
This application user to:
1 to select the desired function in the presence of Approach (Equation: ComboBox)
2. Select the desired input value (x) to be entered (Input: TextBox)
3. The function of a trigonometric function which will be used if the value entered as input
Have a degree, or to specify that it be given in radians (RadioButtons)
4. During my maximum number of calculations that need to be completed iterasyando (Max Iteration
CheckBox & TextBox)
5. the threshold that must be taken into account during the calculation (Thresshold checkbox
& TextBox)
Receivables and create the results will conform to the parameters and pressing the button Calculator
the results will show a MessageBox.
Equation ComboBox:
The ComboBox is used to select the function to be calculated. You requested the following functions
It is such.
 exp (x)
 1 / (1-x)
 1 / ((1-x) ^ 2)
 sin (x)
 cos (x)
 arcsin (x)
 arccos (x)
 sinh (x)
 cosh (x)
When the user ComboBox The contents of each change, degrees / radians selection has been made of the radio Button
Enable status will be updated.
Max Iteration:
Max shows iteration of the number of terms that will be used during the calculation. For example, 5 entered
If asked to approach the exponential function for maximum iteration value. The first of the series of Maclaurin 5
Term results are included collection will be created. This TextBox checkbox next to Enable status
s depends on the status check.
Thresshold:
Thresshold value is another parameter that determines the ending of the calculation. If you have any
In iteration, Thresshold value is below the value of the related elements of the iteration continues computing
It means that there is no need of transport. The present result is returned. Enable the fact that this TextBox
status depends on the status check checkbox next to s.

[caption id="attachment_178" align="alignnone" width="399"]C# Maclaurin Series Calculator C# Maclaurin Series Calculator[/caption]

ÇÖZÜM/Solution:

Proje indir / Project Download: https://www.dropbox.com/s/bj551w6531ll5sd/SeriesCalculatorProject.rar?dl=0

c# Maclaurin Series Calculator

Saf Kod / Pure Codes:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SeriesCalculatorProject
{
public class SeriesCalculatorHelper
{

private const String EXP = "exp(x)";
private const String POLY1 = "1/(1-x)";
private const String POLY2 = "1/((1-x)^2)";
private const String SIN= "sin(x)";
private const String COS = "cos(x)";
private const String ARCSIN = "arcsin(x)";
private const String ARCCOS = "arccos(x)";
private const String SINH = "sinh(x)";
private const String COSH = "cosh(x)";

public SeriesCalculatorHelper()
{
}

public bool IsTrigonometric(string funcText)
{
return funcText.Equals(SIN) || funcText.Equals(COS) || funcText.Equals(SINH) || funcText.Equals(COSH);
}

public Double CalculateResult(string equationType, double x, int maxIteration, double thressHold)
{
Double result = 0;
switch (equationType)
{
case EXP:
result = CalculateExponential(x, maxIteration, thressHold);
break;
case POLY1:
result = CalculatePoly1(x, maxIteration, thressHold);
break;
case POLY2:
result = CalculatePoly2(x, maxIteration, thressHold);
break;
case SIN:
result = CalculateSin(x, maxIteration, thressHold);
break;
case COS:
result = CalculateCos(x, maxIteration, thressHold);
break;
case ARCSIN:
result = CalculateArcSin(x, maxIteration, thressHold);
break;
case ARCCOS:
result = CalculateArcCos(x, maxIteration, thressHold);
break;
case SINH:
result = CalculateSinH(x, maxIteration, thressHold);
break;
case COSH:
result = CalculateCosH(x, maxIteration, thressHold);
break;
default:
break;
}

return result;
}

private double CalculateExponential(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 0; n < maxIteration; n++)
{
double currentValue = Power(x, n) / Factorial(n);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;

}
private double CalculatePoly1(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 0; n < maxIteration; n++)
{
double currentValue = Power(x, n);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;
}

private double CalculatePoly2(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 1; n <= maxIteration; n++)
{
double currentValue = n * Power(x, n - 1);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;
}

private double CalculateSin(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 0; n < maxIteration; n++)
{
double currentValue = ( Power(-1, n) / Factorial(2*n + 1) ) * Power(x, 2*n + 1);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;
}

private double CalculateCos(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 0; n < maxIteration; n++)
{
double currentValue = (Power(-1, n) / Factorial(2 * n)) * Power(x, 2 * n);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;
}

private double CalculateArcSin(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 0; n < maxIteration; n++)
{
double currentValue = ((Factorial(2*n))/(Power(4, n)*Power(Factorial(n), 2)*(2*n + 1)))*
Power(x, 2*n + 1);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;
}

private double CalculateArcCos(double x, int maxIteration, double thressHold)
{
return (Math.PI/2) - CalculateArcSin(x, maxIteration, thressHold);
}

private double CalculateSinH(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 0; n < maxIteration; n++)
{
double currentValue = Power(x, 2*n + 1)/Factorial(2*n + 1);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;
}

private double CalculateCosH(double x, int maxIteration, double thressHold)
{
double result = 0;

for (int n = 0; n < maxIteration; n++)
{
double currentValue = Power(x, 2 * n) / Factorial(2 * n);
result += currentValue;

if (Math.Abs(currentValue) < thressHold) break;
}

return result;
}

private int Factorial(int number)
{
if (number <= 1) return 1;

int result = 1;

for (int i = 2; i <= number; i++)
{
result *= i;
}

return result;

}

private Double Power(double x, double n)
{
return Math.Pow(x, n);
}

}
}

c# Maclaurin Series Calculator
c# Maclaurin Series Calculator

 

 

1 yorum: