Breuken - Wiskunde - vereenvoudigen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Wat is nu het probleem? De bewerking word volledig uitgewerkt. Is er een mogelijkheid om de breuken maximaal te vereenvoudigen (en niet volledig uit te werken) of kan dit gewoon niet.
(De antwoorden zijn altijd anders naar gelang welke getallen je invoert!)
uitkomst van het script:
Wat zou het moeten zijn:
Is dit mogelijk? Zo ja: Hoe? Zo nee: is dit mogelijk in een andere taal?
Je moet het niet volledig uitrekenen.
Neen, dit zijn oefeningen zonder rekenmachine, gewoon de formule toepassen en zo ver mogelijk vereenvoudigen. 8/4 wordt dus 2 maar 3/2 blijft gewoon 3/2
@ Kris, bij dit voorbeeld zijn er net 2 oplossingen "5+?13/6" en het tegengestelde "-5+?13/6"
Dit dient voor 2de graads vergelijkingen op te lossen
Dus $D is de
Gewijzigd op 24/01/2011 18:14:19 door Jasper DS
x1,2 = (b² + vierkantswortel(4ac)) / 2a of (b² - vierkantswortel(4ac)) / 2a
Gewijzigd op 24/01/2011 17:31:45 door Kris Peeters
edit: ik denk dat wat je schrijft niet helemaal correct is.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
standaardvorm: ax+bx+c=0 (met a niet gelijk aan 0)
D = b-4ac
D<0 oplossing bestaat niet
D=0 1 oplossing
D>0 2 oplossingen
D = b-4ac
D<0 oplossing bestaat niet
D=0 1 oplossing
D>0 2 oplossingen
Gewijzigd op 24/01/2011 17:36:33 door Jasper DS
Formules schrijven in tekst is uiteraard wat lastig. Op papier geeft dat beter.
(even eten)
Als je daar omheen wil werken, ben je wel even bezig...
Je kan bijvoorbeeld een object maken, dat samengesteld cijfers kan dragen en zichzelf kan vereenvouigen. Dan moet je nog regels maken om die samenstellingen met elkaar te delen/vermenigvuldigen/af te trekken etc. lastig hoor.
Als je je beperkt tot gehele getallen als a, b en c, is het niet zo moeilijk.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
function abc($a, $b, $c) {
$d2 = pow($b, 2) - 4 * $a * $b;
if($d2 < 0)
return 'Kan niet';
if($d2 == 0)
return 'x = '.implode('/', vereenvoudigBreuk(-$b, 2*$a));
if(is_int(sqrt($d2)) {
$x1boven = -$b + sqrt($d2);
$x1 = implode('/', vereenvoudigBreuk($x1boven, 2*$a));
$x2boven = -$b - sqrt($d2);
$x2 = implode('/', vereenvoudigBreuk($x2boven, 2*$a));
} else {
$x1 = '('.-$b.'+'.vereenvoudigWortel($d2).')/'.2*$a;
$x1 = '('.-$b.'-'.vereenvoudigWortel($d2).')/'.2*$a;
}
return 'x = '.$x1.' V x = '.$x2;
}
function vereenvoudigBreuk($a, $b) {
$positief = $a*$b >= 0;
$a = abs($a);
$b = abs($b);
for($i = min(array($a, $b)); $i > 1; --$i)
if(is_int($a/$i) && is_int($b/$i)) {
$a /= $i;
$b /= $i;
}
if(!$positief)
$a *= -1;
return array($a, $b);
}
function vereenvoudigWortel($n) {
$a = 1;
for($i = floor(sqrt($n)); $i > 1; --$i)
if(is_int($n / pow($i, 2)) {
$a *= $i;
$n /= pow($i, 2);
}
if($a != 1)
return $a.'?'.$n;
return '?'.$n;
}
?>
function abc($a, $b, $c) {
$d2 = pow($b, 2) - 4 * $a * $b;
if($d2 < 0)
return 'Kan niet';
if($d2 == 0)
return 'x = '.implode('/', vereenvoudigBreuk(-$b, 2*$a));
if(is_int(sqrt($d2)) {
$x1boven = -$b + sqrt($d2);
$x1 = implode('/', vereenvoudigBreuk($x1boven, 2*$a));
$x2boven = -$b - sqrt($d2);
$x2 = implode('/', vereenvoudigBreuk($x2boven, 2*$a));
} else {
$x1 = '('.-$b.'+'.vereenvoudigWortel($d2).')/'.2*$a;
$x1 = '('.-$b.'-'.vereenvoudigWortel($d2).')/'.2*$a;
}
return 'x = '.$x1.' V x = '.$x2;
}
function vereenvoudigBreuk($a, $b) {
$positief = $a*$b >= 0;
$a = abs($a);
$b = abs($b);
for($i = min(array($a, $b)); $i > 1; --$i)
if(is_int($a/$i) && is_int($b/$i)) {
$a /= $i;
$b /= $i;
}
if(!$positief)
$a *= -1;
return array($a, $b);
}
function vereenvoudigWortel($n) {
$a = 1;
for($i = floor(sqrt($n)); $i > 1; --$i)
if(is_int($n / pow($i, 2)) {
$a *= $i;
$n /= pow($i, 2);
}
if($a != 1)
return $a.'?'.$n;
return '?'.$n;
}
?>
Volgens mij werkt t zo. Of die for-regels optimaal zijn, weet ik niet.
Gewijzigd op 24/01/2011 18:11:52 door Pim -
PHP Jasper op 24/01/2011 17:24:30:
ik zou natuurlijk ook bij elke stap kunnen gaan kijken of het een geheel getal vormt maar dat is wat te veel werk niet?
@ Kris, bij dit voorbeeld zijn er net 2 oplossingen "5+?13/6" en het tegengestelde "-5+?13/6"
Dit dient voor 2de graads vergelijkingen op te lossen
Dus $D is de dividend (of zo iets) en dan moet je de regeltjes volgen (switch)
@ Kris, bij dit voorbeeld zijn er net 2 oplossingen "5+?13/6" en het tegengestelde "-5+?13/6"
Dit dient voor 2de graads vergelijkingen op te lossen
Dus $D is de dividend (of zo iets) en dan moet je de regeltjes volgen (switch)
Discriminant. Leuk script ik heb zo iets in me gr. Als het script klaar is kun je hem dan posten?
zal ik doen, eerst even naar het script van pim kijken
Ik heb eens een klein vb2008 scriptje gemaakt voor school die de abc formule gebruikt.
En deze geeft deze uitwerking:
y = x²+4x+3
a = 1 b = 4 c = 3
d = (4)² - 4 x 1 x 3 = 4
x = (-4 - ?4) / (2 x 1) V x = (-4 + ?4) / (2 x 1)
x = -3 V x = -1
Gewijzigd op 24/01/2011 18:57:07 door Yea Rupie
Heb je die code online?
De oplossingen van een tweedegraadsvergelijking in x, gegeven door
ax^2 + bx + c = 0
zijn
x1 = (-b + sqrt(b^2 - 4*a*c)) / 2*a
x2 = (-b - sqrt(b^2 - 4*a*c)) / 2*a
Je zou objecten kunnen schrijven voor een breuk en een wortel, daarin de rekenregels implementeren, zodat je daarmee kunt vereenvoudigen. Leuk klusje, ook iets moois als practicumopdracht voor "beginners" in de OO, denk ik.
er zijn niet altijd 2 oplossingen soms is er geen oplossing, soms is er 1 oplossing en soms zijn er 2 oplossingen
Code (php)
Ik vond dit hier nog ergens tussen mijn bestanden. Nja, is maar beperkt in mogelijkheden en vrij traag.
b: Het is een opdracht die je zonder rekenmachine moet doen.
Conclusie: Doe het met de hand en verkloot je tijd niet aan deze onzin.
Edit: vind dit wel een koffiehoektopic.
Ik probeer wel meer school opdrachten om te zetten naar een scriptje, is altijd een mooie oefening voor mijn phpskils :p
PHP Jasper op 24/01/2011 19:40:04:
er zijn niet altijd 2 oplossingen soms is er geen oplossing, soms is er 1 oplossing en soms zijn er 2 oplossingen
Dat hangt dan weer van je kennis van de theorie af.
Een n-de graadsvergelijking heeft altijd n oplossingen. Soms vallen twee of meer van die oplossingen samen, soms zijn ze niet reeel.
In het geval van de tweedegraadsvergelijking kun je dat zien aan de discriminant. Is die positief, dan heb je twee reele oplossingen; is die nul, dan vallen de twee oplossingen samen; is hij negatief, dan zijn er twee complexe oplossingen.
ja dat klopt.