Soustavy rovnic a program – Matematika – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Soustavy rovnic a program – Matematika – Fórum – Programujte.comSoustavy rovnic a program – Matematika – Fórum – Programujte.com

 

Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
10. 6. 2008   #1
-
0
-

Dobrý den,
jak se dá vypočítat soustava rovnic v programu? Nějak jsme na to zatím nepřišel...

Děkuji za odpověď

Nahlásit jako SPAM
IP: 85.160.75.–
10. 6. 2008   #2
-
0
-

Jak v programu? Treba v Mathematice staci zadat

Solve[{rovnice1,rovnice2,...},{promenna1,promenna2..}]
A vyplivne ti to vysledky. jen si je treba dat bacha ze misto = v rovnicich musis davat ==.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
MZetko0
Stálý člen
11. 6. 2008   #3
-
0
-

Téda, jak to naprogramovat je docela dobrá otázka. Dá se to, ale je to minimálně obtížnost "Veterán".

Nahlásit jako SPAM
IP: 83.208.235.–
"Přirozená inteligence bude umělou brzy překonána. Přirozenou blbost však umělá nemůže nahradit nikdy"
Jára da CIMRMAN
http://www.newgame.cz
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
11. 6. 2008   #4
-
0
-

Já vím, je to celkem těžký, proto se ptám na nějaký základní psotup...

Nahlásit jako SPAM
IP: 217.197.159.–
Spectator0
Věrný člen
11. 6. 2008   #5
-
0
-

To Anonymní uživatel : Z odpovědi MZetka bych řekl, e je postup takový:
1) naučit se soustavy rovnic tak, abys mohl říct, že jsi skill "Killer"
2) naučit se používat jazyk na použitelnou úrveň
3) naučit se prgramovat na Hard level**

:smile3:

Nahlásit jako SPAM
IP: 89.176.112.–
. . .
11. 6. 2008   #6
-
0
-

Nekdo tady z fora programoval nejaky programy na reseni rovnic...MathAtelier nebo tak nejak se to jmenovalo. Podivej se po tom a zeptej se ho :)

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
enzoe
~ Anonymní uživatel
5 příspěvků
11. 6. 2008   #7
-
0
-

To Anonymní uživatel : Ahoj, pro programové řešení soustav lineárních rovnic lze s úspěchem použít Gausovu eliminační metodu (Gaussian elimination). Samo o sobě to není příliš složité, ale jsou potřeba alespoň základní znalosti Lineární algebry (hlavně práce s maticemi a jejich úpravy).

Nahlásit jako SPAM
IP: 88.100.183.–
yaqwsx+9
Posthunter
11. 6. 2008   #8
-
+1
-
Zajímavé

Jen jsem tak zauvažoval, proč dotyčný chce řešit soustavu rovnic a ne rovnici. Tak mě napadlo, jestli on už nemá tu rovnic v základním tvaru ax + bx+ c = 0 a pouze si to neumí vyjádřit....

Takže z 2. rovnice si vyjádřím y = (-a2*x- c2)/b2
a poté dosadím do první: a1*x +b1*((-a2*x- c2)/b2) + c1 = 0
a z toho dostanu: x = (b1*c2 - b2*c1)/(a1*b2 - a2*b1)

Doufám, že jsem pomohl...

Nahlásit jako SPAM
IP: 85.160.67.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Blujacker
~ Moderátor
0
Grafoman
11. 6. 2008   #9
-
0
-

To CommanderZ : to jsem byl já.
Naprogramovat to bylo celkem dost složitý. 5ešil jsem to metodou dosazovací. Nejdřív musíš udělat program na řešení rovnic s více neznámýma (parametrama) a pak ještě podprogram na řešení těch soustav. Celkově to vyšlo tak na 1000 řádek kódu.
Napsat problém, který počítal rovnice v základním tvaru (tedy například ax^2+bx+c=0) není až zas takový problém. Hlavní problém je v upravení toho výrazu, např udělat z (x+5)/(x+1)+5 -> (6x+10)/(x+1)...

Nahlásit jako SPAM
IP: 213.220.226.–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
11. 6. 2008   #10
-
0
-

1000 radek neni moc. Ale stejne respekt :)

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
14. 6. 2008   #11
-
0
-

To yaqwsx : Funguje to, díky, a chci se zeptat jestli jsem vypozoroval správně; když mi vyjde jmenovatel nula - nemá soustava řešení? A když mi vyjde čitatel i jmenovatel nula, tak soustava má nekonečně mnoho řešení?
A nebo jak to je?

Samozřejmě předem děkuji za odpověď

Nahlásit jako SPAM
IP: 85.160.69.–
14. 6. 2008   #12
-
0
-

