Der Hausaufgaben Thread

dann musst du nur noch 2 mal die kettenregel anwenden.

du hast (ln(sinx))². nennen wir das mal (ln u)². jetzt einmal die kettenregel, dann ahst du 2(ln u)*(ln u)’.
also 2(ln sinx)*(ln sinx)’. (ln sinx)' benötigt wieder die kettenregel, also sin' x * 1/sinx = cos x/sin x = tan⁻1x. zusammen müsste also 2(ln sinx)tan⁻1 x rauskommen
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
och neee, so habe ich das auch hier stehen gehabt, aber ich kam nicht drauf, das cosx/sinx = tan^-1 ist und damit 1/tanx
hatte hier stehen y' = 2ln sinx * 1/sinx *cos x = 2ln sinx * cosx/sinX

ergebnis ist: y' = 2ln sinx / tanx

danke euch :wink:

werde mich nun an die zweite ableitung machen :)
 
bissel undeutlich geschrieben...

y = ln²(sin (x)) = (ln sin (x)) ²

den Unterschied zwischen ln²x und ln (x)² kenne ich ^^

scheinbar nicht, denn das ist das selbe. man schreibt bei trigonometrischen funktionen oder auch beim ln manchmal die potenz direkt hinter den funktionstyp, damit man eben nicht verwechselt pob das argument im quadrat steht oder eben die funktion.

y = ln²(sin (x)) = (ln sin (x)) ²
diese gleichheit ist einfach nur eine verschiedene schreibweise für ein und das selbe. hat mit der kettenregel nichts zu tun, weil du hier

ln²*(sin(x)) = ( ln*(sin(x)) )²

aüßere mal innere Ableitung (Kettenregel)..

sowas geschrieben hast. das ist nicht die kettenregel, die geht einfach (f o g)(x) = g'(x) * f'(g(x))

---------- Beitrag hinzugefügt um 12:42 ---------- Vorheriger Beitrag war um 12:39 ----------

ob du 1/tan oder cotan oder tan⁻1 stehen hast ist egal, hauptsache du ahst einens davon stehen und somit das richtige ergebniss


ich hab im übrigen auch ein problem :)
ich bin nicht so der c++ crack und hab hier ein problem. ich möchte ein datei öffnen und die hat zu beginn eine besondere struktur. ich hab mir ein struct geschrieben dass zu dieser struktur passt und dachte jetzt ich kann die datei binär einlesen und dann einen zeiger vom typ des structs auf den beginn der datei zeigen lassen (und in meiner vorstellung stehen dann automatishc die richtigen bytes im struct). allerdings kann ich irgendwie nicht richtig casten. kann mir wer sagen ob das überhaupt so geht wie ich mir das vorstelle?
 
Zuletzt bearbeitet:
ist nicht das selbe ;)

I. ln²x = (ln x)²
II. ln x² = 2 lnx
andere schreibweisen, habe es ja nur umgeschrieben, dass es leichter ist..


Ableitung:
I. y' = 2 (ln x) * 1/x = (2ln x) / x
II. y' = 2 * 1/x = 2/x
geometrisch ist das schon ein unterschied^^

c++ mit programmieren hab ich nichts am Hut, studierst Du Informatik?
 
Zuletzt bearbeitet:
schon klar

ln²*(sin(x)) = ( ln*(sin(x)) )²

aüßere mal innere Ableitung (Kettenregel)..

ich fragte dich was der mal-punkt bedeuten soll, nur um sicher zu gehen was du meinst. dann hab ich ja auch gesagt dass ln(x²)=2lnx != (lnx)² ist.

achso, mein "scheinbar nicht, denn das ist das selbe" bezog sich auf dein y = ln²(sin (x)) = (ln sin (x)) ². den das ist überhaupt nciht undeutlich geschrieben, so wie du sagtest. ist ja egal, ja ich studiere informatik
 
Zuletzt bearbeitet:
Der mal Punkt ist dort wirklich sau doof gesetzt, muss ich mir eingestehen!

