PRACA DOMOWA (2)
PRACA DOMOWA (2)
Zadanie (A)
Napisz funkcję anonimową logbx, która będzie przyjmować dwa argumenty: podstawę logarytmu b oraz argument x. W ciele funkcji skorzystaj ze wzoru na zamianę podstawy logarytmu (korzystając z log, log2 lub log10) aby obliczyć wartość logbx. Wywołaj swoją funkcję kilka razy z różnymi argumentami aby przetestować poprawność jej działania, np.: logbx(3,9), logbx(4,0.25),...
Rozwiązanie
>> logbx = @(b,x) log(x)/log(b);
>> logbx(2,8)
>> logbx(3,9)
>> logbx(4,0.25)
Zadanie (B)
Napisz swoje własne funkcje anonimowe:
-
katyNaRadiany, która będzie przyjmować wartość w stopniach i zamieniać ją na wartość w radianach,
-
radianyNaKaty, która będzie dokonywać zamiany w przeciwnym kierunku.
Rozwiązanie
>> katyNaRadiany = @(kat) kat*pi/180;
>> katyNaRadiany(180)
>> radianyNaKaty = @(radian) radian*180/pi;
>> radianyNaKaty(pi)
>> radianyNaKaty(pi/6)
Zadanie (C)
Oblicz w MATLABie całki oznaczone:
a) \(\int\limits_{0}^{1} \frac{1}{1+x^2} dx\),
b) \(\int\limits_{0}^{\infty} \frac{1}{1+x^2} dx\),
c) \(\int\limits_{0}^{\infty} \frac{1}{1+x^4} dx\).
Rozwiązanie
>> syms x;
>> int(1/(x^2+1),x,0,1)
>> int(1/(x^2+1),x,0,Inf)
>> int(1/(x^4+1),x,0,Inf)
Zadanie (D)
Oblicz pochodną funkcji ln(x) korzystając z definicji (a więc z granicy) – podobny przykład był pokazany w Zadaniu 6.
Rozwiązanie
>> syms x;
>> syms h;
>> limit((log(x + h) - log(x))/h, h, 0)
Zadanie (E)
Wygeneruj w MATLABie dwie macierze:
- macierz A rozmiaru 6x6 zawierająca losowe liczby całkowite z przedziału [-10,10],
- wektor B 6-elementowy zawierający losowe liczby całkowite z przedziału [-7,7]
i rozwiąż równanie macierzowe A*X=B.
Rozwiązanie
>> A = round(rand(6,6)*20-10)
>> B = round(rand(6,1)*14-7)
>> X=inv(A)*B
Zadanie (F)
Operacja A' nie tylko transponuje macierz A, ale także daje sprzężenie jej elementów. Zaproponuj sposób takiego transponowania macierzy liczb zespolonych, aby jej elementy nie były sprzężone po transponowaniu.
Rozwiązanie
>> A=[2+2*i,6*i;7+i,8+2*i]
% pierwszy sposób:
>> conj(A')
% drugi sposób:
>> (conj(A))'
% trzeci sposób:
>> rzeczywiste = real(A)
>> urojone = imag(A)
>> transpozycja = rzeczywiste' + i*(urojone')