Rovnice nema reseni, kdyz vyjde nelatny vyraz (0==1) a ma nekonecne mnoho reseni pro vyraz, jehoz hodnota nezalezi na hodnote promenne (1==1)

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
jalinh0
Newbie
16. 6. 2008   #13
-
0
-

nastuduj si něco o determinantech (maticová funkce, která se dá elegantně naimplementovat rekurzivně - pokud ti teda tolik nejde o časovou náročnost výpočtu), jakmile to naimplementuješ, tak výsledky soustavy dostaneš jako podíl dvou takovýchto funkcí...

Nahlásit jako SPAM
IP: 90.177.104.–
byF0
Návštěvník
17. 6. 2008   #14
-
0
-

Ideální pro LAGR (Linearni Algebra a GeometRie) v praxi.

Nahlásit jako SPAM
IP: 90.176.137.–
tmi0
Věrný člen
16. 8. 2008   #15
-
0
-

gaussova eliminacni metoda je na relativne malo radku, ja jsem ji napsal v cecku neco pod stovku a myslim ze by sla jeste zkratit... a ze by byly potreba nejake hlubsi znalosti linearni algebry mi take nepripada, staci vedet ze se radky daji scitat a nasobit), a pripadne poznat singularitu soustavy. ale uz se to tady resilo vicekrat...

Nahlásit jako SPAM
IP: 194.228.34.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
marek
~ Anonymní uživatel
521 příspěvků
16. 8. 2008   #16
-
0
-

na to přece existují algoritmy: Seidelova metoda a Ritzova metoda (založená na Seidlově metodě, ale přesnější a rychlejší) jedná se o přibližné řešení, ale když to dáte do programu, tak zvolíte přesnost a necháte počítač chroustat..
nevýhodou je, že rovnice se musí převést do určitého tvaru, ale to není zas až tak velký problém..
princip Seidelovy metody je v tom, že do rovnic dosazuji, nejdříve absolutní členy, a pak tyto výsledky znovu dosadím dokud se nerovnají nule, nevím jestli je to přesně, ale zájemci si to už najdou.. hlavně je tam podmínka, že tvar rovnic musí být v konvergentním tvaru nebo to nenajde řešení a váš program se zacyklí

Nahlásit jako SPAM
IP: 85.207.219.–
darthdeus0
Stálý člen
16. 8. 2008   #17
-
0
-

Řekl bych že na počítaní soustavy lineárních rovnic není nic těžkého ... stačí si to na papíře vyřešit obecně .. a vzoreček použít + nějaké to ošetření nul atd..

Nahlásit jako SPAM
IP: 88.103.125.–
(1..100).inject(&:+) komu se to nelíbí, ať mi klobouk políbí :P
KIIV
~ Anonymní uživatel
8632 příspěvků
16. 8. 2008   #18
-
0
-

na reseni n soustav o n neznamych je takhle na komp dobra gaussova eliminacni metoda...

mate proste rozsirenou matici prvku:



x + 2y = 3
x - y = 0

matice:
1 2 | 3
1 1 | 0


ale jde to pro libovolne velkou


pak se prvni odecita od vsech dalsich tak aby vysla 0 v prvnim sloupci

pak se pokracuje dalsima dokud nemas pod diagonalou vsude nuly...


no a pak to samy udelas jeste nad diagonalou
a na zaver v diagonale vyjadris vse jako jednotky... vyjde ti pak pekne vse ve vysledku

Nahlásit jako SPAM
IP: 77.237.136.–
Ykita
~ Anonymní uživatel
16 příspěvků
1. 9. 2008   #19
-
0
-

Tak to bych řešil jak zde asi někdo psal pomocí matic, nebo determinanční metodou.


Je to nejlehčí.

Nahlásit jako SPAM
IP: 83.208.22.–
Yety0
Stálý člen
9. 2. 2009   #20
-
0
-

To Anonymní uživatel :
Tady jsem ti napsal nějaký kód na gaussovu eliminační metodu:

#include <stdio.h>
#include <conio.h>
void main ()
{
int n,i,j,k;
double a[10][11],m;
clrscr ();
scanf ("%d",&n);
for (i=0;i<n;i++)
{
for (j=0;j<=n;j++)
{
scanf ("%lf",&a[j][j]);
}}

/* vypis soustavu*/
clrscr ();
printf ("soustava:\n");
for (i=0;j<=n;j++)
{
for (j=0;j<n;j++)
{
printf ("+(%lf)*x%d",a[i][j],j+1);
printf ("=%lf\n",a[i][n]);
}
}
/*gem*/
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
if (j==i) continue;
m=a[j][i]/a[i][i];
for (k=i;k<=n;k++)
{
a[j][k]=a[j][k]-a[i][k]*m;
}
}
}
/*vysledek*/
for (i=0;i<n;i++)
{
printf ("x%d=%lf\n",i+1, a[i][n]/a[i][i]);
}
getche ();
}