Ich vermutete es eben, weil Du das Ableiten drauf hast und dann ne c++ Frage stellt.
Danke nochmal vielmals :wink: ist wirklich nicht schwer gewesen, doch bringt es nichts, wenn man den Wald vor lauter Bäumen nimmer sieht :fresse:
 
de rien. bei zu viel bäumen im wald einfach mal ein paar bäume substituieren und dann von aussen nach innen alles der reihe nach umholzen, das sorgt für licht im wald :d

übrigens hast du in post 1352 in 2 zeilen nen fehler, aber das ist wohl der schreibgeschwindigkeit zu verdanken und nicht einnem verständnissfehler :P
 
Zuletzt bearbeitet:
wenn nichts mehr geht, einfach mal substituieren und dann der reihe nach auflösen :fresse: man könnte im wald auch Lichtungen oder stellen mit wenig bäumen suchen, nullstellen oder minimas :fresse2:
 
Ich hab hier ne Aufgabe, für die Programmierer unter euch, bei der ich mal Hilfe bräuchte, als Programm hierfür würde ich Eclipse benutzen :S :


Entwickeln Sie ein java-Programm, das einen vollständigen Tilgungsplan bei gleichbleibender Höhe der Tilgungsraten ausgibt. Die Tilgungsrate ergibt sich aus der Höhe des Kredites geteilt durch die Anzahl der Jahre, die der Kredit laufen soll (Laufzeit). Das letzte kreditfreie Jahr soll auch ausgegeben werden. Am Ende des Tilgungsplanes werden die Gesamtsummen der gezahlten Zinsen und der geleisteten Annuitäten angezeigt. Die Restschuld im laufenden Jahr (aktueller Zeitpunkt t), die Höhe des Zinsbetrages und die Höhe der zu leistenden Annuität berechnen sich nach den unten angegebenen Formeln.

Bilden Sie eine Klasse Tilgungsplan und legen Sie dort mindestens folgende Variablen an:

für Kredit (vom Datentyp double, Initialwert = 420.000 Euro)
für Zinssatz (vom Datentyp double, Initialwert = 6,5 % Prozent)
für Laufzeit (vom Datentyp int, Initialwert = 7 jahre)
für die Tilgungsrate (Kredit geteilt durch Laufzeit)

Die Formeln lauten:

tilgungsrate = kredit / laufzeit
restschuld = kredit - ( t * tilgungsrate), wobei der aktuelle Zeitpunkt t die Werte von 1 bis Ende der Laufzeit - hier 7 - annimmt.
zinsbetrag = zinsatz * (1 - ( t - 1)/ laufzeit ) * kredit
annuitaet = zinsbetrag + tilgungsrate
 
Naja da musst du nicht mal wirklich die Objektorientierung ausnutzen. Ich würde mich da einfach in der Klasse Tilgungsplan eine Methode schreiben die nichts anderes tut als eine Schleife von 1 bis Laufzeit auszuführen in der immer wieder die 4 geforderten Werte ausgibt. Angeworfen wird das ganze aus einer Testklasse heraus. Man könnte hier natürlich die Initialwerte direkt dem Constructor übergeben und schon funkt das ganze für alles übergebene.

Wenn das zu "Bahnhof" führt, einfach sagen =)
 
Ja das führt leider zu ner Menge Bahnhöfen, bin leider noch absoluter Neuling im Programmieren.
Vielleicht könntest du das eventuell etwas verständlicher erklären?

Hab vergessen, der 2. Teil der Aufgabe lautet:

Erweitern Sie das Programm, so dass der Benutzer Eingaben machen kann, um die Höhe des Kredites, die Laufzeit und den Zins festzulegen.
 
Also ich hab da mal ein wenig rumgespielt eben und bin zu folgenden 2 Klassen gekommen: Als Neuling hilft dir das vllt schon ein wenig. Hinweis: Es tut schon etwas es rechnet auch was aus und als Testbeispiel wird das von der Aufgabe geforderte sowie ein ähnliches mit 30000 als Kreditsumme mal durch die Methode gejagt. Was daran interessant ist poste ich unten.

Tilgungsplan.java

