Forum » Šola » Matlab
Matlab
Ciman ::
Živjo.
Zanima kej je tukej pr funkciji solve narobe. Hočem da mi reši kolko je S1 pa S2.
clc;
clear all;
a=4.4; %[m]
b=6.9; %[m]
c=5.7; %[m]
d=6.7; %[m]
F=4.1; %[kN]
alfa=atand(c/a);
beta=atand(d/b);
e1='(-S1)*cos(alfa)+S2*cos(beta)-F=0'
e2='S1*sin(alfa)+S2*sin(beta)=-1'
[S1,S2]=solve('e1','e2')
Zanima kej je tukej pr funkciji solve narobe. Hočem da mi reši kolko je S1 pa S2.
clc;
clear all;
a=4.4; %[m]
b=6.9; %[m]
c=5.7; %[m]
d=6.7; %[m]
F=4.1; %[kN]
alfa=atand(c/a);
beta=atand(d/b);
e1='(-S1)*cos(alfa)+S2*cos(beta)-F=0'
e2='S1*sin(alfa)+S2*sin(beta)=-1'
[S1,S2]=solve('e1','e2')
A. Smith ::
Vnesi tole, pa bo delalo.
Funkciji e1 in e2 si narobe definiral. Ker program ni vedel, da gre za funkciji, spremenljivke v stringu pa niso bile defenirane, je program zapis razumel kot zaporedje nekih znakov brez abstraktnega pomena in funkcija Solve tega ni hotela pogoltniti.
Če hočeš vedeti, kako se v Matlabu definira funkcijo, vpiši 'help function handle'.
clc; clear all; a=4.4; %[m] b=6.9; %[m] c=5.7; %[m] d=6.7; %[m] F=4.1; %[kN] alfa=atand(c/a); beta=atand(d/b); [S1,S2]=solve('(-S1)*cos(alfa)+S2*cos(beta)-F=0','S1*sin(alfa)+S2*sin(beta)=-1')
Funkciji e1 in e2 si narobe definiral. Ker program ni vedel, da gre za funkciji, spremenljivke v stringu pa niso bile defenirane, je program zapis razumel kot zaporedje nekih znakov brez abstraktnega pomena in funkcija Solve tega ni hotela pogoltniti.
Če hočeš vedeti, kako se v Matlabu definira funkcijo, vpiši 'help function handle'.
"Be professional, be polite,
but have a plan to kill everyone you meet".
- General James Mattis
but have a plan to kill everyone you meet".
- General James Mattis
A. Smith ::
Sem si še malo ogledal tole. In ugotovil, da sta do (delujoče) rešitve 2 poti.
To je prva rešitev. Če pravilno vneseš stringe, dobiš rešitev v obliki strukture (struct). V tem objektu - strukturi potem kličeš obe rešitvi. Prva rešitev ima naslov A.S1, druga A.S2.
Vendar pa sta zdaj S1 in S2 še zapisani kot formuli, v kateri je treba vstaviti vse spremenljivke. To storimo ukazom subs.
Druga rešitev:
Ta rešitev temelji na tem, da Matlabu najprej povemo, katere so simbolične spremenljivke (teh ne poznamo). To sta S1 in S2. Uporabim ukaz syms. Izraze vstavim v ukaz solve. Ker rešitvi nista skalarja, ampak simbolična objekta, ju še problikujem nazaj v skalarje z ukazom single.
Rezultat?
S1=-2.1736
S2=5.2183
clc; clear all; a=4.4; %[m] b=6.9; %[m] c=5.7; %[m] d=6.7; %[m] F=4.1; %[kN] alfa=atand(c/a); beta=atand(d/b); e1='(-S1)*cos(alfa)+S2*cos(beta)-F=0' e2='S1*sin(alfa)+S2*sin(beta)=-1' A=solve(e1,e2,'S1','S2') subs(A.S1) subs(A.S2)
To je prva rešitev. Če pravilno vneseš stringe, dobiš rešitev v obliki strukture (struct). V tem objektu - strukturi potem kličeš obe rešitvi. Prva rešitev ima naslov A.S1, druga A.S2.
Vendar pa sta zdaj S1 in S2 še zapisani kot formuli, v kateri je treba vstaviti vse spremenljivke. To storimo ukazom subs.
Druga rešitev:
clc; clear all; a=4.4; %[m] b=6.9; %[m] c=5.7; %[m] d=6.7; %[m] F=4.1; %[kN] alfa=atand(c/a); beta=atand(d/b); syms S1 S2 e1=(-S1)*cos(alfa)+S2*cos(beta)-F e2=S1*sin(alfa)+S2*sin(beta)+1 [S1,S2]=solve(e1,e2) single(S1) single(S2)
Ta rešitev temelji na tem, da Matlabu najprej povemo, katere so simbolične spremenljivke (teh ne poznamo). To sta S1 in S2. Uporabim ukaz syms. Izraze vstavim v ukaz solve. Ker rešitvi nista skalarja, ampak simbolična objekta, ju še problikujem nazaj v skalarje z ukazom single.
Rezultat?
S1=-2.1736
S2=5.2183
"Be professional, be polite,
but have a plan to kill everyone you meet".
- General James Mattis
but have a plan to kill everyone you meet".
- General James Mattis
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | matematika, geometrije v ravnini, telesaOddelek: Šola | 3266 (2635) | manniac |
» | C in računanje kotovOddelek: Programiranje | 6599 (5652) | RatedR |
» | Trigonometrične enačbeOddelek: Šola | 2970 (2544) | ta_ki_tke |
» | diferencialne enačbeOddelek: Loža | 3911 (3599) | overlord_tm |
» | [Fizika] Sile (strani: 1 2 )Oddelek: Šola | 13087 (12176) | seminal |