Skocz do zawartości

Matlab układy równań nieliniowych


davidpi

Pomocna odpowiedź

Witam.

Potrzebuje rozwiązać układ dwóch równań nieliniowych w matlabie. A, że słabo znam ten program to proszę o pomoc.

Równania maja taką postać:

100*cos(f1) + 200*cos(f1 + f2)*0,766 + 90=282.45

10 - 200*sin(f1 + f2)*0.766 - 100*sin(f1)=161.5668

Czy znacie jakąś funkcję, za pomocą której mógłbym wyznaczyć f1 i f2?

Link do komentarza
Share on other sites

Nie mam matlaba, ale do rozwiązania takiego układu potrzebny jest moduł Optimalization.

Następnie używasz

fsolve() - spójrz na przykład nr 1. Gotowego kodu Ci nie wklejam, bo nie chciałbym napisać czegoś niedziałającego, a nie będę matlaba instalować aby sprawdzić czy to co skleciłem działa. No ale patrząc na przykład, powinieneś metodą kilku prób i błędów zrobić to poprawnie.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Example 1

This example solves the system of two equations and two unknowns:

Rewrite the equations in the form F(x) = 0:

Start your search for a solution at x0 = [-5 -5].

First, write a file that computes F, the values of the equations at x.

function F = myfun(x)
F = [2*x(1) - x(2) - exp(-x(1));
     -x(1) + 2*x(2) - exp(-x(2))];

Save this function file as myfun.m somewhere on your MATLAB path. Next, set up the initial point and options and call fsolve:

x0 = [-5; -5];           % Make a starting guess at the solution
options=optimset('Display','iter');   % Option to display output
[x,fval] = fsolve(@myfun,x0,options)  % Call solver

gdzie plik myfun.m wygląda tak:

function F = myfun(x)
F = [100*cos(x(1)) + 200*cos(x(1) + x(2))*0.766 + 90 - 282.45;
10 - 200*sin(x(1) + x(2))*0.766 - 100*sin(x(1)) - 161.5668 
];

potem wywołujesz:

x0 = [-5; -5];           % Make a starting guess at the solution
options=optimset('Display','iter');   % Option to display output
[x,fval] = fsolve(@myfun,x0,options)  % Call solver

i masz wynik:

Norm of First-order Trust-region

Iteration Func-count f(x) step optimality radius

0 3 195063 1.93e+004 1

1 6 139833 1 2.12e+004 1

2 9 97046.4 2.5 2.14e+004 2.5

3 10 97046.4 2.5 2.14e+004 2.5

4 13 65516.6 0.625 2.82e+004 0.625

5 16 29199.8 1.5625 2.26e+004 1.56

6 19 14840.8 1.5625 1.95e+004 1.56

7 22 2315.17 0.58531 7.99e+003 1.56

8 25 119.108 0.647662 1.78e+003 1.56

9 28 1.11356 0.199165 22.9 1.62

10 31 0.000866739 0.0373982 1.53 1.62

11 34 6.43671e-010 0.00108313 0.00117 1.62

12 37 3.10597e-022 9.41564e-007 5.31e-010 1.62

Equation solved.

fsolve completed because the vector of function values is near zero

as measured by the default value of the function tolerance, and

the problem appears regular as measured by the gradient.

x =

-7.2682

-5.7599

fval =

1.0e-010 *

-0.1393

-0.1080[/code

Czyli dokładnie tak jak napisał MatManiak;)

  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.