Stokes Beweis mit C++



  • Ich habe leider am FSB nicht genug geübt, aber jetzt will ich.
    Danke für die Kommentare::

    //  StokesBeweiss : https://mathinsight.org/stokes_theorem_examples
    
    #include <iostream>
    #include <numbers>
    #include <cmath>
    using namespace std;
    
    
    
    class DoubleIntegral {
    	double y1, z1, deltaY, deltaZ;
    	double value;
    public:
    	DoubleIntegral(double yy1, double zz1, double deltaYY, double deltaZZ) :
    		y1(yy1), z1(zz1), deltaY(deltaYY), deltaZ(deltaZZ) {}
    
    	void vALUE() {
    		double y = y1;
    		double z = z1;
    		value = 0.0;
    		for (y = y1; y <= pow((1 - pow(z,2)),0.5);) {		// y von 0.0 bis sqrt(1 - z^2)
    			
    			for (z = z1; z <= pow((1 - pow(y, 2)), 0.5);) {		// z von 0.0 bis sqrt(1 - y^2)
    				value +=  deltaY * deltaZ;
    				z += deltaZ;
    			}
    			z = z1;
    			y += deltaY;
    		}
    	}
    
    	void print() {
    		cout << "DoubleIntegralValue: " << value << endl;
    	}
    };
    
    float cosin(float x, float y) {
    	return pow(cos(x), 2);
    }
    
    class Integral {
    	float deltaU, u1, u2;
    	float summe;
    public:
    	Integral() {
    		deltaU = 0;
    		u1 = 0;
    		u2 = 0;
    		summe = 0;
    	}
    
    	Integral(float deltU, float uu1, float uu2) : deltaU(deltU),
    		u1(uu1), u2(uu2), summe(0) {}
    
    	float sUMME(float (*func)(float, float)) {
    		int i = 1;
    		for (double v = u1; v <= u2; i++) {
    			summe += func(u1 + deltaU * i, u1 + deltaU * i) * deltaU;
    			v += deltaU;
    		}
    		return summe;
    	}
    	void print() {
    		cout << " Linienintegral  " << summe << endl;
    	}
    
    };
    
    int main() {
    	DoubleIntegral dInteg(0.0, 0.0, 0.0001, 0.0001);
    	dInteg.vALUE();		// the result pi/4
    	dInteg.print();
    
    	Integral intgrl3(0.000001, 0.0, std::numbers::pi / 2);
    	intgrl3.sUMME(cosin);
    	intgrl3.print();
    }
    


    • Deine DoubleIntegral-Klasse ist keine sinnvolle Klasse - das ist eine Funktion, die im Konstruktor die Parameter nimmt, die dann in der einzigen anderen Funktion verwendet wird. Das bietet keinen Vorteil gegenüber einer normalen Funktion. (analog gilt das auch für Integral)

    • Deine Funktionen haben ein komisches Namingschema: erste Buchstabe klein, der Rest schreit rum (vALUE, sUMME). Was soll der Blödsinn?



  • @wob danke, ich werde in Zukunft das meiden.



  • @wob ich wollte nur zeigen, dass einfaches Software sehr komplizierte mathematische Formeln lösen kann. Viele waren Jahrhunderte unlösbar. Das habe ich noch 1987 am FSB Zagreb verstanden und sich jetzt überzeugt. Eine riesige Macht. Danke.


Anmelden zum Antworten