Code:
public class Tilgungsplan {
	private double kredit;
	private double zinssatz;
	private int laufzeit;
	private double tilgungsrate;
	
	public Tilgungsplan (double kredit, double zinssatz, int laufzeit) {
		this.kredit = kredit;
		this.zinssatz = zinssatz;
		this.laufzeit = laufzeit;
		this.tilgungsrate = kredit / laufzeit;
	}
	
	public void druckeplan () {
		System.out.println("Drucke Kreditplan...");
		System.out.println("Kreditsumme: "+ kredit);
		System.out.println("Zinssatz: " + zinssatz);
		System.out.println("Laufzeit: " + laufzeit);
		System.out.println("Tilgungsrate: " + tilgungsrate);
		
		double restschuld;
		double zinsbetrag;
		double annuitaet;
		String s = " ";
		
		for (int t = 1; t<=laufzeit; t++) {
			restschuld = kredit - (t * tilgungsrate);
			zinsbetrag = zinssatz * (1 - ((double)t - 1)/laufzeit) * kredit;
			annuitaet = zinsbetrag + tilgungsrate;
			s = "Jahr " + t + ": " + restschuld + " " + zinsbetrag + " " + annuitaet;
			System.out.println(s);
		}
	}
}

test.java
Code:
public class test {
	public static void main (String[] args) {
		Tilgungsplan t = new Tilgungsplan(420000, 0.065, 7);
		t.druckeplan();
		
		Tilgungsplan u = new Tilgungsplan(30000, 0.065, 7);
		u.druckeplan();
	}
}

Ausgabe
Code:
java test
Drucke Kreditplan...
Kreditsumme: 420000.0
Zinssatz: 0.065
Laufzeit: 7
Tilgungsrate: 60000.0

Jahr 1: 360000.0 27300.0 87300.0
Jahr 2: 300000.0 23400.000000000004 83400.0
Jahr 3: 240000.0 19500.0 79500.0
Jahr 4: 180000.0 15600.0 75600.0
Jahr 5: 120000.0 11700.000000000002 71700.0
Jahr 6: 60000.0 7800.0 67800.0
Jahr 7: 0.0 3900.0000000000014 63900.0
Drucke Kreditplan...
Kreditsumme: 30000.0
Zinssatz: 0.065
Laufzeit: 7
Tilgungsrate: 4285.714285714285

Jahr 1: 25714.285714285714 1950.0 6235.714285714285
Jahr 2: 21428.571428571428 1671.4285714285718 5957.142857142857
Jahr 3: 17142.857142857145 1392.857142857143 5678.571428571428
Jahr 4: 12857.142857142859 1114.2857142857142 5400.0
Jahr 5: 8571.428571428572 835.7142857142859 5121.428571428572
Jahr 6: 4285.71428571429 557.1428571428571 4842.857142857142
Jahr 7: 3.637978807091713E-12 278.57142857142867 4564.285714285714

So... Ich hab die Zahlen nun noch nicht schön gemacht, weil sich hier auch was interessantes zeigte. Die Darstellung im Rechner ist nicht genau genug um die Zahlen richtig glatt auszurechnen. Daher ist im 2ten Beispiel auch im Jahr 7 noch ein kleiner Rest übrig. Der Fehler entsteht streng genommen schon bei der zur Berechnung der Rate nötigen Division.

Ob die Zahlenwerte dem Ensprechen was in der Aufgabe gefordert ist musst du mal sehen, da wirst du mehr Ahnung von haben als ich ;)

Ich habe einfach mal die Formeln in den Schleifenrumpf geschrieben und eine nötige Umwandlugn hinzugefügt, weil Java sonst "innen" ganzzahlig dividiert.

Die Testklasse erzeugt sich hier 2 Objekte vom Typ Tilgungsplan und führt für diese jeweils die Methode druckeplan aus. Die Initialbelegung wird dem Tilgungsplan schon beim erzeugen des Objekts übergeben. Vielleicht wäre es hier mindestens genausogut dies beim drucken zu tun, dann muss man sich aber wieder um das Speichern der Variablen Gedanken machen...

Ich hoffe das hilft dir erstmal weiter...

lg floR
 
die überabzählbar vielen reellen zahlen mit endlichem speicher im format einer gleitkommazahl darzustellen gelingt nur sehr selten, das vergessen/ignorieren ziemlich viele programmierer.
 
Gerade deswegen hatte ich ja die zahlen unbereinigt gepostet weil man dieses verhalten da ganz gut sehen kann und einen kleinen Hinweis dabei geschrieben. Stellt man die Ergebnisse auf zwei nachkommastellen gerundet dar, wird der effekt unsichtbar. Je früher einem sowas mal nahegebracht wird desto besser find ich :)

Lg floR
 
wenn ihr euch eine GFS über die Geschichte des Pcs anhört, was muss eurer Meinung nach alles mit rein ?

ich würde sagen ich erkläre die entwicklung von der ersten Rechenmaschine bis hin zu den heutigen (Super)Computern.
Dann vllt noch die dazugehörige Entwicklung der Software. Dann betrachte ich vielleicht noch die entwicklung eines Bauteils näher(Prozessor oder Grafikkarte) und erzähle was sich da so alles getan hat. sonst noch vorschläge ?
 
Hallo,

Ich habe ein mathematisches Problem. Die Gleichung oben links ist gegeben. Für k2 setze ich die Gleichung oben rechts ein. Dann habe ich das Problem wie man auf die Zeile kommt auf die der Pfeil zeigt. Ich hab kein Plan wie man das Problem vernünftig nach k1 auflöst.


Vielen Dank

 
Zuletzt bearbeitet:
Ich würde erstmal das K_strich auf die andere Seite bringen, dann mit -1 multiplizieren. Dann steht da K_strich = K_1 + Bruchundsoweiter* K_1

Wenn man das ganze nun durch K_1 teilt, fällt das auf der rechten Seite weg und Links steht dann K_Strich durch K_1.

Jetzt nimmt man auf beiden Seiten ( )^-1, also die Kehrwerte.

Links steht dann K_1 durch K_strich und rechts 1 durch das Geraffel was vorher da stand. Multipliziert man nun mit K_strich wandert das in den Zähler Links und Rechts steht nur noch das K_1.

Sorry für die unübersichtliche Darstellung.

lg floR
 
Problem gelöst, manchmal sieht man den Wald vor lauter Bäumen nicht. Auf die Idee mit dem Ausklammern wäre ich heute nicht gekommen :wall:

Nochmals Danke
 
Über so Sachen stolper ich auch manchmal. Irgendwann hab ich mir einfach eine Liste gemacht, mit algebraischen Tricks die einem bei sowas oft helfen (Ausklammern, Erweitern, mal auf getrennte Bruchstriche schreiben etc.) und wenn ich irgendwo hänge probier ich die einfach durch. Meistens geht es dann auch weiter.
 
Also mein Code lautet jetzt wie folgt:

package kredit;

import java.util.Scanner;

public class Tilgungsplan {


/**
* @param args
*/
public static void main(String[] args) {

Scanner scanner=new Scanner(System.in);
System.out.println("Wie hoch soll der Kredit sein?");

double KreditEin= scanner.nextDouble();

double Kredit= KreditEin ;

Scanner scanner2=new Scanner(System.in);
System.out.println("Wie hoch soll der Zinssatz sein?");

double ZinssatzEin= scanner.nextDouble();

double Zinssatz= ZinssatzEin;

Scanner scanner3=new Scanner(System.in);
System.out.println("Welche Laufzeit soll der Kredit haben?");

int LaufzeitEin= scanner.nextInt();

int Laufzeit= LaufzeitEin ;
double Tilgungsrate= Kredit/Laufzeit;
int Jahr= 0;

System.out.println("--------Tilgungsplan bei --- gleichbleibenden -- Tilgungsraten---------" );

System.out.println("\n");
System.out.println("fuer einen Kredit von " + Kredit + " ueber " + Laufzeit + " Jahre bei " + Zinssatz + "% Zins" );

System.out.println("\n");

System.out.println("Jahr Schuld<Vorjahr> Zinsbetrag Tilgungsrate Annuitaet");

double restschuld;
double zinsbetrag;
double annuitaet;


for (int i = 1; i<=Laufzeit; i++) {
restschuld = Kredit - ( Jahr * Tilgungsrate);
zinsbetrag = Zinssatz/100 * (1 - ( i - 1)/ Laufzeit ) * restschuld;
annuitaet = zinsbetrag + Tilgungsrate;



System.out.print(Jahr +1 );
System.out.printf("\t%,-8.2f \t", restschuld);
System.out.printf("%,-8.2f \t\t", zinsbetrag);
System.out.printf("%,-8.2f \t\t", Tilgungsrate);
System.out.printf("%,-8.2f \t\t\t\n", annuitaet);

Jahr= Jahr+ 1;

}

}
}

