Jinsi ya kuandika kazi katika MATLAB. g=9.81; kuongeza kasi ya mvuto. Inaingiza nambari changamano

Hati

Pamoja na kufanya kazi kwenye mstari wa amri, kuna njia nyingine ya kutekeleza amri. Hii ni kuandika programu.

Hati ni mlolongo wa amri za MATLAB zilizoandikwa katika faili yenye kiendelezi ".m". Hizi ni faili za maandishi za kawaida. Unaweza kutumia kihariri chochote cha maandishi kuziandika.

Ili kuunda hati, kwa ujumla, inatosha kuwa na mhariri wa maandishi wa kawaida karibu. Tutatumia kihariri kilichojengwa katika mazingira ya MATLAB. Tumia kitufe cha Hati Mpya kwenye kona ya juu kushoto ili kuunda hati mpya. Baada ya kubofya kifungo hiki, dirisha la mhariri wa maandishi litaonekana (Mchoro 5).

Mchoro 5. Mhariri wa msimbo wa MATLAB Hebu tuunde programu ndogo:

fprintf("Hujambo Ulimwengu!\n")

Sasa unahitaji kuhifadhi hati hii; ili kufanya hivyo, bofya kitufe cha "Hifadhi" kwenye kona ya juu kushoto, baada ya hapo MATLAB itajitolea kuihifadhi kwenye saraka ya sasa ("Folda ya Sasa"). Hebu tupe hati jina "Mfano1.m" na tuihifadhi. Inashauriwa kuwa hati ihifadhiwe katika saraka ya sasa, kwa hivyo MATLAB itatafuta hati za kuendeshwa.

kwenye folda ambazo zimeorodheshwa katika utofauti wa njia ya MATLAB ya ndani. Orodha hii pia inajumuisha saraka ya sasa, inayoonyeshwa katika mazingira ya MATLAB upande wa kulia katika eneo maalum la kuelea. Kwa chaguo-msingi, hati itahifadhiwa kwenye saraka ya sasa, ili uweze kuiita mara moja. Unaweza kuendesha script kwa kuingiza jina lake (jina la m-faili ambalo lilihifadhiwa) kwenye mstari wa amri na kushinikiza "Ingiza" au kifungo cha "Run" katika mhariri wa kanuni. Katika visa vyote viwili, dirisha la amri linaonyesha matokeo yafuatayo:

>> Mfano1 Jambo Ulimwengu!

Hebu tuangalie mfano mwingine. Kuna hati:

x = 0:0.02:2*pi; a = 0.3;

y = a * dhambi(x) + b * cos(x); mpango (x, y)

Wacha tuihifadhi kwenye faili ya Example2.m na kuiendesha. Kwa hivyo, MATLAB itakokotoa na kuonyesha grafu ya chaguo za kukokotoa y = a sin(x)+ b cos(x).

Pia tunaona kwamba baada ya kutekeleza script, vigezo x, a, b na y vilionekana kwenye dirisha la "Nafasi ya kazi". Ili kueleza kwa nini hii ilitokea, fikiria dhana muhimu sana katika MATLAB ya nafasi ya kazi.

Nafasi ya kazi katika MATLAB

Eneo la kazi la mfumo wa MATLAB ni eneo la kumbukumbu ambalo vigezo vya mfumo ziko. Kuna aina mbili za nafasi za kazi katika MATLAB:

eneo la kazi la msingi - eneo la kazi la msingi;

kazi ya kazi - nafasi ya kazi ya kazi.

Vigezo vyote katika nafasi ya kazi vipo kwenye nafasi ya kazi kuanzia wakati vinapotangazwa wakati wa kufanya kazi na nafasi hiyo ya kazi hadi vitakapoondolewa wazi kwa kutumia amri iliyo wazi au hadi mwisho wa maisha ya nafasi ya kazi, kama vile kufunga MATLAB kwa nafasi ya msingi ya kazi.

Wakati script imezinduliwa, haitengenezi nafasi mpya ya kazi, lakini inafanya kazi na nafasi ya kazi ambayo iliitwa.

Tunapoita script kutoka kwa dirisha la amri, inafanya kazi na nafasi ya kazi ya msingi, hivyo vigezo vyote ambavyo tumeunda kabla ya kupiga script vinapatikana kwake. Pia, ikiwa hati itaunda anuwai zaidi, zitabaki kupatikana baada ya

kukamilika kwake.

Maoni

Inachukuliwa kuwa mazoezi mazuri wakati wa kuandika msimbo wa programu kuandika maoni kwenye nambari unayoandika. Maoni hayaathiri uendeshaji wa programu kwa njia yoyote na hutumikia kutoa maelezo ya ziada. Maoni yatasaidia watu wengine kuelewa algoriti yako na kukusaidia kukumbuka kiini cha ulichoandika baada ya kipindi fulani cha muda wakati tayari umesahau ulichopanga. MATLAB hutumia alama ya "%" kuashiria mwanzo wa maoni.

% Kuzalisha Nambari za Nambari Zinazosambazwa Sawa

% Kuhesabu matarajio ya hisabati ya nambari zinazozalishwa

% Inaonyesha data kwenye grafu

% 50 nambari za nasibu

% Tengeneza na weka vekta ya nasibu

maadili ya kutofautisha r

% Onyesha vekta iliyotengenezwa kwenye grafu

◉ Chora mstari

kupitia (0, m) na (n, m)

◉ Kokotoa maana ya hesabu ya thamani

vekta r

njama (,)

title("Maana ya Data Isiyo Sawa") % Kichwa cha chati

Kazi

Aina nyingine ya programu ya MATLAB ni kazi. Tofauti na maandishi, inapoitwa, chaguo la kukokotoa huunda nafasi mpya ya kazi, kwa hivyo vigeu vilivyotangazwa nje ya nambari yake havitaonekana ndani ya chaguo la kukokotoa. Kwa hiyo, vigezo vya pembejeo na pato hutumiwa kuwasiliana na kazi na msimbo wa nje. Wacha tuangalie syntax ya jumla ya kutangaza kazi:

function = function_name(x1,...,xM) operator_1 operator_2

operator_n mwisho

Chaguo za kukokotoa ziko katika faili tofauti ya m.

Chaguo za kukokotoa huanza na kitendakazi cha nenomsingi kikifuatiwa na mraba

majina ya vigeu vya pato hutenganishwa na koma kwenye mabano. Inayofuata inakuja ishara "=" na jina la chaguo la kukokotoa. Jina la kazi hufuata sheria sawa na majina ya kutofautisha. Pia tunaona kwamba jina la kazi lazima lifanane na jina la faili ambalo linafafanuliwa. Baada ya jina la chaguo la kukokotoa, majina ya vigezo vya ingizo hutenganishwa na koma kwenye mabano.

Mistari ifuatayo ina mwili wa chaguo za kukokotoa (maneno yoyote halali ya MATLAB).

Chaguo la kukokotoa linaisha na neno kuu la mwisho, hata hivyo hii ni ya hiari na inaweza kuachwa.

Pia kumbuka kuwa ikiwa kazi inarudisha paramu moja tu, basi sio lazima iwekwe kwenye mabano ya mraba, kwa mfano:

kitendakazi s = eneo la pembetatu(a, b)

% kuhesabu eneo la pembetatu ya kulia

% a, b - miguu ya pembetatu

s = a * b / 2; mwisho

Ikiwa kazi hairudishi vigezo hata kidogo, basi mara tu baada ya neno kuu la kazi huja jina la kazi, kwa mfano:

kazi hellowWorld()

% mfano wa chaguo za kukokotoa bila vigezo vya pembejeo na pato disp("Hujambo ulimwengu!");

Sintaksia ifuatayo inatumika kuita kitendakazi:

Function_name(z1,...,zM)

ambapo k1, ..., kN ni viambajengo ambapo thamani za matokeo ya chaguo za kukokotoa zitaandikwa, az1,..., zM ni hoja za chaguo la kukokotoa.

Ikiwa kazi inarudi parameter moja tu, basi mabano ya mraba yanaweza kuachwa, kwa mfano:

s = eneo la tria(1,2)

Vigezo halisi na rasmi vya chaguo za kukokotoa

Ni muhimu kutofautisha kati ya vigezo halisi na rasmi vya chaguo za kukokotoa:

parameter halisi - hoja iliyopitishwa kwa kazi wakati inaitwa;

parameta rasmi - hoja iliyobainishwa wakati wa kutangaza au kufafanua kazi.

Wacha tueleze tofauti hii kwa mfano.

Watengenezaji wengi wana ugumu kuelewa sintaksia na uwezo wake. Jambo ni kwamba lugha inahusiana moja kwa moja na bidhaa maarufu ya programu, gharama ambayo inaweza kufikia maadili ya kushangaza. Kwa hivyo, swali kuu ni: lugha ya Matlab yenyewe ni nzuri sana? Na inaweza kuwa na manufaa kwako?

Matumizi

Hebu tuanze si kwa safari ya kawaida katika historia na majadiliano ya faida na hasara za lugha, lakini kwa mazingira ya programu ya MATLAB/Simulink - mahali pekee ambapo shujaa wa maandishi haya anaweza kuwa na manufaa. Hebu fikiria kihariri cha picha ambacho unaweza kutambua mawazo yako yoyote bila kuwa na uzoefu wa miaka kadhaa na elimu muhimu nyuma yako. Na baada ya kuunda mchoro wa mwingiliano kati ya zana mara moja, utapata hati ya hali ya juu kwa matumizi ya mara kwa mara.

MATLAB ni mhariri kama huyo katika ulimwengu wa data. Upeo wa matumizi yake ni pana sana: IoT, fedha, dawa, nafasi, automatisering, robotiki, mifumo ya wireless na mengi, mengi zaidi. Kwa ujumla, kuna uwezekano usio na kikomo wa kukusanya na kutazama data, pamoja na utabiri, lakini tu ikiwa una fursa ya kununua mfuko unaofaa.

Kuhusu bei, karibu hakuna kikomo cha juu, lakini kikomo cha chini ni karibu $99. Ili kunyakua bidhaa hiyo yenye nguvu kwa pesa kidogo, unahitaji kuwa mwanafunzi wa chuo kikuu. Na bila shaka utapata bidhaa ndogo.

Vipengele vya lugha

Lugha ya MATLAB ni zana ambayo hutoa mwingiliano kati ya opereta (mara nyingi hata sio programu) na uwezo wote unaopatikana wa kuchanganua, kukusanya na kuwasilisha data. Ina faida na hasara dhahiri za lugha inayoishi katika mfumo ikolojia uliofungwa.

Mapungufu:

    Lugha ya polepole na iliyojaa waendeshaji, amri, na utendaji, lengo kuu ambalo ni kuboresha mtazamo wa kuona.

    Kuzingatia finyu. Hakuna jukwaa lingine la programu ambapo MATLAB ni muhimu.

    Gharama kubwa ya programu. Ikiwa wewe si mwanafunzi, jitayarishe kuweka mifukoni mwako au uvuke mstari wa sheria. Na hata kama wewe ni mwanafunzi, bei ni nzuri.

    Mahitaji ya chini. Licha ya kupendezwa sana na MATLAB katika karibu kila nyanja, ni wachache tu wanaoitumia na kisheria.

Manufaa:

    Lugha ni rahisi kujifunza na ina sintaksia rahisi na inayoeleweka.

    Fursa kubwa. Lakini hii ni badala ya faida ya bidhaa kwa ujumla.

    Sasisho za mara kwa mara, kwa kawaida mabadiliko mazuri yanayoonekana hutokea angalau mara kadhaa kwa mwaka.

    Mazingira ya programu hukuruhusu kuibadilisha kuwa msimbo wa "haraka" katika C, C ++.

Watazamaji walengwa

Bila shaka, si kila mtu anahitaji MATLAB. Licha ya anuwai ya matumizi, ni ngumu kufikiria kuwa wastani wa msanidi programu angehitaji ujuzi wa lugha hii. MATLAB ni muhimu sana katika maeneo ambayo yanahitaji usindikaji thabiti wa data, kama vile mifumo ya otomatiki katika magari au mifumo ya angani ya ndege.

Hiyo ni, ikiwa wewe si mtayarishaji programu sana, lakini kwa njia moja au nyingine taaluma yako inahusiana na hitaji la usindikaji wa data wa kiprogramu, basi bidhaa ya MATLAB/Simulink yenye lugha inayofaa inaweza kurahisisha sana kazi zako za kila siku.

Fasihi

Tunahitimisha uhakiki wa lugha, kama kawaida, na orodha ya fasihi ya kielimu. Kwa kweli, kati yao hautapata vitabu vya lugha pekee, lakini hii itafanya mtazamo wa lugha kuwa rahisi tu:

Je, una uzoefu na MATLAB? Na ipi?

Kwa wale ambao wanataka kuwa programu - .

Maagizo

Mazingira ya MATLAB yana njia kadhaa za uendeshaji. Rahisi zaidi ni kuingiza amri moja kwa moja kwenye dirisha la amri ( Dirisha la Amri).
Ikiwa haionekani kwenye interface ya programu, basi unahitaji kuifungua. Unaweza kupata dirisha la amri kupitia menyu Eneo-kazi -> Dirisha la Amri.
Kwa mfano, hebu tuingize amri "x = ; y = sqrt(x); plot(y);" kwenye dirisha hili mfululizo moja baada ya jingine na ubonyeze kitufe cha "Ingiza" ( Ingiza) Programu itaunda vijiti X papo hapo, itaunda tofauti Y na kuhesabu maadili yake kwa kazi fulani, na kisha kuunda grafu yake.
Kutumia mishale ya kibodi ya "Juu" na "Chini" kwenye dirisha la amri, tunaweza kubadili kati ya amri zote zilizoingizwa, mara moja kuzibadilisha ikiwa ni lazima, na kwa kushinikiza Ingiza tena kuwatuma kwenye mazingira ya MATLAB kwa utekelezaji.
Raha? Bila shaka. Na muhimu zaidi - haraka sana. Vitendo hivi vyote huchukua sekunde chache.
Lakini vipi ikiwa unahitaji shirika ngumu zaidi la timu? Ikiwa unahitaji utekelezaji wa mzunguko wa amri zingine? Kuingiza amri kwa mikono moja kwa wakati na kisha kutafuta kupitia historia kwa muda mrefu kunaweza kuwa ngumu sana.

Ili kurahisisha maisha kwa mwanasayansi, mhandisi au mwanafunzi, dirisha la mhariri ( Mhariri) Wacha tufungue kidirisha cha mhariri kupitia menyu Eneo-kazi -> Mhariri.
Hapa unaweza kuunda vigezo vipya, kujenga grafu, kuandika programu (scripts), kuunda vipengele vya kubadilishana na mazingira mengine, kuunda programu na interface ya mtumiaji (GUI), na kuhariri zilizopo. Lakini kwa sasa tuna nia ya kuandika programu ambayo ina vipengele vya kutumika tena katika siku zijazo. Basi hebu tuende kwenye menyu Faili na kuchagua Mpya -> Faili ya M.

Kwenye uwanja wa hariri tutaandika programu rahisi, lakini tuifanye iwe ngumu kidogo:

kazi draw_plot(x)
y = logi(x); ◉ Weka kitendakazi cha kwanza
sehemu ndogo(1, 2, 1), plot(x, y); ◉ Kujenga grafu ya kwanza
y = sqrt(x); ◉ Weka kitendakazi cha pili
sehemu ndogo(1, 2, 2), plot(x, y); ◉ Kujenga grafu ya pili

Tumeongeza kazi ya pili na tutaonyesha grafu mbili karibu na kila mmoja. Alama ya asilimia inaashiria maoni katika MATLAB.
Usisahau kuhifadhi programu. Ugani wa kawaida wa faili kwa programu ya Matlab ni *.m.
Sasa funga mhariri na dirisha na grafu ambayo tulijenga hapo awali.

Rudi kwenye dirisha la amri.
Unaweza kufuta historia ya amri ili habari isiyo ya lazima isitusumbue. Ili kufanya hivyo, bonyeza-click kwenye uwanja wa uingizaji wa amri na uchague kipengee kwenye orodha ya muktadha inayofungua Futa Dirisha la Amri.
Bado tuna mabadiliko ya X kutoka kwa jaribio la awali; hatukuibadilisha au kuifuta. Kwa hivyo, unaweza kuingia mara moja kwenye dirisha la amri:
kuchora_kiwanja(x);
Utaona kwamba MATLAB itasoma kazi yetu kutoka kwa faili na kuitekeleza, ikichora grafu.

Mazingira ya MATLAB yana njia kadhaa za uendeshaji. Rahisi zaidi ni kuingiza amri moja kwa moja kwenye dirisha la amri ( Dirisha la Amri).

Dirisha la Amri la MATLAB

Ikiwa haionekani kwenye kiolesura cha programu, fungua. Unaweza kupata dirisha la amri kupitia menyu Eneo-kazi Dirisha la Amri.

Kwa mfano, wacha tuingize amri kwenye dirisha hili moja baada ya nyingine:

X = ; y = sqrt(x); njama (y);

na bonyeza kitufe cha Ingiza ( Ingiza) Programu itaunda papo hapo mabadiliko ya X, kuunda tofauti ya Y na kuhesabu maadili yake kwa kazi fulani, na kisha kuipanga.

Kutumia mishale ya juu na chini ya kibodi kwenye dirisha la amri, tunaweza kubadili kati ya amri zilizoingia, kuzibadilisha mara moja, na kwa kushinikiza. Ingiza tuma kwa mazingira ya MATLAB kwa utekelezaji. Kwa kutumia mishale ya kushoto na kulia unaweza kupitia amri iliyoingizwa na kuihariri. Ikiwa kuna semicolon mwishoni mwa amri, matokeo yatahesabiwa, lakini hayataonyeshwa kwenye dirisha la amri; vinginevyo, matokeo ya amri yataonyeshwa mara moja. Kwa kazi yoyote katika mazingira ya MATLAB kuna usaidizi wa kina uliojengwa ndani. Kwa mfano, kupata msaada juu ya amri njama, chagua amri hii, bonyeza-click juu yake, na katika orodha ya muktadha inayofungua, chagua Msaada juu ya Uchaguzi au bonyeza kitufe F1.

Kupata usaidizi kwa amri za MATLAB

Raha? Bila shaka. Na muhimu zaidi - haraka sana. Vitendo hivi vyote huchukua sekunde chache.

Lakini vipi ikiwa unahitaji shirika ngumu zaidi la timu? Ikiwa unahitaji utekelezaji wa mzunguko wa amri zingine? Kuingiza amri kwa mikono moja kwa wakati na kisha kutafuta kupitia historia kwa muda mrefu kunaweza kuwa ngumu sana.

2 Kufanya kazi na mhariri katika mazingira ya MATLAB

Ili kurahisisha maisha kwa mwanasayansi, mhandisi au mwanafunzi, dirisha la mhariri ( Mhariri) Wacha tufungue kidirisha cha mhariri kupitia menyu Eneo-kazi Mhariri.

Katika dirisha la mhariri, unaweza kuunda vigezo vipya, kujenga grafu, kuandika programu (scripts), kuunda vipengele vya kubadilishana na mazingira mengine, kuunda programu na interface ya mtumiaji (GUI), na kuhariri zilizopo.

Kwa sasa tuna nia ya kuandika programu iliyo na vipengele vya kutumika tena katika siku zijazo. Basi hebu tuende kwenye menyu Faili mhariri na uchague Mpya Faili ya M.


Faili za M katika mazingira ya MATLAB ni faili zilizo na maandishi ya programu (hati) au vitendaji vilivyoainishwa na mtumiaji.

Hebu tuandike kazi rahisi katika mhariri kuchora_njama:

kazi draw_plot(x)% Weka kitendakazi cha kwanza: y = logi(x); % Tunaunda grafu ya kwanza: sehemu ndogo (1, 2, 1), plot(x, y); % Weka kitendakazi cha pili: y = sqrt(x); % Tunaunda grafu ya pili: sehemu ndogo (1, 2, 2), plot(x, y);

Rudi kwenye dirisha la amri.

Unaweza kufuta historia ya amri ili habari isiyo ya lazima isitusumbue. Ili kufanya hivyo, bonyeza-click kwenye uwanja wa uingizaji wa amri na uchague kipengee kwenye orodha ya muktadha inayofungua Futa Dirisha la Amri.

Bado tuna mabadiliko ya X kutoka kwa jaribio la awali; hatukuibadilisha au kuifuta. Kwa hivyo, unaweza kuingia mara moja kwenye dirisha la amri:

Chora_njama(x);

Utaona kwamba MATLAB itasoma kazi yetu kutoka kwa faili na kuitekeleza, ikichora grafu.


Ikiwa MATLAB itatoa ujumbe wakati wa kutekeleza programu, Chaguo za kukokotoa ambazo hazijabainishwa au mbinu ya "draw_plot" kwa hoja za ingizo za aina "double".(yaani, kazi isiyojulikana inaitwa), bonyeza kitufe cha mshale kijani kwenye kidirisha cha mhariri ( Kimbia) au kupitia menyu ya mhariri: Tatua Endesha draw_plot.m. MATLAB itaripoti kwamba saraka iliyo na faili yetu ya programu (draw_plot.m) sio saraka ya kufanya kazi. Bofya kitufe kwenye kisanduku cha mazungumzo Ongeza kwenye Njia ili MATLAB iongeze saraka kwenye njia ya kufanya kazi na iweze kutumia faili yetu ya M. Baada ya hayo, programu inapaswa kuanza kawaida.

) Miongoni mwa zana za kusudi la jumla zinazotumiwa katika kemia, kifurushi cha MatLab kinachukua nafasi maalum. Umaarufu wake ni wa juu sana. Hii ni kwa sababu MatLab ina nguvu na inaweza kutumika anuwai kwa kuchakata data ya pande nyingi. Muundo wa kifurushi huifanya kuwa kifaa rahisi cha kufanya mahesabu ya matrix. Matatizo mbalimbali ambayo yanaweza kujifunza kwa kutumia MatLab ni pamoja na: uchambuzi wa matrix, usindikaji wa ishara na picha, mitandao ya neural na wengine wengi. MatLab ni lugha ya kiwango cha juu, lugha huria ambayo inaruhusu watumiaji wa hali ya juu kuelewa kanuni za algoriti zilizopangwa. Lugha rahisi ya programu iliyojumuishwa hurahisisha kuunda kanuni zako mwenyewe. Kwa miaka mingi ya kutumia MatLab, idadi kubwa ya vitendaji na Vikasha vya zana (vifurushi vya zana maalum) vimeundwa. Maarufu zaidi ni kifurushi cha PLS ToolBox kutoka Eigenvector Research, Inc.

1. Taarifa za msingi

1.1. Mazingira ya kazi ya MatLab

Ili kuzindua programu, bonyeza mara mbili kwenye ikoni. Mazingira ya kazi yaliyoonyeshwa kwenye takwimu yatafungua mbele yako.

Mazingira ya kazi MatLab 6.x tofauti kidogo na nafasi ya kazi ya matoleo ya awali, ina kiolesura rahisi zaidi cha kufikia vipengele vingi vinavyosaidia

Mazingira ya kazi MatLab 6.x ina vipengele vifuatavyo:

    upau wa zana na vifungo na orodha ya kushuka;

    dirisha na vichupo vya Uzinduzi wa Pedi na Nafasi ya kazi, ambayo unaweza kufikia moduli mbalimbali za ToolBox na yaliyomo kwenye benchi ya kazi;

    dirisha la kichupo Historia ya Amri Na Saraka ya Sasa, iliyokusudiwa kutazama na kuita tena amri zilizoingizwa hapo awali, na pia kwa kuweka saraka ya sasa;

    dirisha la amri iliyo na kidokezo cha "ingizo" na mshale wa wima unaofumba;

    upau wa hali.

Ikiwa katika mazingira ya kazi MatLab 6.x Ikiwa madirisha mengine yaliyoonyeshwa kwenye takwimu hayapo, unapaswa kuchagua vitu vinavyofaa kwenye menyu ya Tazama: Dirisha la Amri, Historia ya Amri , Saraka ya Sasa , Nafasi ya Kazi , Padi ya Uzinduzi .

Amri zinapaswa kuandikwa kwenye dirisha la amri. Ishara » , inayoonyesha mstari wa amri haraka, hauhitaji kuchapishwa. Ili kutazama eneo la kazi, ni rahisi kutumia vibao vya kusogeza au Vifunguo vya Nyumbani, Mwisho ili kusonga kushoto au kulia, na PageUp, PageDown kusogeza juu au chini. Ikiwa ghafla, baada ya kuzunguka eneo la kazi la dirisha la amri, mstari wa amri na mshale unaowaka hupotea, bonyeza tu Ingiza.

Ni muhimu kukumbuka kuwa kuandika amri au usemi wowote lazima umalizike kwa kubonyeza Enter ili MatLab itekeleze amri hiyo au kutathmini usemi huo.

1.2. Mahesabu rahisi

Andika 1 + 2 kwenye mstari wa amri na ubofye Ingiza. Kama matokeo, dirisha la amri ya MatLab linaonyesha yafuatayo:

Mchele. 2 Uwakilishi wa mchoro wa uchanganuzi wa sehemu kuu

Mpango wa MatLab ulifanya nini? Kwanza, alihesabu jumla ya 1+2, kisha akaandika matokeo kwa tofauti maalum na kuonyesha thamani yake, sawa na 3, kwenye dirisha la amri. Chini ya jibu ni mstari wa amri na mshale unaowasha, unaoonyesha kuwa MatLab iko tayari kwa mahesabu zaidi. Unaweza kuandika maneno mapya kwenye mstari wa amri na kupata maana zao. Ikiwa unahitaji kuendelea kufanya kazi na usemi uliopita, kwa mfano, hesabu (1 + 2) / 4.5, basi njia rahisi ni kutumia matokeo yaliyopo, ambayo yamehifadhiwa katika kutofautiana kwa ans. Andika ans/4.5 (kitone hutumika wakati wa kuingiza desimali) na ubonyeze Ingiza, inageuka

Mchele. 3 Uwakilishi wa kijiografia wa uchanganuzi wa sehemu kuu

1.3. Amri za Echo

Utekelezaji wa kila amri katika MatLab unaambatana na mwangwi. Katika mfano hapo juu, jibu ni ans = 0.6667. Mara nyingi mwangwi hufanya iwe vigumu kutambua uendeshaji wa programu na kisha inaweza kuzimwa. Ili kufanya hivyo, amri lazima iishe na semicolon. Kwa mfano

Mchele. 4 Mfano wa kuingiza kitendakazi cha ScoresPCA

1.4. Uhifadhi wa mazingira ya kazi. Faili za MAT

Njia rahisi ya kuhifadhi maadili yote tofauti ni kutumia chaguo la Hifadhi Nafasi ya Kazi kwenye menyu ya Faili. Hii itafungua sanduku la mazungumzo la Hifadhi Vigezo vya Nafasi ya Kazi, ambalo lazima ueleze saraka na jina la faili. Kwa chaguo-msingi, inapendekezwa kuhifadhi faili katika orodha ndogo ya kazi ya saraka kuu ya MatLab. Programu itahifadhi matokeo ya kazi yake katika faili iliyo na kitanda cha ugani. Sasa unaweza kufunga MatLab. Katika kikao cha kazi kijacho, ili kurejesha maadili ya vigezo, unapaswa kufungua faili hii iliyohifadhiwa kwa kutumia kitu kidogo cha Fungua kwenye menyu ya Faili. Sasa anuwai zote zilizofafanuliwa katika kikao cha mwisho zinapatikana tena. Wanaweza kutumika katika amri mpya zilizoingizwa.

1.5. Jarida

MatLab ina uwezo wa kuandika amri zinazoweza kutekelezwa na matokeo kwa faili ya maandishi (weka logi ya kazi), ambayo inaweza kusomwa au kuchapishwa kutoka kwa mhariri wa maandishi. Kuanza kuingia tumia amri shajara. Kama hoja ya amri shajara unapaswa kutaja jina la faili ambayo logi ya kazi itahifadhiwa. Amri zilizoandikwa zaidi na matokeo ya utekelezaji wao yataandikwa kwa faili hii, kwa mfano mlolongo wa amri.

hufanya vitendo vifuatavyo:

    hufungua logi katika faili ya exampl-1.txt;

    hufanya mahesabu;

    huhifadhi vigezo vyote katika faili ya MAT work-1.mat ;

    huhifadhi logi katika faili ya exampl-1.txt katika saraka ndogo ya kazi ya saraka ya mizizi ya MatLab na kufunga MatLab;

Angalia yaliyomo katika faili ya exampl-1.txt katika baadhi ya kihariri cha maandishi. Faili itakuwa na maandishi yafuatayo:

a1=3;
a2=2.5;
a3=a1+a2

Hifadhi kazi-1
acha

1.6. Mfumo wa usaidizi

Dirisha la Usaidizi wa MatLab inaonekana baada ya kuchagua chaguo la Dirisha la Usaidizi kutoka kwenye menyu ya Usaidizi au kwa kubofya kitufe cha swali kwenye upau wa vidhibiti. Operesheni sawa inaweza kufanywa kwa kuandika amri helpwin. Ili kuonyesha madirisha ya usaidizi kwa mada mahususi, chapa mada ya kusaidia. Dirisha la usaidizi hukupa taarifa sawa na amri ya usaidizi, lakini kiolesura cha dirisha hutoa kiungo kinachofaa zaidi kwa mada nyingine za usaidizi. Kwa kutumia anwani ya ukurasa wa Wavuti wa Math Works, unaweza kufikia seva ya kampuni na kupata taarifa za hivi punde kuhusu masuala yanayokuvutia. Unaweza kuangalia bidhaa mpya za programu au kupata majibu ya matatizo yako kwenye ukurasa wa usaidizi wa kiufundi.

