Пример #1
0
int main()
{
	// Wyrażenie sin( (x + 2) * x). Rozwijam w x0 = 3.5; liczę wartość w 4.0
	Jet<double> x ( 5);
	x.set(0, 3.5);
	x.set(1, 1.0);
	
	Jet<double> c2 ( 5);
	c2.set(0, 2.0);
	
	
	cout<<"wynik: "<<getTaylor(sin( (x+c2) * x) , x.get(0), 4.0)<<endl;
	cout<<"wynik oczekiwany: "<< sin( (4.0 + 2) * 4.0) <<endl;
	
	// Wyrażenie pow( 2.0/x + 2, 2.72). Rozwijam w x0 = 3.5; liczę wartość w 4.0
	cout<<"wynik: "<<getTaylor(pow( c2/x + c2, 2.72) , x.get(0), 4.0)<<endl;
	cout<<"wynik oczekiwany: "<<  pow( 2.0/4.0 + 2.0, 2.72) <<endl;
	
	// Wyrażenie log( x/(x+2) +2 + sin(cos(x))) . Rozwijam w x0 = 3.5; liczę wartość w 4.0
	cout<<"wynik: "<<getTaylor(log(x/(x+c2) +c2 + sin(cos(x))) , x.get(0), 4.0)<<endl;
	cout<<"wynik oczekiwany: "<<  log(4.0/(4.0+2.0) +2.0 + sin(cos(4.0))) <<endl;
	
	
	
	// Wyrażenie sin(y) całuję od 0 do 2 PI. 
	Jet<double> y ( 21);
	y.set(0, 0.0);
	y.set(1, 1.0);
	
	cout<<"wynik: "<< integrate(sin(y),y.get(0), 0.0, 2.0 * M_PI, 200, 34)<<endl;
	cout<<"oczekiwnany: 0"<<endl;
	
	return 0;
}
Пример #2
0
Jet<Type> operator-(Jet<Type>& left, Jet<Type>& right)
{
	if(left.length() != right.length() )
		throw; // Krzycz o problemach
	Jet<Type> middle(left.length());
	
	for(int i = 0; i < left.length(); i++)
	{
		middle.set(i, left.get(i) - right.get(i));
	}
	return middle;
}
Пример #3
0
Jet<Type> operator*(Jet<Type>& left, Jet<Type>& right)
{
	if(left.length() != right.length() )
		throw; // Krzycz o problemach
	Jet<Type> middle(left.length());
	
	for(int i = 0; i < left.length(); i++)
	{
		Type acc = Type();
		for(int j = 0; j  <=  i; j ++)
		{
			acc += left.get(j) * right.get(i - j);
		}
		middle.set(i, acc);
	}
	return middle;
}
Пример #4
0
Type getTaylor(const Jet<Type> &jet, const Type &x0, const Type &x, int n = -1)
{
	Type out = 0;
	Type powerAcc = 1;
	
	if(n == -1) n = jet.length();
	
	for(int i = 0; i < n; i++)
	{
		out += jet.get(i) * powerAcc;
		powerAcc *= (x - x0);
		
	}
	
	return out;
}