歐拉編譯器
⑴ 華為歐拉系統可以下載了嗎
華為歐拉系統(EulerOS),華為繼鴻蒙操作系統後,又推出了第二款自主研發的操作系統歐拉(EulerOS),歐拉系統是一款基於linux平台的一個原生態操作系統工具,用戶可以在這里進行更開闊的編程環境體驗,幫助更多國內優秀程序開發師展示自我,共創一個出色的操作系統環境。華為歐拉系統與鴻蒙系統將相互協作,生態共通。本次帶來華為歐拉系統下載,PDF格式文檔,幫您快速了解消化,想要嘗鮮體驗安裝最新華為歐拉操作系統的朋友們不要錯過哦!
Space
華為歐拉系統(EulerOS)
華為歐拉系統介紹
OpenEuler 是一個開源、免費的 Linux 發行版平台,將通過開放的社區形式與全球的開發者共同構建一個開放、多元和架構包容的軟體生態體系。同時,OpenEuler 也是一個創新的平台,鼓勵任何人在該平台上提出新想法、開拓新思路、實踐新方案。
歐拉的定位是瞄準國家數字基礎設施的操作系統和生態底座,承擔著支撐構建領先、可靠、安全的數字基礎的歷史使命。
未來歐拉將定位為數字基礎設施開源系統,覆蓋全場景應用,支持伺服器,雲計算,邊緣計算,嵌入式多樣性設備。
OpenEuler與OpenHarmony將能力共享、生態互通。目前兩個操作系統的內核技術已經共享,未來還將在安全OS,編程語言,設備驅動框架,分布式軟匯流排方面能力共享。
華為歐拉系統優勢
1.全面支持鯤鵬處理器
EulerOS是目前支持TaiShan伺服器最好的操作系統之一,在性能、兼容性、功耗等方面具備較強的競爭力,持續推動鯤鵬處理器的生態構建。
- 提升多核並發能力,增強業務性能;L2 Cache共享技術,提升不同OSD進程間訪問效率;首次在鯤鵬處理器架構內實現內核熱補丁。
- 通過和Linaro及綠色產業聯盟合作,聯合構建綠色計算生態聯盟,促進鯤鵬生態發展。
- 通過鯤鵬處理器的關鍵特性使能,實現了核心業務場景性能突破,並在Linux內核、虛擬化、GCC、OpenJDK及Docker等開源社區持續貢獻,催熟產業生態。
2.高安全
EulerOS是目前最安全的操作系統之一,能夠提供各種安全技術以防止入侵,保障您的系統安全。
- 可配置加固策略。
- 內核級OS安全能力。
- 通過公安部信息安全技術操作系統安全技術要求認證。
- 通過德國BSI PP標準的CC EAL4+認證。
- 通過美國NIAP PP標準的CC EAL2+認證。
- 通過美國NISTCAVP密碼演算法認證。
- 支持業界主流的安全漏掃工具。
3.高可靠、高可用、高保障
EulerOS在標准資質、RAS特性方面為客戶業務系統提供了高可靠性和高穩定性技術保障,同時通過技術維護團隊的7 * 24小時的服務保障體系,讓客戶沒有後顧之憂。
- 故障管理(故障預測、分析、糾正、隔離)。
- 設備熱插拔(支持設備動態調整、在線設備維護)。
- 軟體故障修復(內核/用戶態熱補丁)。
- 7*24的服務保障體系(定製、調測、補丁升級、現場)。
- Unix03、LSB、IPv6 Ready、GB18030等行業標准認證體系。
4.高性能
EulerOS在編譯系統、虛擬存儲系統、CPU調度、IO驅動、網路和文件系統等方面進行改進與優化,使之成為一個高性能的操作系統平台,滿足客戶業務系統的高負載需求。
相關新聞
9月25日,在華為全聯接2021上,面向數字基礎設施的開源操作系統歐拉(OpenEuler)全新發布。歐拉操作系統可廣泛部署於伺服器、雲計算、邊緣計算、嵌入式等各種形態設備,應用場景覆蓋IT(Information Technology)、CT(Communication Technology)和OT(Operational Technology),實現統一操作系統支持多設備,應用一次開發覆蓋全場景。
歐拉全新發布
Space
華為歐拉系統(EulerOS)
華為計算產品線總裁鄧泰華表示,操作系統「碎片化」現狀,導致數字基礎設施產生大量「軟煙囪」,帶來生態割裂、應用重復開發、協同繁瑣的挑戰,數字化新時代,呼喚新的統一操作系統。
在ICT領域,華為提供伺服器、存儲、雲服務、邊緣計算、基站、路由器、工業控制等產品和解決方案,都需要搭載操作系統,所以華為一直在構建能力,旨在通過統一的操作系統架構來滿足不同應用場景的需求。
本次歐拉全新升級,同時支持伺服器、雲計算、邊緣計算、嵌入式等各種形態設備的需求。支持多樣性計算,致力於提供安全、穩定、易用的操作系統;並通過為應用提供確定性保障能力,支持OT領域應用及OT與ICT的融合。至此全新發布的歐拉操作系統可覆蓋從IT、CT到OT數字基礎設施全場景。
⑵ 如何為phoenics 配置fortran編譯器
看你做什麼了
Phoenics是世界上第一套計算流體與計算傳熱學商業軟體,它是國際計算流體與計算傳熱的主要創始人、英國皇家工程院院士D.B.Spalding教授及40多位博士20多年心血的典範之作。
Phoenics是 Parabolic Hyperbolic Or Elliptic Numerical Integration Code Series 幾個字母的縮寫,這意味著只要有流動和傳熱都可以使用Phoenics來模擬計算。除了通用計算流體/計算傳熱學軟體應該擁有的功能外Phoenics有著自己獨特的功能。
Phoenics 主要特點
1、開放性:Phoenics最大限度地向用戶開放了程序,用戶可以根據需要任意修改添加用戶程序、用戶模型。PLANT及INFORM功能的引入使用戶不再需要編寫FORTRAN源程序,GROUND程序功能使用戶修改添加模型更加任意和方便。
2、CAD介面:Phoenics可以讀入任何CAD軟體的圖形文件。
3、MOVOBJ:運動物體功能可以定義物體運動,避免了使用相對運動方法的局限性。
4、大量的模型選擇:20多種湍流模型,多種多相流模型,多流體模型,燃燒模型,輻射模型。
5、提供了歐拉演算法也提供了基於粒子運動軌跡的拉格朗日演算法。
6、計算流動與傳熱時能同時計算浸入流體中的固體的機械和熱應力。
7、VR(虛擬現實)用戶界面引入了一種嶄新的CFD建模思路。
8、PARSOL(CUT CELL):部分固體處理。
9、軟體自帶1000多個例題,附有完整的可讀可改的原始輸入文件。
10、Phoenics專用模塊:建築模塊(FLAIR) 電站鍋爐模塊(COFFUS)
Phoenics 應用領域
能源動力 兩相、多相流 航空航天 傳熱傳質 化工 燃燒、爆炸 船舶水利 化學反應 建築、暖通空調 流體機械 冶金 磁流體 環境 材料
Fluent是一款通用型軟體,在航空領域還可以,不是每個領域都很強。現在被Ansys收購,整體價位比較高,我覺還是選擇對行業有針對性的軟體,既不貴也很好用。
⑶ 華為自研編程語言「倉頡」試用報名開啟,對應聘人員有何要求
華為自研編程語言「倉頡」試用報名開啟,對應聘人員有何要求?下面就我們來針對這個問題進行一番探討,希望這些內容能夠幫到有需要的朋友們。

盡管因為本次使用必須實行信息保密步驟,但從開發流程看來,應當不用太長期的等候,大家就可以一睹這一款自研編程語言的真面目,及其它的具體主要表現了。相信不久之後我們就能看到這款編程語言的全貌了,希望能夠給我們帶來一些驚喜!
⑷ 華為將發布自研鴻蒙編程語言,這意味著什麼
華為在再次推出了全新的OpenEuler操作系統,這是華為推出專為數字基礎設施而打造的一款操作系統,華為高管也直接表示,未來OpenEuler 和 OpenHarmony將共享核心技術、安全新、編程語言、設備驅動程序框架、分布式軟匯流排以及生態互通等能力。
同時還會為這兩款操作系統推出的全新編程語言,在華為開發者大會上,華為消費者業務軟體部總裁龔體宣布,華為將發布為HarmonyOS全新研發的編程語言。目前國內熟知的編程語言諸如Java、Python等都是由國外開發的,華為這波太強了。

華為提前揭秘鴻蒙系統3.0版本的一些特性。鴻蒙系統3.0將圍繞系統架構、超級終端、一次開發多端部署、三個核心價值持續創新,帶來系統能力、開發工具的全面升級。
按照樂觀估計,華為Mate50系列手機有望明年第一季度發布,鴻蒙系統3.0正式版有望同期亮相,期待華為帶來更多的驚喜,打造出媲美甚至超越蘋果的生態系統,為用戶提供更多的便利。
⑸ 在VC6.0編譯器下,怎樣用C語言畫出歐拉常數的圖形。
學過高等數學的人都知道,調和級數
S=1+1/2+1/3+……是發散的,證明如下:
由於ln(1+1/n)<1/n (n=1,2,3,…)
於是調和級數的前n項部分和滿足
Sn=1+1/2+1/3+…+1/n>ln(1+1)+ln(1+1/2)+ln(1+1/3)+…+ln(1+1/n)
=ln2+ln(3/2)+ln(4/3)+…+ln[(n+1)/n]
=ln[2*3/2*4/3*…*(n+1)/n]=ln(n+1)
由於
lim Sn(n→∞)≥lim ln(n+1)(n→∞)=+∞
所以Sn的極限不存在,調和級數發散。
但極限S=lim[1+1/2+1/3+…+1/n-ln(n)](n→∞)卻存在,因為
Sn=1+1/2+1/3+…+1/n-ln(n)>ln(1+1)+ln(1+1/2)+ln(1+1/3)+…+ln(1+1/n)-ln(n)
=ln(n+1)-ln(n)=ln(1+1/n)
由於
lim Sn(n→∞)≥lim ln(1+1/n)(n→∞)=0
因此Sn有下界
而
Sn-S(n+1)=1+1/2+1/3+…+1/n-ln(n)-[1+1/2+1/3+…+1/(n+1)-ln(n+1)]
=ln(n+1)-ln(n)-1/(n+1)=ln(1+1/n)-1/(n+1)
將ln(1+1/n)展開,取其前兩項,由於舍棄的項之和大於0,故
ln(1+1/n)-1/(n+1)>1/n-1/(2n^2)-1/(n+1)=1/(n^2+n)-1/(2n^2)>0
即ln(1+1/n)-1/(n+1)>0,所以Sn單調遞減。由單調有界數列極限定理,可知Sn必有極限,因此
S=lim[1+1/2+1/3+…+1/n-ln(n)](n→∞)存在。
於是設這個數為γ,這個數就叫作歐拉常數,他的近似值約為0.57721566490153286060651209,目前還不知道它是有理數還是無理數。在微積分學中,歐拉常數γ有許多應用,如求某些數列的極限,某些收斂數項級數的和等。例如求lim[1/(n+1)+1/(n+2)+…+1/(n+n)](n→∞),可以這樣做:
lim[1/(n+1)+1/(n+2)+…+1/(n+n)](n→∞)=lim[1+1/2+1/3+…+1/(n+n)-ln(n+n)](n→∞)-lim[1+1/2+1/3+…+1/n-ln(n)](n→∞)+lim[ln(n+n)-ln(n)](n→∞)=γ-γ+ln2=ln2!
⑹ 菜鳥學習編程需要學習些什麼
C/C++的基礎都不難的.. 建議去看潭浩強寫的教程.. 詳細也易懂..
數據結構一塊確實比較麻煩.. 要多看多寫多練.. 畢竟這對你以後很重要..
深入後的數據結構幾乎都是些演算法問題了.. 比如圖的哈密爾頓迴路.. 歐拉路求解等等.. 這些層面上的理解看你是否要往計算機科學技術這一塊發展.. 如果只是單純的應用開發則不必深究.. 只要能應用好這些基本的數據結構即可..
pascal已經是古董了現在應該也只有高中信息學競賽還在用.. JAVA再說吧.. 這個看你發展需要..
C/C++的編譯器建議你去用DEV_C++ 這個對新手來說還是比較好使的.. 而且有完美的漢化..
⑺ 有關少年天才的故事
數學天才——高斯的故事
高斯(C.F.Gauss,1777.4.30-1855.2.23)是德國數學家、物理學家和天文學家,出生於德國布倫茲維克的一個貧苦家庭。父親格爾恰爾德·迪德里赫先後當過護堤工、泥瓦匠和園丁,第一個妻子和他生活了10多年後因病去世,沒有為他留下孩子。迪德里赫後來娶了羅捷雅,第二年他們的孩子高斯出生了,這是他們唯一的孩子。父親對高斯要求極為嚴厲,甚至有些過份,常常喜歡憑自己的經驗為年幼的高斯規劃人生。高斯尊重他的父親,並且秉承了其父誠實、謹慎的性格。1806年迪德里赫逝世,此時高斯已經做出了許多劃時代的成就。
在成長過程中,幼年的高斯主要是力於母親和舅舅。高斯的外祖父是一位石匠,30歲那年死於肺結核,留下了兩個孩子:高斯的母親羅捷雅、舅舅弗利德里希(Friederich)。弗利德里希富有智慧,為人熱情而又聰明能幹投身於紡織貿易頗有成就。他發現姐姐的兒子聰明伶利,因此他就把一部分精力花在這位小天才身上,用生動活潑的方式開發高斯的智力。若干年後,已成年並成就顯赫的高斯回想起舅舅為他所做的一切,深感對他成才之重要,他想到舅舅多產的思想,不無傷感地說,舅舅去世使"我們失去了一位天才"。正是由於弗利德里希慧眼識英才,經常勸導姐夫讓孩子向學者方面發展,才使得高斯沒有成為園丁或者泥瓦匠。
在數學史上,很少有人象高斯一樣很幸運地有一位鼎力支持他成才的母親。羅捷雅直到34歲才出嫁,生下高斯時已有35歲了。他性格堅強、聰明賢慧、富有幽默感。高斯一生下來,就對一切現象和事物十分好奇,而且決心弄個水落石出,這已經超出了一個孩子能被許可的范圍。當丈夫為此訓斥孩子時,他總是支持高斯,堅決反對頑固的丈夫想把兒子變得跟他一樣無知。
羅捷雅真誠地希望兒子能幹出一番偉大的事業,對高斯的才華極為珍視。然而,他也不敢輕易地讓兒子投入當時尚不能養家糊口的數學研究中。在高斯19歲那年,盡管他已做出了許多偉大的數學成就,但她仍向數學界的朋友W.波爾約(W.Bolyai,非歐幾何創立者之一J.波爾約之父)問道:高斯將來會有出息嗎?W.波爾約說她的兒子將是"歐洲最偉大的數學家",為此她激動得熱淚盈眶。
7歲那年,高斯第一次上學了。頭兩年沒有什麼特殊的事情。1787年高斯10歲,他進入了學習數學的班次,這是一個首次創辦的班,孩子們在這之前都沒有聽說過算術這么一門課程。數學教師是布特納(Buttner),他對高斯的成長也起了一定作用。
在全世界廣為流傳的一則故事說,高斯10歲時算出布特納給學生們出的將1到100的所有整數加起來的算術題,布特納剛敘述完題目,高斯就算出了正確答案。不過,這很可能是一個不真實的傳說。據對高斯素有研究的著名數學史家E·T·貝爾(E.T.Bell)考證,布特納當時給孩子們出的是一道更難的加法題:81297+81495+81693+…+100899。
當然,這也是一個等差數列的求和問題(公差為198,項數為100)。當布特納剛一寫完時,高斯也算完並把寫有答案的小石板交了上去。E·T·貝爾寫道,高斯晚年經常喜歡向人們談論這件事,說當時只有他寫的答案是正確的,而其他的孩子們都錯了。高斯沒有明確地講過,他是用什麼方法那麼快就解決了這個問題。數學史家們傾向於認為,高斯當時已掌握了等差數列求和的方法。一位年僅10歲的孩子,能獨立發現這一數學方法實屬很不平常。貝爾根據高斯本人晚年的說法而敘述的史實,應該是比較可信的。而且,這更能反映高斯從小就注意把握更本質的數學方法這一特點。
高斯的計算能力,更主要地是高斯獨到的數學方法、非同一般的創造力,使布特納對他刮目相看。他特意從漢堡買了最好的算術書送給高斯,說:"你已經超過了我,我沒有什麼東西可以教你了。"接著,高斯與布特納的助手巴特爾斯(J.M.Bartels)建立了真誠的友誼,直到巴特爾斯逝世。他們一起學習,互相幫助,高斯由此開始了真正的數學研究。
1788年,11歲的高斯進入了文科學校,他在新的學校里,所有的功課都極好,特別是古典文學、數學尤為突出。經過巴特爾斯等人的引薦,布倫茲維克公爵召見了14歲的高斯。這位朴實、聰明但家境貧寒的孩子贏得了公爵的同情,公爵慷慨地提出願意作高斯的資助人,讓他繼續學習。
布倫茲維克公爵在高斯的成才過程中起了舉足輕重的作用。不僅如此,這種作用實際上反映了歐洲近代科學發展的一種模式,表明在科學研究社會化以前,私人的資助是科學發展的重要推動因素之一。高斯正處於私人資助科學研究與科學研究社會化的轉變時期。
1792年,高斯進入布倫茲維克的卡羅琳學院繼續學習。1795年,公爵又為他支付各種費用,送他入德國著名的哥丁根大家,這樣就使得高斯得以按照自己的理想,勤奮地學習和開始進行創造性的研究。1799年,高斯完成了博士論文,回到家鄉布倫茲維克,正當他為自己的前途、生計擔憂而病倒時—雖然他的博士論文順利通過了,已被授予博士學位,同時獲得了講師職位,但他沒有能成功地吸引學生,因此只能回老家-又是公爵伸手救援他。公爵為高斯付諸了長篇博士論文的印刷費用,送給他一幢公寓,又為他印刷了《算術研究》,使該書得以在1801年問世;還負擔了高斯的所有生活費用。所有這一切,令高斯十分感動。他在博士論文和《算術研究》中,寫下了情真意切的獻詞:"獻給大公","你的仁慈,將我從所有煩惱中解放出來,使我能從事這種獨特的研究"。
1806年,公爵在抵抗拿破崙統帥的法軍時不幸陣亡,這給高斯以沉重打擊。他悲痛欲絕,長時間對法國人有一種深深的敵意。大公的去世給高斯帶來了經濟上的拮據,德國處於法軍奴役下的不幸,以及第一個妻子的逝世,這一切使得高斯有些心灰意冷,但他是位剛強的漢子,從不向他人透露自己的窘況,也不讓朋友安慰自己的不幸。人們只是在19世紀整理他的未公布於眾的數學手稿時才得知他那時的心態。在一篇討論橢圓函數的手搞中,突然插入了一段細微的鉛筆字:"對我來說,死去也比這樣的生活更好受些。"
慷慨、仁慈的資助人去世了,因此高斯必須找一份合適的工作,以維持一家人的生計。由於高斯在天文學、數學方面的傑出工作,他的名聲從1802年起就已開始傳遍歐洲。彼得堡科學院不斷暗示他,自從1783年歐拉去世後,歐拉在彼得堡科學院的位置一直在等待著象高斯這樣的天才。公爵在世時堅決勸阻高斯去俄國,他甚至願意給高斯增加薪金,為他建立天文台。現在,高斯又在他的生活中面臨著新的選擇。
為了不使德國失去最偉大的天才,德國著名學者洪堡(B.A.Von Humboldt)聯合其他學者和政界人物,為高斯爭取到了享有特權的哥丁根大學數學和天文學教授,以及哥丁根天文台台長的職位。1807年,高斯赴哥丁根就職,全家遷居於此。從這時起,除了一次到柏林去參加科學會議以外,他一直住在哥丁根。洪堡等人的努力,不僅使得高斯一家人有了舒適的生活環境,高斯本人可以充分發揮其天才,而且為哥丁根數學學派的創立、德國成為世界科學中心和數學中心創造了條件。同時,這也標志著科學研究社會化的一個良好開端。
高斯的學術地位,歷來為人們推崇得很高。他有"數學王子"、"數學家之王"的美稱、被認為是人類有史以來"最偉大的三位(或四位)數學家之一"(阿基米德、牛頓、高斯或加上歐拉)。人們還稱贊高斯是"人類的驕傲"。天才、早熟、高產、創造力不衰、……,人類智力領域的幾乎所有褒獎之詞,對於高斯都不過份。
高斯的研究領域,遍及純粹數學和應用數學的各個領域,並且開辟了許多新的數學領域,從最抽象的代數數論到內蘊幾何學,都留下了他的足跡。從研究風格、方法乃至所取得的具體成就方面,他都是18—19世紀之交的中堅人物。如果我們把18世紀的數學家想像為一系列的高山峻嶺,那麼最後一個令人肅然起敬的巔峰就是高斯;如果把19世紀的數學家想像為一條條江河,那麼其源頭就是高斯。
雖然數學研究、科學工作在18世紀末仍然沒有成為令人羨慕的職業,但高斯依然生逢其時,因為在他快步入而立之年之際,歐洲資本主義的發展,使各國政府都開始重視科學研究。隨著拿破崙對法國科學家、科學研究的重視,俄國的沙皇以及歐洲的許多君主也開始對科學家、科學研究刮目相看,科學研究的社會化進程不斷加快,科學的地位不斷提高。作為當時最偉大的科學家,高斯獲得了不少的榮譽,許多世界著名的科學泰斗都把高斯當作自己的老師。
1802年,高斯被俄國彼得堡科學院選為通訊院士、喀山大學教授;1877年,丹麥政府任命他為科學顧問,這一年,德國漢諾威政府也聘請他擔任政府科學顧問。
高斯的一生,是典型的學者的一生。他始終保持著農家的儉朴,使人難以想像他是一位大教授,世界上最偉大的數學家。他先後結過兩次婚,幾個孩子曾使他頗為惱火。不過,這些對他的科學創造影響不太大。在獲得崇高聲譽、德國數學開始主宰世界之時,一代天驕走完了生命旅程。
⑻ 鴻蒙是基於linux開發的嗎
鴻蒙不是基於linux開發的,是基於微內核開發的。
鴻蒙微內核是基於微內核的全場景分布式OS,可按需擴展,實現更廣泛的系統安全,主要用於物聯網,特點是低時延,甚至可到毫秒級乃至亞毫秒級。
鴻蒙OS實現模塊化耦合,對應不同設備可彈性部署,鴻蒙OS有三層架構,第一層是內核,第二層是基礎服務,第三層是程序框架。

(8)歐拉編譯器擴展閱讀:
華為推出的鴻蒙系統試圖解決物聯網時代多終端開發難題。余承東介紹,鴻蒙系統擁有分布式OS架構、確定時延引擎和高性能IPC技術等新特性。
可以讓鴻蒙OS實現一端開發、多端部署。這個萬物互聯時代帶來的新機遇,終於被華為等到了,而華為在自研軟硬體上的儲備,要遠超普通人的想像。
據華為技術老兵近期發表的《華為操作系統28年史》介紹,華為的操作系統經過了獨立開發、基於第三方微內核開發RTOS、基於開源的嵌入式Linux宏內核開發等多個歷程。
華為先後開發出了路由器和數據通信交換機操作系統VRP、雲計算操作系統Fusion Sphere、伺服器操作系統歐拉Euler OS和物聯網嵌入式操作系統Lite OS。
⑼ matlab實現歐拉法和RK-4方法的數值計算
程序已經寫了,不過步長你得自己調,當步長較小時,計算時間會很長
另外,tend是時間的終值,你可以設小一些。因為解析解為10*cos(x),我設成pi,就是計算半個周期。
x''(t)=-x(t)
引入y1=x,y2=x',則
y1'=y2
y2'=-x=-y1
初始條件為:
y1(0)=10;
y2(0)=0;
將下面兩行百分號之間的內容,保存成DiffEulerRk4.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function MaxDiffX=DiffEulerRk4(dt,PlotFlag)
%dt是步長
%PlotFlag是否作圖
if nargin<1
dt=0.01;
end
if nargin<2
PlotFlag=0;
end
f=inline('[y(2);-y(1)]','t','y'); %微分方程的右邊項
t0=0; %初始時刻
tend=pi; %計算的點數
tt=t0:dt:tend; %一系列離散的點
N=length(tt); %點數
y0=[10;0];
%%(1)歐拉法
EulerY=y0;
for i=2:N
EulerY(:,i)=EulerY(:,i-1)+dt*f(tt(i-1),EulerY(:,i-1));
end
EulerX=EulerY(1,:); %取x
%%(2)龍格庫塔法
RkY=y0;
for i=2:N
k1=f(tt(i-1), RkY(:,i-1));
k2=f(tt(i-1)+dt/2, RkY(:,i-1)+k1*dt/2);
k3=f(tt(i-1)+dt/2, RkY(:,i-1)+k2*dt/2);
k4=f(tt(i-1)+dt, RkY(:,i-1)+k3*dt);
RkY(:,i)=RkY(:,i-1)+(k1+2*k2+2*k3+k4)*dt/6;
end
RkX=RkY(1,:); %取x
%精確解
syms t
analytic=dsolve('D2x=-x','x(0)=10','Dx(0)=0','t');
rightdata=subs(analytic,t,tt);
if PlotFlag
plot(tt,EulerX,'b-',tt,RkX,'r--',tt,rightdata,'g-.')
legend('Euler','Runge-Kutta','analytic')
end
MaxDiffX=[max(abs(RkX-rightdata)),max(abs(EulerX-rightdata))];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
所有題,都得你自己調步長。
輸入:
DiffEulerRk4(0.01,1) %步長取0.01的計算結果,參數為1代表作圖,自己得修改步長
%%下面是變化
Error=[];
Dt=[5e-4,1e-3,2e-3,5e-3,0.01,0.05,0.1];
for dt=Dt %幾種步長,自行修改
dt %查看dt,步長小,計算量大
Error_1=DiffEulerRk4(dt); %不作圖
Error=[Error;Error_1]; %保存歐拉法誤差
end
semilogx(Dt,Error)
legend('Euler','RK4')
xlabel('步長')
ylabel('誤差')
title('與理論值誤差')
⑽ C語言算一個數歐拉函數,輸入0結束
unsigned int ss(unsigned int a)
{
unsigned int i;
for(i=2;i*i<=a;i++) {
if(a%i==0) break;
}
if(i*i<=a) return 0;
else return 1;
}
這個判斷素數的函數邏輯是:
i在2~根號a(a是外部傳入的需要判斷的正整數)之間循環遞增1,
如果a能被i整除,則跳出循環,否則繼續循環直至i大於根號a退出循環,
退出循環後,判斷當前i值是否小於根號a,
小於等於根號a,則是中途退出,返回0(是合數);
大於根號a,則是循環條件完成退出,返回1(是質數)。
函數ss( a)在函數unsigned int oula(unsigned int n)中調用
unsigned int oula(unsigned int n)
{
unsigned int f=n,p;
for(p=2;p<=n;p++)
if(ss(p)&&(n%p==0)) f=f*(1-(1/p)); 調用處
return f;
}
輸入100,000,000,要看編譯器對unsigned int的定義,
如果編譯器定義為2 byte,則范圍是:0~2^16-1(62353),此時100,000,000會溢出。
如果編譯器定義為4 byte,則范圍是:0~4294967295,大於100,000,000.此時可以輸入,但因數據太大,計算完成要超過2分鍾(用去年主流配置的x86電腦測試),輸入10,000,000就感覺明顯的時延,要約20秒才能輸出結果。
測試截圖如下圖:

另,函數unsigned int oula(unsigned int n)需要改成:
unsigned int oula(unsigned int n)
{
unsigned int f=n,p;
for(p=2;p<=n;p++)
if(ss(p)&&(n%p==0))
//f=f*(1-(1/p)); //修改小數部分丟失問題
f=f*(p-1)/p;
return f;
}
供參考。