Nahlásit jako SPAM
IP: 89.176.102.–
Kapitán A. J. Rimmer vesmírný dobrodruh
Honzc0
Stálý člen
11. 2. 2009   #21
-
+1
-
Zajímavé

Zdravím
v příloze je program pro řešení soustavy lineárních rovnic včetně zdrojáku v Pascalu

Nahlásit jako SPAM
IP: 85.207.57.–
Yety0
Stálý člen
11. 2. 2009   #22
-
0
-

To Honzc : Dobrá práce

Nahlásit jako SPAM
IP: 89.176.102.–
Kapitán A. J. Rimmer vesmírný dobrodruh
**KatuSHkaA*
~ Anonymní uživatel
1 příspěvek
24. 3. 2009   #23
-
0
-

Ahooj.. :smile8: Pomůžete mi plss s jedním příkladem??? Je to učivo: Soustava 2 rovnic o 2 neznámých.. :smile1: Nechápu jen ten začátek.. Pstě nwm, jak poznám, čím mám násobit.. :smile10: :smile10: Tady je zadání: x-y=6
4x+y=4

Nechápu jen ten začátek, jak se přije na to, čím mám násobit ty 2 rovnice..!!!

Nahlásit jako SPAM
IP: 88.101.80.–
Nefaritus
~ Redaktor
+2
Posthunter
24. 3. 2009   #24
-
0
-

To **KatuSHkaA* : Vůbec ničím...tyhle se ti samy odečtou:
x - y = 6
4x + y = 4
----------
5x = 10
x = 2

Z první rovnice váš, že y = x - 6 => y = -4

Nahlásit jako SPAM
IP: 213.191.111.–
Doomista+1
Stálý člen
19. 1. 2011   #25
-
0
-

Proč tak složitě vážení? Na pohodu jsem napsal jednoduchý program, který sice není schopen vyřešit všechny rovnice, ale pokud máme dvě rovnice ve tvaru aX + bY = c (a,b jsou koeficienty, c je výsledek) a dX + eY = f , tak existuje obecný vzorec, který jsem popsal zde: http://cprograming.wz.cz/obsah/vzorce.html

Nahlásit jako SPAM
IP: 195.113.191.–
Na vše stačí iostream...
Nefaritus
~ Redaktor
+2
Posthunter
19. 1. 2011   #26
-
0
-

To Doomista : Jde to i jednodušeji - determinanty. Ty se dají snadno spočítat až do matice 3x3 (respektive 3x4), pak se musela použít např. Laplaceova metoda.

Nahlásit jako SPAM
IP: 93.99.142.–
Honzc0
Stálý člen
20. 1. 2011   #27
-
0
-

To Doomista.
Nevím proč otevíráš téměř 2 roky staré vlákno, když jsi nám nic objevného nesdělil.
Píšeš proč tak složitě. To asi proto, že tazatel chtěl vypočítat soustavu rovnic a ne pouze soustavu 2 rovnic, kterou nabízíš ty. Já bych podle tvé logiky mohl taky napsat "obecné" řešení "soustavy" rovnic o jedné neznámé takto:
ax=b
pro a<>0: x=b/a
pro a=0: pro b<>0 nemá soustava řešení
pro b=0 má soustava nekonečně mnoho řešení.
Tvoje obecné řešení má ovšem jednu velikou vadu.
Jak bude vypadat řešení, když ae-bd=0 nebo když b=0.

Nahlásit jako SPAM
IP: 93.181.78.–
pkaaa
~ Anonymní uživatel
3 příspěvky
16. 2. 2015   #28
-
0
-

Ahoj, kde lze nahlédnout tu přílohu, kterou zde autor zmiňuje?

#21 Honzc

Nahlásit jako SPAM
IP: 2001:718:1e03:a01::39b...–
ondrej39+1
Věrný člen
16. 2. 2015   #29
-
0
-

#28 pkaaa
Ten příspěvek je 6 let starý, předpokládám, že daná příloha už dávno neexistuje.

Nahlásit jako SPAM
IP: 46.39.172.–
Inject all the dependencies!
pkaaa
~ Anonymní uživatel
3 příspěvky
16. 2. 2015   #30
-
0
-

#29 ondrej39

Díky za odpověď, bohužel jsem si to myslel

Nahlásit jako SPAM
IP: 2001:718:1e03:a01::39b...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý