bababababababababababababababababababababababababab ピカールの逐次近似法 (実践篇) ロジスティック方程式 ( dy y) =y 1− , dx 11 y0 (0) = 1 ∫ x=x の解をピカールの逐次近似法で計算してみよう!! これは y(x) = 1 + x=0 積分方程式に書き直せるから、関数漸化式 ( ) ∫ x=x yn (x) yn (x) 1 − dx yn+1 (x) = 1 + 11 x=0 ( ) y(x) y(x) 1 − dx という 11 y0 (0) ≡ 1 を使って関数列 {yn (x)}∞ n=1 を作れば良いんだね!! 早速やってみよう!! ) ∫ x=x ( 10 1 y1 (x) = 1 + dx = x + 1, 1· 1− 11 11 x=0 10 ) ∫ x=x ( x + 1 10 100 3 45 2 10 y2 (x) = 1 + x + 1 1 − 11 x + x + x + 1, . . . dx = − 11 11 3993 121 11 x=0 良い調子だね!!! 「雲行きが怪しくなってきた」って? 何を言ってるのか分からないな! さぁ、この調子でどんどん計算していくよ!!! ※ 次のページ以降は体調が万全なときにご覧になるのを強くお薦めします。覚悟が決まりましたらお進み下さい。 1 (%i53) y[0]:1; for n:1 thru 8 do(y[n]:expand(integrate(y[n-1]*(1-y[n-1]/11),x,0,x))+1); y[0];y[1];y[2];y[3];y[4];y[5];y[6];y[7]; (%o53) 1 (%o54) done (%o55) (y[0]=) 1 10 x +1 11 45 x2 10 x 100 x3 + + +1 (%o57) (y[2]=) − 3993 121 11 10000 x7 500 x6 815 x5 300 x4 305 x3 45 x2 10 x (%o58) (y[3]=) − + − − + + + +1 1227691773 1771561 483153 14641 3993 121 11 20000000 x15 5000000 x14 63550000 x13 308750 x12 4441025 x11 (%o59) (y[4]=) − + − + + − 49738493953232156457 167469676610209281 84822303737638467 65906995911141 53923905745479 10 9 8 7 6 5 4 3 2 47800 x 4824950 x 259075 x 239375 x 1865 x 4055 x 15 x 305 x 45 x 10 x − + + − − + + + + +1 49516901511 1336956340797 6002048668 1227691773 3543122 483153 58564 3993 121 11 400000000000000 x31 20000000000000 x30 (%o60) (y[5]=) − + 843605963230877720824550862630921636361509 274879753415079087919371411740280754761 44119000000000000 x29 516762500000000 x28 351204991000000000 x27 − + − 9420878821589528740509365656916894958627 3281392832319585071581109598368824437 134622337107760639495126301574637875279 17955312500000 x26 110229668537500 x25 1431981566453125 x24 + + − 3874135575347798195491274614366971 194066160546179130386390379569403 192105896298237927049154113109106 339918750063125 x23 89452632760000 x22 398311007858125 x21 5573940156625 x20 − + − − + 15449075576431721406050855250033 88202890862368194237444496377 216498004843994658582818309289 75735014156804288279441448 18 17 16 19 11076614412125 x 28259175625 x 3997464896375 x 710984726697500 x + + − − 4856507782805074985919182853 2581875482618328009526413 5803885382414753872654416 18966945694165862328936 15 14 13 12 11 10 26075471725 x 170086466125 x 176614566175 x 186015625 x 717613075 x 10177235 x + + − − − + 64125661625654681052 26125269551192647836 6107205869109969624 2372651852801076 647086868945748 6536230999452 (%o56) (y[1]=) 2 368960125 x9 2432275 x8 71705 x7 3565 x6 9659 x5 15 x4 305 x3 45 x2 10 x + + − − + + + + +1 21391301452752 24008194672 1227691773 1771561 1932612 58564 3993 121 11 160000000000000000000000000000 x63 493188017690697030061796406661349252029805847572574195862853569426825935514858772657133 8000000000000000000000000000 x62 79074557910966334786242810110846440921886459447262176665520854485622243949792973009 77368400000000000000000000000000 x61 5332778909907603522226468927035588275309744597972692893774143960720981654291463343953 1111607500000000000000000000000 x60 883056616974267846038494606232089464366574697461946165552929948786385437041143127 31638398391397100000000000000000000000 x59 433905844047286313360229021174558993389553654721999514561427133341627620008526692495293 216459612127472500000000000000000000 x58 74286225654389028139056500800301145932126973929464049745151024369393531930923932973 13587608758023569091250000000000000000 x57 172558285924458526178811495589414260613498707466247212730899401434860837494716722047 38490685780586863156250000000000000 x56 30579175247999029980296206909341531209197006462209323539057132985089639818308829 89750198564467289448610000000000000000 x55 28854430337582669107511448122234125104761388292529127537367196250618934549076163489 8317710500069100581158281250000000000 x54 22419914792216526113062508253484168690568289271584403680937992424723336867969047 130615832839572238378335045312500000000 x53 15431889402434751740159908278372220007793757550571083053113163617017361740290383 12881759258307608265963279296875000000 x52 267639019558140348457128197699994667564176088641503441553897062921398879048299 13278103728018545497219249972343750000 x51 10731253773817105873917210393151604786265843087417421892072919848174598162693 9036270865843965808698947822980468750 x50 359196254263238441808676679826227215068117940537441929047400169210042996533 19964708346207585617335066990094494140625 x49 419671841799194586738646608102424742550495615617018515647016997698861144676556 (%o61) (y[6]=) − + − + − + − + − − + − − + − 3 1214580947213042249338492169889525390625 x48 346049756173320623985690874543331059616982573174206155965381981198813559824 623471773738595733130911624173152294140625 x47 + 19129079987558161083845377945636749312577405990976430064700007358427597292771 974361677671687265125227291874234375000 x46 + 4111128301645854520491162249223457836358780569734887183473029735316483407 3137780273716873557932097286110859375 x45 − 660624148207956304080818282125703225255895267006898309411975862641608 185800664758499025052301979550549296875 x44 − 28888033740155323815484671052953590417980012786894244591817512413291056 5233895957274007562751521908423225234375 x43 + 11549244894049700740281578199889503607188290236082719687017951760272354 10468283869567915265173179896818203125 x42 − 43408014635845715725747063941327709117926390363477452429477854865952 4967470060670355137939010571073962203125 x41 − 138680150654779819071867243241124888870258338044356536333137042818496 21276115321914121528166481833265625 x40 + 657040151300906907119351314463229333059764332084240796014256272 501162795698087817003350727862008359375 x39 + 199172762228443098344497905279785291917071287757718266755412503544 25592895101051930931408799399046875 x38 − 26624927485400653127736976752442244368190930012477899491913344 16881089247725513124781432963142078125 x37 − 109588965881894315086773848092289190037015538484373746592911264 7671429398118300954678488366403125 x36 − 59835635207149503186881707940097837858048342060810126449856 8818403831815246652248981604474778125 x35 + 1109679052932590786374897129070905356640169252764115072342784 16840252787931862125590611856290625 x34 + 800634237325101577471065749690407905223787339656648681344 6316613040390825428948179996428125 x33 1748429874806373349954088713403125 x32 − − + 19266599293919556677111207880250457612337128494411331904 1037931275093309450618785609710462362954188740439667712 − 4 55053744522257096612675487270625 x31 15234648633615133360675928125 x30 + 5897336790302894605788554600627627062239708752498112 167094133205913117310228642685696433117704641152 11450712293684831963698619375 x28 364974419655751224305764335625 x29 − − 4716611669130547538620544868537158407549753734336 3285692559477915387405464903195512648937480832 1422811023592076118064041875 x27 4292694191653933709721625 x26 687230275524501640088125 x25 − + + − 164589423202047709573186553592354065902248576 50708653524981138927941985218040028226304 1233061663910062659881615343032441881536 23 22 24 74645528518099457960875 x 1949205898267386039625 x 153623032037675193243875 x − − + 274013703091125035529247854007209307008 4151722774107955083776482636472868288 40113263517951256848081957840317568 7264764021859113475 x20 37944785265226177075 x19 504139789830797675 x18 482886621384668980825 x21 + + − − 1678292533550646593334007533608328 3229038063589507635082265576928 21135521870767686338720283776256 11236322100354963497458949376 17 16 15 14 13 218543735154794125 x 15137769828515 x 305207985580825 x 1835188628125 x 742963085 x + + + − − 1021483827304996681587177216 151735565553326898631488 62073640453633731258336 104501078204770591344 28841586158724768 12 11 10 9 8 7 6 5 499703465 x 36142536893 x 112932599 x 165611755 x 1072565 x 68555 x 21959 x 9659 x − + + + − − − + 1186325926400538 28471822233612912 52289847995616 5347825363188 12004097336 350769078 14172488 1932612 15 x4 305 x3 45 x2 10 x + + + +1 58564 3993 121 11 25600000000000000000000000000000000000000000000000000000000 x127 339798485848769963498939274890[117digits]004714068794950492626564225533 1280000000000000000000000000000000000000000000000000000000 x126 270260467548532540761106557615[113digits]893900001118968818141463975521 12816077312000000000000000000000000000000000000000000000000000 x125 896851366841789731584872655915[114digits]735957179989792079075392561409 24921481400000000000000000000000000000000000000000000000000000 x124 905910471557363365237245106984[112digits]896322799797876687667428207691 408099196660032089032000000000000000000000000000000000000000000000000000 x123 107737149954017761628273562555[121digits]898514739257417856846451305097 3505443093406882389800000000000000000000000000000000000000000000000000 x122 884759382064693780309382956023[116digits]352048822759239337920411139961 9241311055306037440635098050000000000000000000000000000000000000000000000 x121 283347158885070113935444565454[118digits]225301270153940585054716820599 (%o62) (y[7]=) − + − + − + − 5 + − + − + − + + − + − − + − 6176759589347585898193499521250000000000000000000000000000000000000000000 x120 286209251399060721146913702479[116digits]992174760304585258434896129501 21275707682710028961299428121364991883200000000000000000000000000000000000000000000 x119 183293101810154401498118867097[124digits]443628165284504432240500938323 79120658717211262902152974740380829813125000000000000000000000000000000000000000 x118 155583653178978356249994794243[120digits]258844209164356549056297470583 15115135289244878302384793240394785504887843750000000000000000000000000000000000000 x117 840226772540830859005883991982[120digits]321578899535491022246620754077 119129250296165644510249559975916911874953125000000000000000000000000000000000000 x116 238344566155315175653178078903[117digits]125977680525515426468737093491 138006003690310268912635313848176590040883490997026562500000000000000000000000000000000 x115 136379811858776618586262354002[122digits]822192631037403296116020555417 667789775648726499663935341522457342005533480686445312500000000000000000000000000000 x114 598945155286678166825921624954[118digits]132113391581483268904750118821 90669178916220326481893294617627269493472680029252624804687500000000000000000000000000 x113 803691130728087636729571822889[119digits]181629411438528648300407314271 348026990442493455863031054306680691684056511450779916992187500000000000000000000000 x112 415924613532105592676898940583[115digits]864212680712696710068224416877 10589446911428013497116159162027607617174485215242742905136711328125000000000000000000000000 x111 563802121128590603948657183543[121digits]886862983398697058664213326119 287399261388519751637432457663453257760526772456976584315605468750000000000000000000000 x110 171268362781010115417160335180[116digits]702224905714345850010499914997 43115536219265731221472980323668152743408837545081914033710825790429687500000000000000000000 x109 170899357308472848168488817003[120digits]664756902158503154772924528701 24303293140010650678182682523103257143317591825343218303772314137773437500000000000000000000 x108 226472135067293274841014742206[118digits]291174148550520429166205931573 51249441094461776841194753870291380855982919803599003789437998488062533300781250000000000000000 x107 373737262931861044099747132402[120digits]394782075224492361922049423779 6 − + − − + − − + − − + + − + 491062494189198227139699632970393240269306209613571443459318847323683733520507812500000000000 x106 109372747577529428557463996077[118digits]084040238301893633835512464093 36889725524044031280757915249468802909093452944928751945666187004472112473010253906250000000000 x105 870903120892063302368430458445[117digits]948233445991398842722672487731 119521585576514918492240561665092528019329264422693394301646546881221743283843994140625000000 x104 220102532570694535128698968798[114digits]631238904271331012824976177001 8080731039772471911750295603615550865459893976339889505570429332052791648691415551757812500000000 x103 470218233289769981821121646942[118digits]114497505450219794846174872963 434727172095359637813872639313523847474360088919525839044025985495209018797039277954101562500000 x102 322793726883239175517098316033[115digits]837285621510066837164256469953 125270760057025373402435236204[41digits]883887602195683731079101562500 x101 986956492387634835469687969379[118digits]947937113461630395039804902659 42004361535365562899728766209165646895138592123465084642206824855693091790383892662739715576171875 x100 394822079162970231210996287380[115digits]123291503995784230581074029364 7830417922747338555159627266112377767303180676872231599928645311067991672371133992273593902587890625 x99 242671131583093898207734303463[116digits]294377048949698197717820863408 29248963331288047091415583275528081419357849790161330316555866253628021402459879044310760498046875 x98 238859573630706346327616184230[113digits]005499305809297673733326867136 280328769629811160879676780328[41digits]014475135700864948272705078125 x97 724405191716414668399504009175[114digits]559537388378903362818937556736 27767095450500752434535693427123883853895450308730457062547697886651170469045579633342437744140625 x96 598279970320967850319353945104[110digits]563695502339185365124206284544 864320554245761272904768625153[41digits]356559441850530973236083984375 x95 411037278668006956794528022952[113digits]296134883474264857569850635216 2386499191071462711750910339042074291072763465624264441102736425348801264391274132100151214599609375 x94 330733905274773188219227398958[110digits]312320697062726250154804253568 216506094233061753584330239047324916882957083471834863646464057931945225578112901143862274169921875 x93 163866077155928391127812414600[109digits]916679481047744062089205448064 7 + − − + + − − + + − − + + − 35847526246466807391676122736073690660582598388401541067138227487049127410679232638376007080078125 x92 462747692631056605769862363378[106digits]414123348159795953688967018752 147414689309028665727167274732405631358959247843240329889544916283379983252519092917825323486328125 x91 312766227035220077417574957066[106digits]544723685910375921268036996864 82076877360808774934219692216492834295095580360813390800599382346878622183272942007144775390625 x90 126243948792710351231626941569[102digits]006671902791588628580359762944 212045596260163456567490622022744196443644458433034368946099804050306446419668079975143780517578125 x89 308982064670158584639406939492[104digits]882948208241316845043051980544 1262364387455024924664987634437400527945556390184803619911459432057405821853607201777569580078125 x88 280542108428245224959170981266[101digits]334815978398130806351191058432 1714811273358083989204427719141695035660698123385647791781050159043853664359380196039904798583984375 x87 228804115456540330785915605671[103digits]228359362164907954353131901952 702532936285992605368452637130527759411666229334127258314323246742912425472279286324957275390625 x86 265649733491861524191240689274[99digits]715688884170691386039051797504 5970359755890542548202207245275519794055171739373629796544357533849877682911078504968569580078125 x85 859289835607924169159827176722[98digits]263214374795170786604598150144 4332262814224875776402232897499567731072715796922165691249696567214879150344272278428955078125 x84 314197115264106830900800649653[95digits]002701481557583132971929100288 155682177385914567214206491251934154734794047955838577446285680908967963330465841788044175537109375 x83 270774665886405625173127011818[98digits]438522908297147133996846772224 24090848723891318975255690724712973282633532883626752846037911388145109660372397085950927734375 x82 329529835568219088685806269707[94digits]267304189230655609971278671872 1396045645441901531387274649948215981353851016343473980812597963875962940247912625397705078125 x81 320779678774968557479017514182[91digits]567617298978213822993860960256 66347494845262236733326849891305221408247234064009536041758680338535990477368890438525390625 x80 131208049180932394130337628945[90digits]587377288198635008597329641472 48096501888442493266562236917550317769199575776232002736711906909530552521528059295850341796875 x79 158090702571355788293742527069[91digits]224027293519910443340902663168 8 − + + − − + + − − + + − − − 1635907867927819470408652903181677907509739663996860162115444024206931172577458638748095703125 x78 347674221228400403868095060171[89digits]860188300023708553414478360576 30254962311710354832669418929161672418245687460868266252098016171394108991228309068896484375 x77 154367508592918372235806442522[86digits]144016067621278147875863904256 723155732052434693653126131788722525658039569155876250511478786110542091507227630712890625 x76 155926776356483204278592366184[84digits]688323394622437153008847110144 24867727950706823402472544361306182316058720582152895230913217682490357964746502168251953125 x75 216381794446849898081312542732[84digits]907040537282039271909637963776 37572458268196284698265784808454739625616542235558208644200594628205215063787644461376953125 x74 903412205771359843841170212082[83digits]116070796710346362682811809792 54578484931859143721405119278061080956606783247396265596266320890749592429414366312236328125 x73 911458567554949965300443533996[82digits]695678518648448642549540442112 655804503583650199538245890895186931505136326801281863106770021591796803022360736201171875 x72 201789637206021854778014342658[80digits]268732649273332666152039940096 2291055998712261054280937380442254916206183653156242808425386580136563636861000214501953125 x71 864915099814163276694116873540[79digits]771789881986119505697980187392 172662789662118556781021517952196589646485939350487824835775810519596329958721906287109375 x70 787516949610278129298954046188[77digits]886953272506346798743017603072 164039401862573573822172417986676528423392474623188806834773524215012131800992118935546875 x69 184094871337467614641313932875[77digits]025521544222262888017848270848 147828744787282282986862851324004610648665348676599483154600722785555995047239361328125 x68 116540174221631981161439025033[73digits]580273587202647533724270854144 75944033311765976044269705655130375246519772761598337017837155135619068963804966611328125 x67 573557608910036279049896931068[75digits]157735384079465990931037356032 48702455190022768712007993687654463800343623849416867840920791033603558511383318359375 x66 786093785768178774241597701669[70digits]364268982023547270068266532864 12787866389074228440373265693297640230693537919990721493371125723706404296326953125 x65 131079805449447754503408577394[67digits]144225071688351346558430609408 9 + + − − + + + − − + + + − − + 4370142433737429908243065318815450783882882703605465105780484855731247130983806640625 x64 177685958498140289437953849356[68digits]177273193997651586680948260864 212538529989779490197349065209244951262596460470818572138493070401346282561348828125 x63 194704581146501128848407221291[66digits]515741224122539201639766884352 30015169305025589733598343119295038286543041337532249028373181758251708426953125 x62 420237807879006148770627689915[61digits]414605796020549998687767412736 34168597520052422045447418237564793674574104809433678231682207243002712101953125 x61 524316966375299593774070271609[60digits]775535993745032631134597480448 332313184433923125758192167681146043496894280846332474102923627897879195703125 x60 382016004645027026429195097711[58digits]240623213069180565618467012608 483156559288760930421897751144429684052391164164929120141092386597191876953125 x59 173643638475012284740543226232[57digits]420028327866780934800839409664 81430130856676566059457351190084876614616159407193304652476135166733671875 x58 148642046289173330543180299805[53digits]779611370341368496912754737152 15207924138889381574562055276417348094096950846878310490791960768579609375 x57 179728403484446033348225172178[51digits]206918722346268226339742220288 663376521858450539405195937225104793564937985384325918314966978096796875 x56 140139106030757141012261342829[49digits]826174804852602481296996040704 1190472171839676123863333610071408900203867925783612973652110018999578125 x55 859944514279646092575240058269[48digits]393334539341369704432247570432 16480196352119380047001905230630114591922263475334802530435564943515625 x54 789664384095175475275702532846[45digits]326348332910322653539423551488 612652928048755715241911476236026751559106465907425697952698135171875 x53 239292237604598628871425009953[44digits]222010555542737050107255259136 21585940437621043431677732992611642171394269733474200201453433578125 x52 364844273077337341523041753311[41digits]426105600237153020087832674304 557309000274693340670860198428797079432689428636226815387140265625 x51 191351891474127976323273646841862173794700941928804175487047289388114320416637763481571783677444096 20944927399921297156357297609962478461972205501949835074663125 x50 2613721958928404755100342803858219432932447421186908646806773473588000634016128335164652388352 10 + + − − + + + − − − + + − − − + 2745357554671771965900397136842114757342069289708449010044078125 x49 23256185157283419582313277447965747908933026486242607618746632157038687459484414618567304773632 7454115188057057562365046297922227237897625843923789460615625 x48 38352809989335674429706497543542771237160216839814648721907453567575654437409877746555027456 893399043775255183912775121232594313247146472688780797059375 x47 326870539681838134344089467700648618498524575339329392516256706541837963955197821703593984 8900252480815527713438614953449122528749444880279684309375 x46 561995340093424688319947505180569298944379239783931902026661004155319946624023763943424 1842354275927229081307205170736595928257347379487693043125 x45 109955610018278743366946251013589645445639416479464937353042370378214772165569866858496 19008543326446119373035665065143133423254743346160634375 x44 37971375297687557063609168959195250089144234301809526842110807348084182738692866048 1698717681461071554539350189367302319412537052408148125 x43 1147378850679091987717529124025269695358955426991661838979071399722585067259056128 8108265284752020820241720210136771607490331877686875 x42 1078110266083243587237518556753835748516753983548660407779254310286666729865216 259958341528478667694478767180762928373682149914375 x41 3818572371015030415245048016837670892031005844918513841012707120259740483584 69443837464199213613702717703644541082043980375 x40 909752493168952122515869565344452399900177097571342527415993834303520768 47675169593273550858342148239385472119185243235625 x39 33867604177516899470022598818959387069011138314133160452440861377026523136 65806962603077633900162218525873562217686120375 x38 8771718253695130657866510960621441872315757139117627674809857906507776 217734823489353110559404348708188613448196625 x37 53961356311179887847435815888990414798934937971331954253785865453568 40168260108025530135948887370262721883857875 x36 206240510061839593192492880820602185963715296641727370885340463104 342004499068698372598241022859574768764025 x35 493398349430238261226059523494263602784007886702697059534307328 3242163887390908770452119038526991101375 x34 1957929958056501036611347315453426995174634471042448648945664 11 10011489451734472505912134099270852265675 x33 447601634796339140722647581473978631249816169182164062793728 240293522251252092726729798259948168225 x32 + 4384221705994139119413750415416993021118493239617156415488 322084227972992523887625208204752125 x31 − 1231830524286565062272844459876153134055520702939385856 23454687583709373696423552245107165 x30 1649545928039828619824891345657425 x29 − − 10435840218784845754022142703414787059447226548199424 433107993269726800068112641841325154641090429865984 1891146837600423884535719974805 x27 424308109323841786473607998558415 x28 + + 13878765371234714596400683751097845429111919034368 9217007699314671736098447001171827690525920256 912526145350331987587925 x26 5128342670273805445588449641 x25 + − 3681101789274640131803241939353061055248 1705148129521343792522005217222005344752640 3382445070182526828251317115 x24 36879036431503341222736247 x23 − − 192905646976152025012590489221075352133632 2260613050501781543116294795559476782816 489602711827916198483773 x22 3331961065622332464005611 x21 80005297066371569813 x20 + + + − 1868806159189258554334171212325383168 2363035887239310403414282607320525824 66860082257853334561703381357568 19 18 17 4731110497254351341515 x 26552174399289505391 x 565651831293105703 x 37776004475893543 x16 − − + + 232490740578444549725923121538816 247199086207809196944096886272 5618161050177481748729474688 26705459537385534159141888 15 14 13 12 11 10422115309574959 x 6056314663325 x 45927381279551 x 106647297697 x 6565301671 x + − − − + 1365620089979942087683392 656863920144272288448 537434116481677326912 208793363046494688 8134806352460832 664513735 x9 23075 x8 1388099 x7 21959 x6 9659 x5 15 x4 305 x3 45 x2 10 x 119051557 x10 + + − − − + + + + +1 26144923997808 21391301452752 428717762 9821534184 14172488 1932612 58564 3993 121 11 + ※ 計算は Maxima を利用して行いました。y[7] の式の中で [∗digits] と書いてあるのは桁数のことで、桁数が長過ぎて入りきってい ないことを表しているんですね。(%i53) を見れば分かるように、実際には y[8] まで計算しているのですが、y[7] の時点でこの あり様ですので y[8] を表示しようとすると << Expression too long to display! >> (長すぎて表示出来ないよ!!) と怒られてしまいます。ピカールの逐次近似法は、「(多項式の) 不定積分を繰り返す」という単純極まりない方法で微分方程式 の解を作れる大変画期的な方法ではありますが、この計算結果からも分かるように数ステップでコンピューターの計算容量を あっと言う間に超えてしまうような巨大な式が現れてしまうため、実用性はあまり高くありません (例えばこれを用いて解を計 算するのは実質的にはほぼ不可能な場合が多いです)。 12
© Copyright 2024 ExpyDoc