English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
到目前为止,我们已经看到所有示例都可以在MATLAB及其GNU(也称为Octave)中运行。但是,为了求解基本的代数方程,MATLAB和Octave几乎没有什么不同,因此我们将尝试在单独的部分中介绍MATLAB和Octave。
我们还将讨论代数表达式的分解和简化。
solve函数用于求解代数方程。最简单的形式是,solve函数将用引号引起来的方程式作为参数。
على سبيل المثال، لنحل المعادلة x-5 = 0
solve('x-5=0')
MATLAB سيفي بتنفيذ هذه الأوامر وسيقوم بتحويل النتائج التالية-
ans = 5
يمكنك أيضًا تسمية وظيفة Solve
y = solve('x-5 = 0')
MATLAB سيفي بتنفيذ هذه الأوامر وسيقوم بتحويل النتائج التالية-
y = 5
قد لا تحتاج حتى إلى عدم تضمين الجانب الأيمن من المعادلة-
solve('x-5')
MATLAB سيفي بتنفيذ هذه الأوامر وسيقوم بتحويل النتائج التالية-
ans = 5
إذا كانت المعادلة تحتوي على متغيرات رمزية متعددة، فسيفترض MATLAB بشكل افتراضي أنك تحل x، ولكن لدالة solve شكل آخر-
solve(equation, variable)
في هذا السياق، يمكنك أيضًا ذكر المتغيرات.
على سبيل المثال، لنحل معادلة v – u – 3t 2 =0. في هذه الحالة، يجب علينا كتابة-
solve('v-u-3*t^2=0', 'v')
MATLAB سيفي بتنفيذ هذه الأوامر وسيقوم بتحويل النتائج التالية-
ans = 3*t^2 + u
rootsيُستخدم هذا الدالة لحل المعادلات الجبرية في Octave، يمكنك كتابة مثال كالتالي:
على سبيل المثال، لنحل المعادلة x-5 = 0
roots([1, -5])
سيقوم Octave بتنفيذ الأوامر السابقة وسيقوم بتحويل النتائج التالية-
ans = 5
يمكنك أيضًا تسمية وظيفة Solve
y = roots([1, -5])
سيقوم Octave بتنفيذ الأوامر السابقة وسيقوم بتحويل النتائج التالية-
y = 5
solveيمكن للوظيفة حل المعادلات العالية. عادةً ما تستخدم لحل المعادلات التربيعية. تعود الوظيفة بالجذور كشكل مصفوفة.
على سبيل المثال، تم حل المعادلة التربيعية x 2 -7x +12 =0. قم بإنشاء ملف سكربت وقم بإدخال الكود التالي-
eq = 'x^2 -7*x + 12 = 0'; s = solve(eq); disp('الجذر الأول هو:'), disp(s(1)); disp('الجذر الثاني هو:'), disp(s(2));
عند تشغيل الملف، يظهر النتيجة التالية -
الجذر الأول هو: 3 الجذر الثاني هو: 4
السطر التالي يظهر كيف يمكن حل المعادلة التربيعية x 2 -7x +12 = 0. قم بإنشاء ملف سكربت وقم بإدخال الكود التالي-
s = roots([1, -7, 12]); disp('الجذر الأول هو:'), disp(s(1)); disp('الجذر الثاني هو:'), disp(s(2));
عند تشغيل الملف، يظهر النتيجة التالية -
الجذر الأول هو: 4 الجذر الثاني هو: 3
solveيمكن للوظيفة حل المعادلات العالية. على سبيل المثال، لنحل المعادلة الثلاثية (x-3)2(x-7)= 0
solve('(x-3)^2*(x-7)=0')
MATLAB سيفي بتنفيذ هذه الأوامر وسيقوم بتحويل النتائج التالية-
ans = 3 3 7
للأgebraيات العالية، طول الجذور يحتوي على العديد من المكونات. يمكنك تحويل هذا الجذر إلى double للحصول على قيمته النumerical. على سبيل المثال، تم حل المعادلة الرابعة 4 − 7x 3 + 3x 2 − 5x + 9 = 0.
أنشئ ملف سكريبت وادخل الكود التالي -
eq = 'x^4 - 7*x^3 + 3*x^2 - 5*x + 9 = 0'; s = solve(eq); disp('الجذر الأول هو:'), disp(s(1)); disp('الجذر الثاني هو:'), disp(s(2)); disp('الجذر الثالث هو:'), disp(s(3)); disp('الجذر الرابع هو:'), disp(s(4)); % تحويل الجذور إلى نوع double disp('قيمة العدد النسبي للجذر الأول'), disp(double(s(1))); disp('قيمة العدد النسبي للجذر الثاني'), disp(double(s(2))); disp('قيمة العدد النسبي للجذر الثالث'), disp(double(s(3))); disp('قيمة العدد النسبي للجذر الرابع'), disp(double(s(4)));
عند تشغيل الملف، يعود النتيجة التالية:
الجذر الأول هو: 6.630396332390718431485053218985 الجذر الثاني هو: 1.0597804633025896291682772499885 الجذر الثالث هو: - 0.34508839784665403032666523448675 - 1.0778362954630176596831109269793i الجذر الرابع هو: - 0.34508839784665403032666523448675 + 1.0778362954630176596831109269793i قيمة العدد النسبي للجذر الأول 6.6304 قيمة العدد النسبي للجذر الثاني 1.0598 قيمة العدد النسبي للجذر الثالث -0.3451 - 1.0778i قيمة العدد النسبي للجذر الرابع -0.3451 + 1.0778i
لاحظ أن الجذور الأخيرة هما أعداد مركبة.
يحل هذا المثال المعادلة من الرتبة الرابعة x 4 − 7x 3 + 3x 2 − 5x + 9 = 0.
أنشئ ملف سكريبت وادخل الكود التالي -
v = [1, -7, 3, -5, 9]; s = roots(v); % تحويل الجذور إلى نوع double disp('قيمة العدد النسبي للجذر الأول'), disp(double(s(1))); disp('قيمة العدد النسبي للجذر الثاني'), disp(double(s(2))); disp('قيمة العدد النسبي للجذر الثالث'), disp(double(s(3))); disp('قيمة العدد النسبي للجذر الرابع'), disp(double(s(4)));
عند تشغيل الملف، يعود النتيجة التالية:
قيمة العدد النسبي للجذر الأول 6.6304 قيمة العدد النسبي للجذر الثاني -0.34509 + 1.07784i قيمة العدد النسبي للجذر الثالث -0.34509 - 1.07784i قيمة العدد النسبي للجذر الرابع 1.0598
solveيمكن استخدام الدالة أيضًا لتحليل حل معادلات مجموعة متعددة المتغيرات. دعونا نقدم مثالًا بسيطًا لإظهار هذا الاستخدام.
دعونا نحل المعادلة
5x + 9y = 5
3x – 6y = 4
أنشئ ملف سكريبت وادخل الكود التالي -
s = solve('5*x + 9*y = 5','3*x - 6*y = 4'); s.x s.y
عند تشغيل الملف، يظهر النتيجة التالية -
ans = 22/19 ans = -5/57
بالنفس الطريقة، يمكنك حل نظام خطي أكبر. لنفكر في مجموعة من المعادلات التالية:
x + 3y -2z = 5
3x + 5y + 6z = 7
2x + 4y + 3z = 8
لدينا بعض الطرق المختلفة لحل نظام المعادلات الخطية النموذجية التي تحتوي على n معادلات و n متغيرات. دعونا نرى مثالاً بسيطاً يوضح هذا الاستخدام.
دعونا نحل المعادلة
5x + 9y = 5
3x – 6y = 4
يمكن كتابة نظام المعادلات الخطية مثل هذه كمعادلة مصفوفة واحدة Ax = b، حيث A هي مصفوفة الكوفيان، b هي مصفوفة تحتوي على اليمين من المعادلات الخطية، x هي مصفوفة تمثل الحل، مثلما يظهر في البرنامج التالي:
أنشئ ملف سكريبت وادخل الكود التالي -
A = [5, \ 9; \ 3, \ -6]; b = [5;4]; A \ b
عند تشغيل الملف، يظهر النتيجة التالية -
ans = 1.157895 -0.087719
بالنفس الطريقة، يمكنك حل نظام خطي أكبر، مثل
x + 3y -2z = 5
3x + 5y + 6z = 7
2x + 4y + 3z = 8
expandوcollectلتمديد وتجميع معادلة. يوضح المثال التالي مفهوم
عند استخدام العديد من الوظائف الرمزية، يجب إعلان أن المتغيرات متغيرات رمزية.
أنشئ ملف سكريبت وادخل الكود التالي -
syms x % متغير رمزي x syms y % متغير رمزي y %توسيع المعادلة expand((x-5)*(x+9)) expand((x+2)*(x-3)*(x-5)*(x+7)) expand(sin(2*x)) expand(cos(x+y)) %جمع المعادلة collect(x^3*(x-7)) collect(x^4*(x-3)*(x-5))
عند تشغيل الملف، يظهر النتيجة التالية -
ans = x^2 + 4*x - 45 ans = x^4 + x^3 - 43*x^2 + 23*x + 210 ans = 2*cos(x)*sin(x) ans = cos(x)*cos(y) - sin(x)*sin(y) ans = x^4 - 7*x^3 ans = x^6 - 8*x^5 + 15*x^4
تحتاج إلى امتلاكsymbolicالمكتبة، التي توفرexpandوcollectالوظائف لتمديد وتجميع المعادلة. يوضح المثال التالي مفهوم
عند استخدام العديد من الوظائف الرمزية، يجب إعلان أن المتغيرات متغيرات رمزية، ولكن طريقة تعريف المتغيرات الرمزية في Octave مختلفة. انتبه لاستخدامSinوCos، فإنها تعريفها أيضًا في مكتبة الرموز.
أنشئ ملف سكريبت وادخل الكود التالي -
% أولاً، قم بتحميل المكتبة، تأكد من أنها مثبتة. pkg load symbolic % جعل مكتبة symbols متاحة symbols % تعريف متغيرات الرمز x = sym ('x'); y = sym ('y'); z = sym ('z'); %توسيع المعادلة expand((x-5)*(x+9)) expand((x+2)*(x-3)*(x-5)*(x+7)) expand(Sin(2*x)) expand(Cos(x+y)) %جمع المعادلة collect(x^3 *(x-7), z) collect(x^4*(x-3)*(x-5), z)
عند تشغيل الملف، يظهر النتيجة التالية -
ans = -45.0+x^2+(4.0)*x ans = 210.0+x^4-(43.0)*x^2+x^3+(23.0)*x ans = sin((2.0)*x) ans = cos(y+x) ans = x^(3.0)*(-7.0+x) ans = (-3.0+x)*x^(4.0)*(-5.0+x)
factorوظيفة تحليل التعبير،simplifyوظيفة تبسيط التعبير. يوضح المثال التالي المفهوم -
أنشئ ملف سكريبت وادخل الكود التالي -
syms x syms y factor(x^3 - y^3) factor([x^2-y^2,x^3+y^3]) simplify((x^4-16)/(x^2-4))
عند تشغيل الملف، يظهر النتيجة التالية -
ans = (x - y) * (x^2 + x*y + y^2) ans = [ (x - y) * (x + y), (x + y) * (x^2 - x*y + y^2) ] ans = x^2 + 4