2. Matrices

2.1. Scalars, vekta na matrices

Katika MatLab unaweza kutumia scalars, vekta na matrices. Ili kuingiza scalar, inatosha kugawa thamani yake kwa kutofautiana, kwa mfano

Kumbuka kuwa MatLab hutofautisha kati ya herufi kubwa na kubwa, kwa hivyo p na P ni vigeu tofauti. Ili kuingiza safu (vectors au matrices), vipengele vyao vimefungwa kwenye mabano ya mraba. Kwa hiyo, ili kuingiza vector ya mstari wa 1x3, tumia amri ifuatayo, ambayo vipengele vya safu vinatenganishwa na nafasi au koma.

Wakati wa kuingia vector ya safu, vipengele vinatenganishwa na semicolons. Kwa mfano,

Ni rahisi kuingiza matrices ndogo moja kwa moja kutoka kwa mstari wa amri. Katika pembejeo, matrix inaweza kuzingatiwa kama vekta ya safu, kila kipengele ambacho ni vekta ya safu.

au matrix inaweza kutibiwa kama vekta ya safu, kila kipengele ambacho ni vekta ya safu.

2.2. Vipengele vya ufikiaji

Upatikanaji wa vipengele vya matrix unafanywa kwa kutumia fahirisi mbili - nambari za safu na safu zilizofungwa kwenye mabano, kwa mfano, amri B (2,3) itarudisha kipengele cha safu ya pili na safu ya tatu ya matrix B. Ili kuchagua safu au safu mlalo kutoka kwa mkusanyiko, tumia safu wima au nambari ya safu mlalo kama mojawapo ya faharasa, na ubadilishe faharasa nyingine na koloni. Kwa mfano, hebu tuandike safu ya pili ya matrix A kwenye vekta z

Unaweza pia kuchagua vitalu vya matrix kwa kutumia koloni. Kwa mfano, hebu tuchague kutoka kwa tumbo P kizuizi kilicho na rangi

Ikiwa unahitaji kutazama vigezo vya mazingira ya kazi, unahitaji kuandika amri kwenye mstari wa amri nani .

Inaweza kuonekana kuwa mazingira ya kazi yana scalar moja (p), matrices nne (A, B, P, P1) na vector ya mstari (z).

2.3. Operesheni za Msingi za Matrix

Unapotumia shughuli za tumbo, kumbuka kwamba kwa kuongeza au kutoa, matrices lazima iwe na ukubwa sawa, na wakati wa kuzidisha, idadi ya nguzo za matrix ya kwanza lazima iwe sawa na idadi ya safu za matrix ya pili. Kuongeza na kutoa matrices, pamoja na nambari na vekta, hufanywa kwa kutumia ishara za pamoja na minus.

na kuzidisha kunatiwa alama ya kinyota *. Wacha tuanzishe matrix ya saizi 3x2

Kuzidisha matrix kwa nambari pia hufanywa kwa kutumia nyota, na unaweza kuzidisha kwa nambari upande wa kulia na wa kushoto. Kuinua matrix ya mraba hadi nguvu kamili hufanywa kwa kutumia opereta ^

Angalia matokeo yako kwa kuzidisha matrix P peke yake.

2.4. Kuunda matrices ya aina maalum

Kujaza matrix ya mstatili na zero hufanywa na kazi iliyojengwa sufuri

Matrix ya utambulisho huundwa kwa kutumia chaguo la kukokotoa jicho

Matrix inayojumuisha zile huundwa kama matokeo ya kuita kazi wale

MatLab hutoa uwezo wa kujaza matrices na nambari za nasibu. Matokeo ya kazi rand ni matriki ya nambari zinazosambazwa sawasawa kati ya sifuri na moja, na vitendaji randn- matrix ya nambari zinazosambazwa kulingana na sheria ya kawaida yenye maana ya sifuri na tofauti ya kitengo.

Kazi diag huunda matrix ya diagonal kutoka kwa vector, kupanga vipengele kando ya diagonal.

2.5. Mahesabu ya matrix

MatLab ina kazi nyingi tofauti za kufanya kazi na matrices. Kwa hivyo, kwa mfano, kupitisha matrix hufanywa kwa kutumia apostrophe "

Matrix ya kinyume hupatikana kwa kutumia chaguo la kukokotoa inv kwa matrices ya mraba

3. Kuunganisha MatLab na Excel

Kuunganisha MatLab na Excel huruhusu mtumiaji wa Excel kupata vitendaji vingi vya MatLab kwa usindikaji wa data, hesabu mbalimbali na taswira ya matokeo. Programu jalizi ya excllink.xla hutekeleza kiendelezi hiki cha Excel. Vitendaji maalum hufafanuliwa kwa mawasiliano kati ya MatLab na Excel.

3.1. Usanidi wa Excel

Kabla ya kusanidi Excel kufanya kazi pamoja na MatLab, unapaswa kuhakikisha kwamba Kiungo cha Excel kimejumuishwa katika toleo lililosakinishwa la MatLab. Katika orodha ndogo ya exclink ya saraka kuu ya MatLab au saraka ndogo ya kisanduku cha zana kunapaswa kuwa na faili iliyo na programu jalizi ya excllink.xla. Zindua Excel na uchague Viongezi kutoka kwa menyu ya Zana. Kisanduku kidadisi kinaonekana chenye taarifa kuhusu viongezi vinavyopatikana kwa sasa. Kwa kutumia kitufe cha Vinjari, taja njia ya faili ya excllink.xla. Mstari unaonekana kwenye orodha ya nyongeza kwenye sanduku la mazungumzo Excel Link 2.0 kwa matumizi na MatLab pamoja na kuweka bendera. Bonyeza Sawa, programu jalizi inayohitajika imeongezwa kwenye Excel.

Tafadhali kumbuka kuwa Excel sasa ina upau wa vidhibiti wa Excel Link iliyo na vitufe vitatu: putmatrix, getmatrix, evalstring. Vifungo hivi hutekeleza vitendo vya msingi vinavyohitajika ili kutekeleza uhusiano kati ya Excel na MatLab - kubadilishana data ya matrix, na utekelezaji wa amri za MatLab kutoka kwa mazingira ya Excel. Excel inapozinduliwa tena, programu jalizi ya excllink.xla itaunganishwa kiotomatiki.

Kazi iliyoratibiwa ya Excel na MatLab inahitaji mipangilio kadhaa zaidi, ambayo inakubaliwa na default katika Excel (lakini inaweza kubadilishwa). Katika menyu ya Vyombo, nenda kwa Chaguzi, sanduku la mazungumzo la Chaguzi linafungua. Chagua kichupo cha Jumla na uhakikishe kuwa bendera ya mtindo wa kumbukumbu ya R1C1 imezimwa, i.e. seli zina nambari A1, A2, nk. Kwenye kichupo cha Hariri, chaguo la Hamisha baada ya alama ya Ingiza lazima iwekwe.

3.2. Ubadilishanaji wa data kati ya MatLab na Excel

Zindua Excel, angalia ikiwa mipangilio yote muhimu imefanywa kama ilivyoelezewa katika sehemu iliyopita (MatLab lazima ifungwe). Ingiza matrix katika seli A1 hadi C3, ukitumia kipindi kutenganisha maeneo ya desimali kama inavyotakiwa na Excel.

Chagua data ya seli kwenye karatasi na ubofye kitufe cha putmatrix, dirisha la Excel linaonekana na onyo kwamba MatLab haifanyi kazi. Bofya Sawa, subiri MatLab ifunguke.

Sanduku la mazungumzo la Excel linaonekana na mstari wa ingizo ili kutaja jina la mabadiliko ya benchi ya kazi ya MatLab ambamo data kutoka kwa seli zilizochaguliwa za Excel zinapaswa kusafirishwa. Kwa mfano, ingiza M na funga dirisha kwa kutumia kitufe cha OK. Nenda kwenye dirisha la amri ya MatLab na uhakikishe kuwa tofauti ya M imeundwa kwenye benchi ya kazi, iliyo na safu tatu-na-tatu:

Fanya shughuli zingine katika MatLab na matrix M, kwa mfano, igeuze.

Wito inv Ili kubadilisha matrix, kama amri nyingine yoyote ya MatLab, unaweza kuifanya moja kwa moja kutoka kwa Excel. Kubonyeza kitufe cha evalstring kilicho kwenye paneli ya Kiungo cha Excel husababisha kisanduku cha mazungumzo kuonekana, kwenye safu ya uingizaji ambayo unapaswa kuandika amri ya MatLab.

IM=inv(M) .

Matokeo yake ni sawa na yale yaliyopatikana wakati wa kutekeleza amri katika mazingira ya MatLab.

Rudi kwa Excel, fanya seli A5 kisanduku cha sasa na ubofye kitufe cha getmatrix. Sanduku la mazungumzo linaonekana na mstari wa ingizo unaokuuliza uweke jina la kibadilishaji kitakachoingizwa kwenye Excel. Katika kesi hii, kutofautisha kama hii ni IM. Bofya Sawa, seli A5 hadi A7 zina vipengele vya matriki ya kinyume vilivyoingizwa.

Kwa hiyo, ili kuuza nje matrix kwa MatLab, unapaswa kuchagua seli zinazofaa za karatasi ya Excel, na kuiingiza, unahitaji tu kutaja seli moja, ambayo itakuwa kipengele cha juu cha kushoto cha safu iliyoagizwa. Vipengele vilivyobaki vitaandikwa kwa seli za karatasi kulingana na vipimo vya safu, kufuta data iliyo ndani yao, kwa hiyo unapaswa kuwa makini wakati wa kuingiza safu.

Njia iliyo hapo juu ni njia rahisi zaidi ya kubadilishana habari kati ya programu - data ya chanzo iko katika Excel, kisha inasafirishwa kwa MatLab, kusindika huko kwa njia fulani na matokeo yake huingizwa kwenye Excel. Mtumiaji huhamisha data kwa kutumia vitufe vya upau wa vidhibiti vya Excel Link. Taarifa inaweza kuwasilishwa kwa namna ya matrix, i.e. eneo la mstatili la karatasi. Seli zilizopangwa kwa safu au safu husafirishwa, kwa mtiririko huo, kwa vekta za safu mlalo za MatLab na vekta za safuwima. Uingizaji wa vekta za safu na safu wima kwenye Excel hufanyika kwa njia sawa.

4. Kupanga programu

4.1. Faili za M

Kufanya kazi kutoka kwa mstari wa amri ya MatLab inakuwa vigumu ikiwa unahitaji kuingiza amri nyingi na kuzibadilisha mara kwa mara. Kuweka shajara kwa kutumia amri shajara na kudumisha mazingira ya kazi hurahisisha kazi kidogo. Njia rahisi zaidi ya kutekeleza vikundi vya amri za MatLab ni kutumia faili za M, ambazo unaweza kuandika amri, kutekeleza zote mara moja au kwa sehemu, kuzihifadhi kwenye faili na kuzitumia baadaye. Kihariri cha faili cha M kimeundwa kufanya kazi na faili za M. Kwa msaada wake, unaweza kuunda kazi zako mwenyewe na kuziita, ikiwa ni pamoja na kutoka kwa dirisha la amri.

Panua menyu ya Faili ya dirisha kuu la MatLab na kwenye kipengee kipya chagua kipengee kidogo cha M-faili. Faili mpya inafungua kwenye dirisha la mhariri wa faili la M, ambalo linaonyeshwa kwenye takwimu.

Kuna aina mbili za faili za M katika MatLab: faili ya programu ( Hati M-Files), iliyo na mlolongo wa amri, na vitendaji vya faili, ( Fanya kazi M-Files), ambayo inaelezea kazi zilizoainishwa na mtumiaji.

4.2. Programu ya faili

Ingiza amri katika kihariri inayoongoza kwa ujenzi wa grafu mbili kwenye dirisha moja la picha

Sasa hifadhi faili inayoitwa mydemo.m kwenye saraka ndogo ya kazi ya saraka kuu ya MatLab kwa kuchagua Hifadhi kama kutoka kwa menyu ya Faili ya kihariri. Ili kutekeleza amri zote zilizomo kwenye faili, chagua Run kutoka kwenye menyu ya Debug. Dirisha la picha litaonekana kwenye skrini Kielelezo cha 1, iliyo na grafu za kazi.

Programu ya faili inaamuru pato kwa dirisha la amri. Ili kukandamiza pato, lazima umalize amri kwa semicolon. Ikiwa hitilafu inafanywa wakati wa kuandika na MatLab haiwezi kutambua amri, basi amri hadi iliyoingia vibaya inatekelezwa, baada ya hapo ujumbe wa kosa unaonyeshwa kwenye dirisha la amri.

Kipengele rahisi sana kilichotolewa na M-file mhariri ni utekelezaji wa baadhi ya amri. Funga dirisha la michoro Kielelezo cha 1. Chagua kwa kutumia kipanya huku ukishikilia kitufe cha kushoto, au ukitumia vitufe vya vishale huku ukishikilia kitufe Shift, amri nne za kwanza na uzitekeleze kutoka kwa kipengee cha Maandishi. Tafadhali kumbuka kuwa grafu moja tu ilionyeshwa kwenye dirisha la picha, sambamba na amri zilizotekelezwa. Kumbuka kwamba kutekeleza amri fulani, zichague na ubonyeze kitufe cha F9.

Vitalu vya kibinafsi vya faili ya M vinaweza kutolewa kwa maoni, ambayo yanarukwa wakati wa utekelezaji, lakini ni rahisi wakati wa kufanya kazi na faili ya M. Maoni huanza na ishara ya asilimia na huangaziwa kiotomatiki kwa kijani kibichi, kwa mfano:

Kufungua M-faili iliyopo inafanywa kwa kutumia kipengee Fungua kwenye menyu ya Faili ya mazingira ya kazi, au kihariri cha faili cha M.

4.3. Utendaji wa faili

Programu ya faili iliyojadiliwa hapo juu ni mlolongo tu wa amri za MatLab; haina hoja za pembejeo au matokeo. Kutumia njia za nambari na wakati wa kupanga programu zako mwenyewe katika MatLab, lazima uweze kuunda vitendaji vya faili vinavyofanya vitendo muhimu na hoja za kuingiza na kurudisha matokeo ya kitendo katika hoja za matokeo. Hebu tuangalie mifano michache rahisi ili kukusaidia kuelewa jinsi ya kufanya kazi na kazi za faili.

Wakati wa kuchambua data kutoka kwa uchambuzi wa chemometrics ya multivariate, centering hutumiwa mara nyingi. Inafahamika kuandika kitendakazi cha faili mara moja, na kisha kuiita popote ambapo centering inahitaji kufanywa. Fungua faili mpya katika kihariri cha faili cha M na uandike

Utendakazi wa neno katika mstari wa kwanza unabainisha kuwa faili hii ina faili ya kukokotoa. Mstari wa kwanza ni kichwa cha kazi, ambacho kina jina la chaguo la kukokotoa na orodha ya hoja za pembejeo na pato. Katika mfano, jina la kazi ni centering , hoja moja ya ingizo ni X na hoja moja ya matokeo ni Xc. Kichwa kinafuatiwa na maoni, na kisha mwili wa kazi (katika mfano huu unajumuisha mistari miwili), ambapo thamani yake imehesabiwa. Ni muhimu kwamba thamani iliyohesabiwa imeandikwa kwa Xc. Usisahau kujumuisha semicolon ili kuzuia taarifa zisizo za lazima zisionyeshwe kwenye skrini. Sasa hifadhi faili kwenye saraka yako ya kufanya kazi. Tafadhali kumbuka kuwa kuchagua Hifadhi au Hifadhi kama kutoka kwa menyu ya Faili husababisha kisanduku cha kidadisi cha Hifadhi Faili kinachoonekana, na sehemu ya Jina la Faili tayari ikiwa na jina katikati. Usiibadilishe, hifadhi faili ya kazi katika faili yenye jina lililopendekezwa!

Sasa kazi iliyoundwa inaweza kutumika kwa njia sawa na dhambi iliyojengwa, cos na wengine. Kazi za kibinafsi zinaweza kuitwa kutoka kwa programu ya faili na kutoka kwa kazi nyingine ya faili. Jaribu kuandika kazi ya faili mwenyewe ambayo itapunguza matrices, i.e. gawanya kila safu kwa mkengeuko wa kawaida wa safu hiyo.

Unaweza kuandika faili ya kukokotoa na hoja kadhaa za ingizo, ambazo zimewekwa kwenye orodha iliyotenganishwa kwa koma. Unaweza pia kuunda chaguo za kukokotoa ambazo zinarudisha thamani nyingi. Ili kufanya hivyo, hoja za pato zinaongezwa, zikitenganishwa na koma, kwenye orodha ya hoja za pato, na orodha yenyewe imefungwa kwenye mabano ya mraba. Mfano mzuri ni chaguo la kukokotoa ambalo hubadilisha muda uliobainishwa katika sekunde kuwa saa, dakika na sekunde.

Unapoita kazi za faili na hoja nyingi za matokeo, matokeo yanapaswa kuandikwa kwa vekta ya urefu unaofaa.

4.4 Kutengeneza grafu

MatLab ina uwezo mkubwa wa kuonyesha vekta na matiti kwa michoro, na pia kuunda maoni na uchapishaji wa grafu. Wacha tueleze kazi kadhaa muhimu za picha.

Kazi njama ina aina mbalimbali zinazohusishwa na vigezo vya ingizo, kwa mfano plot(y) huunda grafu ya mstari wa vipande vya vipengele y dhidi ya fahirisi zao. Ikiwa vekta mbili zitatolewa kama hoja, plot(x,y) itaunda grafu ya y dhidi ya x. Kwa mfano, kupanga kazi ya dhambi katika safu kutoka 0 hadi 2π, tunafanya zifuatazo

Mpango huo umejenga grafu ya utegemezi, ambayo inaonyeshwa kwenye dirisha Kielelezo cha 1

MatLab huweka rangi tofauti kiotomatiki kwa kila njama (isipokuwa mtumiaji afanye hivyo), hukuruhusu kutofautisha kati ya seti za data.

Timu subiri hukuruhusu kuongeza curves kwenye grafu iliyopo. Kazi sehemu ndogo hukuruhusu kuonyesha grafu nyingi kwenye dirisha moja

4.5 Kuchapisha grafu

Kipengee cha Chapisha kwenye menyu ya Faili na amri chapa chapisha picha za MatLab. Menyu ya Kuchapisha huleta kisanduku cha kidadisi kinachokuruhusu kuchagua chaguo za kawaida za uchapishaji. Timu chapa hutoa unyumbufu mkubwa zaidi katika utoaji na inaruhusu udhibiti wa uchapishaji kutoka kwa faili za M. Matokeo yanaweza kutumwa moja kwa moja kwa kichapishi chaguo-msingi au kuhifadhiwa katika faili maalum.

5. Mipango ya sampuli

Sehemu hii inaelezea algoriti zinazotumiwa sana katika uchanganuzi wa data ya pande nyingi. Mbinu zote mbili rahisi zaidi za kubadilisha data - kuweka katikati na kuongeza - na algoriti za uchanganuzi wa data - PCA, PLS - zinazingatiwa.

5.1. Kuweka katikati na kuongeza

Mara nyingi wakati wa uchambuzi ni muhimu kubadilisha data ya awali. Njia zinazotumiwa sana za kubadilisha data ni kuweka katikati na kuongeza kila kigeu kwa mkengeuko wake wa kawaida. Nambari ya kazi ya kuweka matrix katikati ilitolewa. Kwa hiyo, hapa chini inaonyeshwa tu kanuni ya kazi hiyo mizani data. Tafadhali kumbuka kuwa tumbo asili lazima liwe katikati

kazi Xs = kuongeza (X)
% kuongeza: matrix ya pato ni Xs
% matrix X lazima iwe katikati

Xs = X * inv(diag(std(X)));

%mwisho wa kuongeza

5.2. SVD/PCA

Njia maarufu zaidi ya ukandamizaji wa data katika uchambuzi wa multivariate ni uchambuzi wa sehemu kuu (PCA). Kutoka kwa mtazamo wa hisabati, PCA ni mtengano wa matrix ya asili X, i.e. uwakilishi wake kama bidhaa ya matrices mbili T Na P

X = TP t+ E

Matrix T inaitwa matrix ya alama, matrix inaitwa matrix ya mabaki.

Njia rahisi zaidi ya kupata matrices T Na P- tumia mtengano wa SVD kupitia kitendakazi cha kawaida cha MatLab kinachoitwa svd .

kazi = pcasvd(X)

Svd(X);
T = U * D;
P=V;

%mwisho wa pcasvd

5.3 PCA/NIPALS

Ili kuunda akaunti za PCA na mizigo, algorithm ya kawaida ya NIPALS hutumiwa, ambayo huhesabu sehemu moja kwa kila hatua. Kwanza matrix ya asili X inabadilishwa (kwa kiwango cha chini - katikati; tazama) na inageuka kuwa matrix E 0 , a=0. Ifuatayo, algorithm ifuatayo inatumika.

t 2. uk t = t t Ea / t t t 3. uk = uk / (uk t uk) ½ 4. t = Ea uk / uk t uk 5. Angalia muunganiko, ikiwa sivyo, kisha nenda kwa 2

Baada ya kuhesabu ijayo ( a-th) vipengele, tunadhania ta=t Na uka=uk E a+1 = Eat uk a juu a+1.

Nambari ya algorithm ya NIPALS inaweza kuandikwa na wasomaji wenyewe; katika mwongozo huu, waandishi wanawasilisha toleo lao wenyewe. Wakati wa kuhesabu PCA, unaweza kuingiza nambari ya vipengee kuu (nambari inayobadilika PC). Ikiwa hujui ni vipengele ngapi vinahitajika, unapaswa kuandika = pcanpals (X) kwenye mstari wa amri na kisha programu itaweka idadi ya vipengele sawa na ndogo zaidi ya vipimo vya matrix ya awali. X.

kazi = pcanpals(X, numberPC)

% hesabu ya idadi ya vipengele
= ukubwa(X); P=; T=;

Ikiwa lenfth(nambaPC) > 0
pc = nambaPC(1);
elseif (urefu(namba PC) == 0) & X_r< X_c
pc = X_r;
mwingine
pc = X_c;
mwisho;

kwa k = 1:pc
P1 = rand(X_c, 1); T1 = X * P1; d0 = T1"*T1;
P1 = (T1" * X/(T1" * T1))"; P1 = P1/kawaida(P1); T1 = X * P1; d = T1" * T1;

Wakati d - d0 > 0.0001;
P1 = (T1" * X/(T1" * T1)); P1 = P1/kawaida(P1); T1 = X * P1; d0 = T1"*T1;
P1 = (T1" * X/(T1" * T1)); P1 = P1/kawaida(P1); T1 = X * P1; d = T1"*T1;
mwisho

X = X - T1 * P1; P = paka(1, P, P1"); T = ;
mwisho

Jinsi ya kukokotoa PCA kwa kutumia programu jalizi ya Chemometrics imeelezwa kwenye mafunzo

5.4PLS1

Njia maarufu zaidi ya urekebishaji wa aina nyingi ni njia ya Makadirio kwa Miundo Iliyofichika (PLS). Njia hii inajumuisha mtengano wa wakati mmoja wa matrix ya kitabiri X na matrices ya majibu Y:

X=TP t+ E Y=UQ t+ F T=XW(P t W) –1

Makadirio yanajengwa mara kwa mara - ili kuongeza uunganisho kati ya vekta zinazolingana. X-akaunti ta Na Y-akaunti ua. Ikiwa kizuizi cha data Y inajumuisha majibu mengi (k.m. K>1), makadirio mawili ya data ya awali yanaweza kujengwa - PLS1 na PLS2. Katika kesi ya kwanza, kwa kila moja ya majibu y k nafasi yake ndogo ya makadirio inajengwa. Wakati huo huo, bili T (U) na mizigo P (W, Q) hutegemea ni jibu gani limetumika. Njia hii inaitwa PLS1. Kwa njia ya PLS2, nafasi moja tu ya makadirio inajengwa, ambayo ni ya kawaida kwa majibu yote.

Ufafanuzi wa kina wa mbinu ya PLS umetolewa katika kitabu hiki. Ili kuunda akaunti na mizigo ya PLS1, algoriti ya kawaida hutumiwa. Kwanza matrices asili X Na Y kituo

= mc(X);
= mc(Y);

na wanageuka kuwa tumbo E 0 na vekta f 0 , a=0. Kisha algorithm ifuatayo inatumika kwao

1. w t = fa t E a 2. w = w / (w t w) ½ 3. t = Ea w 4. q = t t fa / t t t 5. u = qfa / q 2 6. uk t = t t Ea / t t t

Baada ya kuhesabu ijayo ( a-th) vipengele, tunadhania ta=t Na uka=uk. Ili kupata sehemu inayofuata, unahitaji kuhesabu mabaki E a+1 = Eat uk t na utumie algorithm sawa kwao, ukibadilisha faharisi a juu a+1.

Huu hapa ni msimbo wa kanuni hii iliyochukuliwa kutoka kwa kitabu

kazi = pls(x, y)
%PLS: hukokotoa kijenzi cha PLS.
vekta za pato ni w, t, u, q na p.
%
◉ Chagua vekta kutoka y kama vekta ya kuanzia u.

u = y(:, 1);

◉ Kigezo cha muunganiko kimewekwa juu sana.
kri = 100;

◉ Amri kutoka hapa hadi mwisho zinarudiwa hadi muunganisho.
wakati (kri> 1e - 10)

◉ Kila vekta ya kuanzia u imehifadhiwa kama ya zamani.
uold = wewe; w = (u" * x)"; w = w/kawaida(w);
t = x * w; q = (t" * y)"/(t" * t);
u = y * q/(q" * q);

◉ Kigezo cha muunganiko ni kawaida ya u-uld iliyogawanywa na kawaida ya u.
kri = kawaida(uold - u)/norm(u);
mwisho;

% Baada ya muunganiko, hesabu uk.
p = (t" * x)"/(t" * t);

Mwisho wa pls

Kuhusu kukokotoa PLS1 kwa kutumia programu jalizi KemiaOngeza ilivyoelezwa katika mwongozo Mbinu za makadirio katika Excel.

5.5PLS2

Kwa PLS2 algorithm ni kama ifuatavyo. Kwanza matrices asili X Na Y kubadilisha (angalau - katikati; tazama), na zinageuka kuwa matrices E 0 na F 0 , a=0. Kisha algorithm ifuatayo inatumika kwao.

1. Chagua vector ya awali u 2. w t = u t E a 3. w = w / (w t w) ½ 4. t = Ea w 5. q t = t t Fa / t t t 6. u = Fa q/ q t q 7. Angalia muunganiko, ikiwa sivyo, kisha nenda kwa 2 8. uk t = t t Ea / t t t

Baada ya kuhesabu ijayo ( a oh) Vipengele vya PLS2 vinahitaji kuwekwa: ta=t, uka=p, wa=w, ua=u Na q a = q. Ili kupata sehemu inayofuata, unahitaji kuhesabu mabaki E a+1 = Eat uk t na Fa +1 = F atq t na utumie algorithm sawa kwao, ukibadilisha faharisi a juu a+1.

Hapa kuna nambari, ambayo pia imekopwa kutoka kwa kitabu.

kazi = plsr(x, y, a)
% PLS: hukokotoa sehemu ya PLS.
% Nambari za matokeo ni W, T, U, Q na P.
% B ina hesabu za urejeshi na SS jumla ya
% mraba kwa mabaki.
% a ni idadi ya vipengele.
%
% Kwa vipengele: tumia amri zote kumalizia.

Kwa i=1:a
◉ Kokotoa jumla ya miraba. Tumia chaguo za kukokotoa ss.
sx = ;
sy =;

% Tumia chaguo za kukokotoa pls kukokotoa kijenzi kimoja.
= pls(x, y);

◉ Kokotoa mabaki.
x = x - t * p";
y = y - t * q";

◉ Hifadhi vekta kwenye matriki.
W =;
T = ;
U = ;
Q = ;
P = ;
mwisho;

% Kokotoa hesabu za urejeshi baada ya kitanzi.
B=W*inv(P"*W)*Q";

◉ Ongeza mabaki ya mwisho ya SS kwa jumla ya vekta za mraba.
sx=;
sy=;

◉ Tengeneza matrix ya vekta za ss za X na Y.
SS =;

Mahesabu ya sehemu ya SS kutumika.
= ukubwa(SS);
tt = (SS * diag(SS(1,:).^(-1)) - ndio(a, b)) * (-1)

Mwisho wa plsr

kazi = ss(x)
%SS: hukokotoa jumla ya miraba ya matrix X.
%

ss=jumla(jumla(x. * x));
%Mwisho wa ss

Kuhusu kuhesabu PLS2 kwa kutumia programu jalizi KemiaOngeza ilivyoelezwa katika mwongozo Mbinu za makadirio katika Excel.

Hitimisho

MatLab ni zana maarufu sana ya uchanganuzi wa data. Kulingana na uchunguzi huo, hadi theluthi moja ya watafiti wote wanaitumia, wakati programu ya Unsrambler inatumiwa na 16% tu ya wanasayansi. Hasara kuu ya MatLab ni bei yake ya juu. Kwa kuongeza, MatLab ni nzuri kwa mahesabu ya kawaida. Ukosefu wa mwingiliano hufanya iwe ngumu wakati wa kutafuta, hesabu za utafiti kwa seti mpya za data ambazo hazijagunduliwa.