Es klappt auch alles mit dem Scanner etc. aber jetzt brauche ich nochmal Hilfe, hier mal ein Bild wie es bei mir schon fast aussieht:

http://moodle.htw-berlin.de/moodle/file.php/582/pic_ub04/tilgung.jpg

Wie krieg ich am Ende es hin, dass er mir die Gesamtzinsen und Gesamtannuitaeten ausrechnet und anzeigt?
Denke mal auch mit ner "for" Schleife?

---------- Beitrag hinzugefügt um 22:07 ---------- Vorheriger Beitrag war um 20:37 ----------

Hätte da noch ne kleine Aufgabe, bei der benötige ich auch bitte mal Hilfe:

Suchen Sie sich eine Website aus und realisieren mit Hilfe des Programms Ping eine Testreihe.
Schicken Sie Pakete mit unterschiedlicher Länge zu diesem Ziel (10 relativ gleichmäßig verteilte Paketlängen zwischen 32 Byte ---> 60.000 Byte )
Tragen Sie Ihre Testreihe in eine Tabelle ein.

Wie ich etwas anpinge mit der Eingabeaufforderung ist mir klar, aber wie änder ich da die Paketlänge? Mit dem Parameter ping -t -l ?
 
Die Gesamtwerte kannst du in der bereits vorhandenen Schleife mitzählen. Dazu erstellt man sich außerhalb der Schleife sowas wie

Code:
double gesamtzinsen = 0;

und kann dann in der Schleife die Zeile

Code:
gesamtzinsen += zinsbetrag;

hinzufügen.

Nach der Schleife kann man dann immernoch auf gesamtzinsen zugreifen.


Andere Sache: Rechnet dein Schleifenrumpf überhaupt sinnvolle Zinswerte aus? Da passiert nämlich folgendes (es geht um folgende Zeile):

Code:
zinsbetrag = Zinssatz/100 * (1 - ( i - 1)/ Laufzeit ) * restschuld;

i nimmt nun Werte zwischen 1 und iwas meinetwegen 7 an. Damit liegt i-1 im Bereich 0-6. Das wird nun durch die Laufzeit geteilt. In meinem Beispiel ist das 7. Also werden in den Schleifendurchläufen nacheinander 0/7, 1/7, 2/7, ... , 6/7 gerechnet. Da aber sowohl i als auch laufzeit vom Typ int sind dividiert java an dieser Stelle ganzzahlig. Das heißt: 1/7 = 2/7 = 3/7 = 0 (!!!) Bei mir hatte ich deswegen an der Stelle i zu einem double gecastet.
Code:
 
Ja es sind sinnvolle Zinsbeträge, kannst ja mal als Zinsbetrag 10% eingeben, die Werte stimmen alle.
Oder meinst du was anderes?

Wie genau geb ich das dann in die Schleife ein?
 
Interessanterweise tritt dieses Verhalten in deinem Code nicht auf. Wäre für mich mal interessant, warum das eben grade NICHT passiert.
 
Bei mir hatte der Rechner zunächst immer die selben Werte für den zinsbetrag ausgerechnet, weil der Bruch zu einer 0 zusammengefallen war. Und in deinem Code ist die Zeile identisch bis auf das /100 und sie funktioniert so.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh