<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://nkusherr1.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://nkusherr1.github.io/" rel="alternate" type="text/html" /><updated>2026-01-26T05:30:02+00:00</updated><id>https://nkusherr1.github.io/feed.xml</id><title type="html">Sherr1math</title><subtitle>Your Name&apos;s academic portfolio</subtitle><author><name>Sherr1</name><email>nkuSherr1@nankai.edu.cn</email></author><entry><title type="html">A summary of some assignments for the spring semester of 2025</title><link href="https://nkusherr1.github.io/posts/2025/06/js-Some-Tasks-and-Homeworks/" rel="alternate" type="text/html" title="A summary of some assignments for the spring semester of 2025" /><published>2025-06-01T00:00:00+00:00</published><updated>2025-06-01T00:00:00+00:00</updated><id>https://nkusherr1.github.io/posts/2025/06/js-Some-Tasks-and-Homeworks</id><content type="html" xml:base="https://nkusherr1.github.io/posts/2025/06/js-Some-Tasks-and-Homeworks/"><![CDATA[<h2 id="introduction">Introduction</h2>
<p>Here, the operations of combinatorics and discrete optimization as well as group operations are mainly gathered.</p>

<h2 id="combinatorics">Combinatorics</h2>
<ul>
  <li>
    <h3 id="an-essay">An Essay</h3>
    <ul>
      <li>This is my <a href="/files/Grade2/Combinatorics-Paper.pdf">Essay</a> during the 2025 Spring Combinatorics course in Nankai.</li>
    </ul>
  </li>
</ul>

<h2 id="discrete-optimization">Discrete Optimization</h2>
<ul>
  <li>
    <h3 id="an-essay-1">An Essay</h3>
    <ul>
      <li>This is my <a href="/files/Grade2/Discrete-Optimization-Paper.pdf">Essay</a> during the 2025 Spring Discrete Optimization course in Nankai.</li>
    </ul>
  </li>
  <li>
    <h3 id="a-group-task">A Group Task</h3>
    <ul>
      <li>This is a <a href="/files/Grade2/Discrete-Optimization-Group-I.pdf">Group Task</a> during the 2025 Spring Discrete Optimization course in Nankai.</li>
    </ul>
  </li>
</ul>]]></content><author><name>Sherr1</name><email>nkuSherr1@nankai.edu.cn</email></author><category term="Homework" /><category term="Paper" /><summary type="html"><![CDATA[Introduction Here, the operations of combinatorics and discrete optimization as well as group operations are mainly gathered.]]></summary></entry><entry><title type="html">2024 Fall C-Programming Homework</title><link href="https://nkusherr1.github.io/posts/2024/12/js-C-Program-Task-1/" rel="alternate" type="text/html" title="2024 Fall C-Programming Homework" /><published>2024-12-31T00:00:00+00:00</published><updated>2024-12-31T00:00:00+00:00</updated><id>https://nkusherr1.github.io/posts/2024/12/js-C-Program-Task-1</id><content type="html" xml:base="https://nkusherr1.github.io/posts/2024/12/js-C-Program-Task-1/"><![CDATA[<h2 id="introduction">Introduction</h2>
<!-- 本学期我也选了C程序语言设计，这门课一共有五次提交作业，其中前三次的作业过于简单，最后两次作业还是有点意思的. -->
<p>This semester I also chose the course “C Programming Language Design”. This course requires five submissions of homework. The first three assignments were quite simple, but the last two were a bit more interesting.</p>

<h3 id="homework-4">Homework 4</h3>
<blockquote>
  <ol>
    <li>了解csv格式文件。</li>
    <li>通过excel软件，创建两个表格，内容是M*N, N*Q 浮点数矩阵，数值随意。保存为a.xlsx,b.xlsx文件。其中 M，N，Q是自然数，均不小于4。</li>
    <li>将上述excel文件另存为 a.csv,b.csv文件.</li>
    <li>编写程序，通过命令行方式，读取这两个csv数据文件，并实现矩阵乘法，将原矩阵数据和矩阵乘法结果数据输出到屏幕。</li>
    <li>程序中矩阵维数，不得是定值，需通过读取csv文件获得。</li>
    <li>源程序打包zip，运行结果截图。</li>
  </ol>
</blockquote>

<p>我的C语言程序(用 Dev C++ 写的)：</p>

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include</span> <span class="cpf">&lt;stdio.h&gt;</span><span class="cp">
#include</span> <span class="cpf">&lt;stdlib.h&gt;</span><span class="cp">
#include</span> <span class="cpf">&lt;string.h&gt;</span><span class="cp">
</span>
<span class="kt">double</span><span class="o">**</span> <span class="nf">readcsv</span><span class="p">(</span><span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="n">filename</span><span class="p">,</span> <span class="kt">int</span><span class="o">*</span> <span class="n">rows</span><span class="p">,</span> <span class="kt">int</span><span class="o">*</span> <span class="n">cols</span><span class="p">)</span>
<span class="p">{</span>
    <span class="kt">FILE</span><span class="o">*</span> <span class="n">file</span> <span class="o">=</span> <span class="n">fopen</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="s">"r"</span><span class="p">);</span>
    <span class="k">if</span> <span class="p">(</span><span class="n">file</span> <span class="o">==</span> <span class="nb">NULL</span><span class="p">)</span>
	<span class="p">{</span>
        <span class="n">perror</span><span class="p">(</span><span class="s">"Error opening file"</span><span class="p">);</span>
        <span class="k">return</span> <span class="nb">NULL</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="kt">char</span> <span class="n">line</span><span class="p">[</span><span class="mi">1024</span><span class="p">];</span>
    <span class="kt">int</span> <span class="n">row</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
    <span class="kt">int</span> <span class="n">col</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>

    <span class="k">while</span> <span class="p">(</span><span class="n">fgets</span><span class="p">(</span><span class="n">line</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">line</span><span class="p">),</span> <span class="n">file</span><span class="p">))</span>
	<span class="p">{</span>
        <span class="n">row</span><span class="o">++</span><span class="p">;</span>
        <span class="n">col</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
        <span class="kt">char</span><span class="o">*</span> <span class="n">token</span> <span class="o">=</span> <span class="n">strtok</span><span class="p">(</span><span class="n">line</span><span class="p">,</span> <span class="s">","</span><span class="p">);</span>
        <span class="k">while</span> <span class="p">(</span><span class="n">token</span><span class="o">!=</span> <span class="nb">NULL</span><span class="p">)</span>
		<span class="p">{</span>
            <span class="n">col</span><span class="o">++</span><span class="p">;</span>
            <span class="n">token</span> <span class="o">=</span> <span class="n">strtok</span><span class="p">(</span><span class="nb">NULL</span><span class="p">,</span> <span class="s">","</span><span class="p">);</span>
        <span class="p">}</span>
    <span class="p">}</span>

    <span class="n">fseek</span><span class="p">(</span><span class="n">file</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">SEEK_SET</span><span class="p">);</span>

    <span class="kt">double</span><span class="o">**</span> <span class="n">matrix</span> <span class="o">=</span> <span class="p">(</span><span class="kt">double</span><span class="o">**</span><span class="p">)</span><span class="n">malloc</span><span class="p">(</span><span class="n">row</span> <span class="o">*</span> <span class="k">sizeof</span><span class="p">(</span><span class="kt">double</span><span class="o">*</span><span class="p">));</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">row</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
	<span class="p">{</span>
        <span class="n">matrix</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="kt">double</span><span class="o">*</span><span class="p">)</span><span class="n">malloc</span><span class="p">(</span><span class="n">col</span> <span class="o">*</span> <span class="k">sizeof</span><span class="p">(</span><span class="kt">double</span><span class="p">));</span>
    <span class="p">}</span>

    <span class="n">row</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
    <span class="k">while</span> <span class="p">(</span><span class="n">fgets</span><span class="p">(</span><span class="n">line</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">line</span><span class="p">),</span> <span class="n">file</span><span class="p">))</span>
	<span class="p">{</span>
        <span class="n">col</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
        <span class="kt">char</span><span class="o">*</span> <span class="n">token</span> <span class="o">=</span> <span class="n">strtok</span><span class="p">(</span><span class="n">line</span><span class="p">,</span> <span class="s">","</span><span class="p">);</span>
        <span class="k">while</span> <span class="p">(</span><span class="n">token</span><span class="o">!=</span> <span class="nb">NULL</span><span class="p">)</span>
		<span class="p">{</span>
            <span class="n">matrix</span><span class="p">[</span><span class="n">row</span><span class="p">][</span><span class="n">col</span><span class="p">]</span> <span class="o">=</span> <span class="n">atof</span><span class="p">(</span><span class="n">token</span><span class="p">);</span>
            <span class="n">col</span><span class="o">++</span><span class="p">;</span>
            <span class="n">token</span> <span class="o">=</span> <span class="n">strtok</span><span class="p">(</span><span class="nb">NULL</span><span class="p">,</span> <span class="s">","</span><span class="p">);</span>
        <span class="p">}</span>
        <span class="n">row</span><span class="o">++</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="n">fclose</span><span class="p">(</span><span class="n">file</span><span class="p">);</span>

    <span class="o">*</span><span class="n">rows</span> <span class="o">=</span> <span class="n">row</span><span class="p">;</span>
    <span class="o">*</span><span class="n">cols</span> <span class="o">=</span> <span class="n">col</span><span class="p">;</span>
    <span class="k">return</span> <span class="n">matrix</span><span class="p">;</span>
<span class="p">}</span>

<span class="kt">double</span><span class="o">**</span> <span class="nf">plusMat</span><span class="p">(</span><span class="kt">double</span><span class="o">**</span> <span class="n">matrix1</span><span class="p">,</span> <span class="kt">int</span> <span class="n">rows1</span><span class="p">,</span> <span class="kt">int</span> <span class="n">cols1</span><span class="p">,</span> <span class="kt">double</span><span class="o">**</span> <span class="n">matrix2</span><span class="p">,</span> <span class="kt">int</span> <span class="n">rows2</span><span class="p">,</span> <span class="kt">int</span> <span class="n">cols2</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">if</span> <span class="p">(</span><span class="n">cols1</span><span class="o">!=</span> <span class="n">rows2</span><span class="p">)</span>
	<span class="p">{</span>
        <span class="n">printf</span><span class="p">(</span><span class="s">"Error: Incompatible matrix dimensions for multiplication.</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
        <span class="k">return</span> <span class="nb">NULL</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="kt">double</span><span class="o">**</span> <span class="n">result</span> <span class="o">=</span> <span class="p">(</span><span class="kt">double</span><span class="o">**</span><span class="p">)</span><span class="n">malloc</span><span class="p">(</span><span class="n">rows1</span> <span class="o">*</span> <span class="k">sizeof</span><span class="p">(</span><span class="kt">double</span><span class="o">*</span><span class="p">));</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">rows1</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
	<span class="p">{</span>
        <span class="n">result</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="kt">double</span><span class="o">*</span><span class="p">)</span><span class="n">malloc</span><span class="p">(</span><span class="n">cols2</span> <span class="o">*</span> <span class="k">sizeof</span><span class="p">(</span><span class="kt">double</span><span class="p">));</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">cols2</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
		<span class="p">{</span>
            <span class="n">result</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
            <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">k</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">k</span> <span class="o">&lt;</span> <span class="n">cols1</span><span class="p">;</span> <span class="n">k</span><span class="o">++</span><span class="p">)</span>
			<span class="p">{</span>
                <span class="n">result</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">+=</span> <span class="n">matrix1</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">k</span><span class="p">]</span> <span class="o">*</span> <span class="n">matrix2</span><span class="p">[</span><span class="n">k</span><span class="p">][</span><span class="n">j</span><span class="p">];</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">}</span>

    <span class="k">return</span> <span class="n">result</span><span class="p">;</span>
<span class="p">}</span>

<span class="kt">void</span> <span class="nf">freeMat</span><span class="p">(</span><span class="kt">double</span><span class="o">**</span> <span class="n">matrix</span><span class="p">,</span> <span class="kt">int</span> <span class="n">rows</span><span class="p">)</span>
<span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">rows</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
	<span class="p">{</span>
        <span class="n">free</span><span class="p">(</span><span class="n">matrix</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span>
    <span class="p">}</span>
    <span class="n">free</span><span class="p">(</span><span class="n">matrix</span><span class="p">);</span>
<span class="p">}</span>

<span class="kt">void</span> <span class="nf">printMat</span><span class="p">(</span><span class="kt">double</span><span class="o">**</span> <span class="n">matrix</span><span class="p">,</span> <span class="kt">int</span> <span class="n">rows</span><span class="p">,</span> <span class="kt">int</span> <span class="n">cols</span><span class="p">)</span>
<span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">rows</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
	<span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">cols</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span>
		<span class="p">{</span>
            <span class="n">printf</span><span class="p">(</span><span class="s">"%.10f "</span><span class="p">,</span> <span class="n">matrix</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]);</span>
        <span class="p">}</span>
        <span class="n">printf</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
    <span class="p">}</span>
<span class="p">}</span>

<span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span><span class="o">*</span> <span class="n">argv</span><span class="p">[])</span>
<span class="p">{</span>
    <span class="kt">int</span> <span class="n">rows1</span><span class="p">,</span> <span class="n">cols1</span><span class="p">;</span>
    <span class="c1">//char *filename1="A.csv";</span>
    <span class="kt">double</span><span class="o">**</span> <span class="n">matrix1</span> <span class="o">=</span> <span class="n">readcsv</span><span class="p">(</span><span class="s">"a.csv"</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">rows1</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">cols1</span><span class="p">);</span>
    <span class="k">if</span> <span class="p">(</span><span class="n">matrix1</span> <span class="o">==</span> <span class="nb">NULL</span><span class="p">)</span>
	<span class="p">{</span>
        <span class="k">return</span> <span class="mi">1</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="kt">int</span> <span class="n">rows2</span><span class="p">,</span> <span class="n">cols2</span><span class="p">;</span>
    <span class="c1">//char *filename2="B.csv";</span>
    <span class="kt">double</span><span class="o">**</span> <span class="n">matrix2</span> <span class="o">=</span> <span class="n">readcsv</span><span class="p">(</span><span class="s">"b.csv"</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">rows2</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">cols2</span><span class="p">);</span>
    <span class="k">if</span> <span class="p">(</span><span class="n">matrix2</span> <span class="o">==</span> <span class="nb">NULL</span><span class="p">)</span>
	<span class="p">{</span>
        <span class="n">freeMat</span><span class="p">(</span><span class="n">matrix1</span><span class="p">,</span> <span class="n">rows1</span><span class="p">);</span>
        <span class="k">return</span> <span class="mi">1</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="kt">double</span><span class="o">**</span> <span class="n">result</span> <span class="o">=</span> <span class="n">plusMat</span><span class="p">(</span><span class="n">matrix1</span><span class="p">,</span> <span class="n">rows1</span><span class="p">,</span> <span class="n">cols1</span><span class="p">,</span> <span class="n">matrix2</span><span class="p">,</span> <span class="n">rows2</span><span class="p">,</span> <span class="n">cols2</span><span class="p">);</span>
    <span class="k">if</span> <span class="p">(</span><span class="n">result</span> <span class="o">==</span> <span class="nb">NULL</span><span class="p">)</span>
	<span class="p">{</span>
        <span class="n">freeMat</span><span class="p">(</span><span class="n">matrix1</span><span class="p">,</span> <span class="n">rows1</span><span class="p">);</span>
        <span class="n">freeMat</span><span class="p">(</span><span class="n">matrix2</span><span class="p">,</span> <span class="n">rows2</span><span class="p">);</span>
        <span class="k">return</span> <span class="mi">1</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="n">printf</span><span class="p">(</span><span class="s">"Matrix A:</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
    <span class="n">printMat</span><span class="p">(</span><span class="n">matrix1</span><span class="p">,</span> <span class="n">rows1</span><span class="p">,</span> <span class="n">cols1</span><span class="p">);</span>

    <span class="n">printf</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">Matrix B:</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
    <span class="n">printMat</span><span class="p">(</span><span class="n">matrix2</span><span class="p">,</span> <span class="n">rows2</span><span class="p">,</span> <span class="n">cols2</span><span class="p">);</span>

    <span class="n">printf</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">A * B:</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
    <span class="n">printMat</span><span class="p">(</span><span class="n">result</span><span class="p">,</span> <span class="n">rows1</span><span class="p">,</span> <span class="n">cols2</span><span class="p">);</span>

    <span class="n">freeMat</span><span class="p">(</span><span class="n">matrix1</span><span class="p">,</span> <span class="n">rows1</span><span class="p">);</span>
    <span class="n">freeMat</span><span class="p">(</span><span class="n">matrix2</span><span class="p">,</span> <span class="n">rows2</span><span class="p">);</span>
    <span class="n">freeMat</span><span class="p">(</span><span class="n">result</span><span class="p">,</span> <span class="n">rows1</span><span class="p">);</span>

    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>

<h3 id="homework-5">Homework 5</h3>
<blockquote>
  <ol>
    <li>了解json文件格式</li>
    <li>使用C编写程序解析test.json</li>
    <li>打印输出json内容（按照字段输出）</li>
    <li>可使用各类开源库cJSON，Morn，Melon等，不限制</li>
  </ol>
</blockquote>

<p>任务中的 <a href="/files/Code/C/Example/test.json">test.json</a></p>

<p>我采用的是 <strong>cJSON</strong> 库来读取 <strong>json</strong> 文件。</p>

<p>其中 <strong>cJSON</strong> 库的下载来自 <strong>Github</strong> 中的资源，在进行编写我们的程序之前(我是用 VisualStudio 来编写的)，需要将下载的 <strong>cJSON</strong> 库中的 <strong>cJSON.c</strong> 和 <strong>cJSON.h</strong> 添加到我们建立的项目中的源代码里，同时在编写程序过程中我也遇到了 <strong>cJSON</strong> 库无法调用的情形，这需要更改该项目的“包含目录”(在 Visual Studio 中更改)。</p>

<p>首先用 <strong>fopen</strong> 函数打开文件 <strong>test.json</strong> ，读取文件内容到一个字符串 <strong>file</strong> 中，然后使用 <strong>cJSON_Parse</strong> 函数解析这个字符串得到一个 <strong>cJSON</strong> 对象。接着，程序调用 <strong>print_json</strong> 函数来打印这个 <strong>cJSON</strong> 对象的内容。 <strong>print_json</strong> 函数递归地遍历cJSON对象的所有子节点，并打印它们的类型和值。最后，程序释放 <strong>cJSON</strong> 对象所占用的内存并退出。</p>

<p>值得注意的是，如果只是按照上述程序读入最终输出的 <strong>json</strong> 文件中的内容中的英文和数字均输出正常，但是 <strong>json</strong> 文件中的中文内容输出结果为乱码。我一直不知道原因在哪，最终的解决做法是将 json 文件中的文件编码在 Visual Studio 中改成 <strong>UTF-8(带签名)</strong> 这样的格式才行，感觉可能是由于编码格式不同所导致的最终中文显示的错乱。</p>

<p>我的C语言程序(用 Visual Studio 写的)：</p>

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include</span> <span class="cpf">&lt;iostream&gt;</span><span class="cp">
</span>
<span class="k">extern</span> <span class="s">"C"</span> <span class="p">{</span>
<span class="cp">#include</span> <span class="cpf">&lt;string.h&gt;</span><span class="cp">
#include</span> <span class="cpf">&lt;stdio.h&gt;</span><span class="cp">
#include</span> <span class="cpf">"cJSON.h"</span><span class="cp">
</span><span class="p">}</span>

<span class="kt">void</span> <span class="nf">print_json</span><span class="p">(</span><span class="n">cJSON</span><span class="o">*</span> <span class="n">json</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">if</span> <span class="p">(</span><span class="n">json</span> <span class="o">==</span> <span class="nb">NULL</span><span class="p">)</span> <span class="k">return</span><span class="p">;</span>

    <span class="k">if</span> <span class="p">(</span><span class="n">json</span><span class="o">-&gt;</span><span class="n">type</span> <span class="o">==</span> <span class="n">cJSON_Object</span><span class="p">)</span> <span class="p">{</span>
        <span class="n">cJSON</span><span class="o">*</span> <span class="n">child</span> <span class="o">=</span> <span class="n">json</span><span class="o">-&gt;</span><span class="n">child</span><span class="p">;</span>
        <span class="k">while</span> <span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">printf</span><span class="p">(</span><span class="s">"%s: "</span><span class="p">,</span> <span class="n">child</span><span class="o">-&gt;</span><span class="n">string</span><span class="p">);</span>
            <span class="n">print_json</span><span class="p">(</span><span class="n">child</span><span class="p">);</span>
            <span class="n">child</span> <span class="o">=</span> <span class="n">child</span><span class="o">-&gt;</span><span class="n">next</span><span class="p">;</span>
        <span class="p">}</span>
    <span class="p">}</span>
    <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">json</span><span class="o">-&gt;</span><span class="n">type</span> <span class="o">==</span> <span class="n">cJSON_Array</span><span class="p">)</span> <span class="p">{</span>
        <span class="kt">int</span> <span class="n">i</span><span class="p">;</span>
        <span class="k">for</span> <span class="p">(</span><span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">cJSON_GetArraySize</span><span class="p">(</span><span class="n">json</span><span class="p">);</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">printf</span><span class="p">(</span><span class="s">"[%d]: "</span><span class="p">,</span> <span class="n">i</span><span class="p">);</span>
            <span class="n">print_json</span><span class="p">(</span><span class="n">cJSON_GetArrayItem</span><span class="p">(</span><span class="n">json</span><span class="p">,</span> <span class="n">i</span><span class="p">));</span>
        <span class="p">}</span>
    <span class="p">}</span>
    <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">json</span><span class="o">-&gt;</span><span class="n">type</span> <span class="o">==</span> <span class="n">cJSON_String</span><span class="p">)</span> <span class="p">{</span>
        <span class="n">printf</span><span class="p">(</span><span class="s">"%s"</span><span class="p">,</span> <span class="n">json</span><span class="o">-&gt;</span><span class="n">valuestring</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">json</span><span class="o">-&gt;</span><span class="n">type</span> <span class="o">==</span> <span class="n">cJSON_Number</span><span class="p">)</span> <span class="p">{</span>
        <span class="n">printf</span><span class="p">(</span><span class="s">"%d"</span><span class="p">,</span> <span class="n">json</span><span class="o">-&gt;</span><span class="n">valueint</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="k">else</span> <span class="p">{</span>
        <span class="n">printf</span><span class="p">(</span><span class="s">"Unknown type"</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="n">printf</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
<span class="p">}</span>

<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="kt">FILE</span><span class="o">*</span> <span class="n">file</span> <span class="o">=</span> <span class="n">fopen</span><span class="p">(</span><span class="s">"test.json"</span><span class="p">,</span> <span class="s">"r"</span><span class="p">);</span>
    <span class="k">if</span> <span class="p">(</span><span class="n">file</span> <span class="o">==</span> <span class="nb">NULL</span><span class="p">)</span> <span class="p">{</span>
        <span class="n">printf</span><span class="p">(</span><span class="s">"Failed to open file</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
        <span class="k">return</span> <span class="mi">1</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="n">fseek</span><span class="p">(</span><span class="n">file</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">SEEK_END</span><span class="p">);</span>
    <span class="kt">long</span> <span class="n">file_size</span> <span class="o">=</span> <span class="n">ftell</span><span class="p">(</span><span class="n">file</span><span class="p">);</span>
    <span class="n">fseek</span><span class="p">(</span><span class="n">file</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">SEEK_SET</span><span class="p">);</span>

    <span class="kt">char</span><span class="o">*</span> <span class="n">json_str</span> <span class="o">=</span> <span class="p">(</span><span class="kt">char</span><span class="o">*</span><span class="p">)</span><span class="n">malloc</span><span class="p">(</span><span class="n">file_size</span> <span class="o">+</span> <span class="mi">1</span><span class="p">);</span>
    <span class="n">fread</span><span class="p">(</span><span class="n">json_str</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">file_size</span><span class="p">,</span> <span class="n">file</span><span class="p">);</span>
    <span class="n">fclose</span><span class="p">(</span><span class="n">file</span><span class="p">);</span>

    <span class="n">json_str</span><span class="p">[</span><span class="n">file_size</span><span class="p">]</span> <span class="o">=</span> <span class="sc">'\0'</span><span class="p">;</span>

    <span class="n">cJSON</span><span class="o">*</span> <span class="n">json</span> <span class="o">=</span> <span class="n">cJSON_Parse</span><span class="p">(</span><span class="n">json_str</span><span class="p">);</span>
    <span class="n">free</span><span class="p">(</span><span class="n">json_str</span><span class="p">);</span>

    <span class="k">if</span> <span class="p">(</span><span class="n">json</span> <span class="o">==</span> <span class="nb">NULL</span><span class="p">)</span> <span class="p">{</span>
        <span class="n">printf</span><span class="p">(</span><span class="s">"Failed to parse JSON</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
        <span class="k">return</span> <span class="mi">1</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="n">print_json</span><span class="p">(</span><span class="n">json</span><span class="p">);</span>

    <span class="n">cJSON_Delete</span><span class="p">(</span><span class="n">json</span><span class="p">);</span>
    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>
<h2 id="remark">Remark</h2>
<p>If you have any questions or need further assistance, feel free to ask! Here is my email: <a href="mailto:nkusherr1@gmail.com">nkusherr1 at gmail.com</a></p>]]></content><author><name>Sherr1</name><email>nkuSherr1@nankai.edu.cn</email></author><category term="C" /><category term="Code" /><summary type="html"><![CDATA[Introduction This semester I also chose the course “C Programming Language Design”. This course requires five submissions of homework. The first three assignments were quite simple, but the last two were a bit more interesting.]]></summary></entry><entry><title type="html">Latex Drawing 1</title><link href="https://nkusherr1.github.io/posts/2024/12/js-Latex-Drawing-1/" rel="alternate" type="text/html" title="Latex Drawing 1" /><published>2024-12-21T00:00:00+00:00</published><updated>2024-12-21T00:00:00+00:00</updated><id>https://nkusherr1.github.io/posts/2024/12/js-Latex-Drawing-1</id><content type="html" xml:base="https://nkusherr1.github.io/posts/2024/12/js-Latex-Drawing-1/"><![CDATA[<h2 id="introduction">Introduction</h2>
<p>During the process of writing my complex variable paper, since the main content I was dealing with was about the residue theorem, it was inevitable to use contour integrals. At first, I just thought it would be fine to verbally describe what the contour looked like. However, considering that the final exam for Complex Variable II was a paper, I thought it would be better to be more careful. Therefore, I taught myself to draw with LaTeX.
<!-- 在写复变论文的过程中，因为我写的主要是关于留数定理的内容，避免不了要用围道积分。一开始我只是想口头叙述围道长什么样就好了，但是复变函数II的期末考试就是一篇论文，想想还是更加慎重一点，所以就自学了latex绘图. --></p>

<p>Latex绘图主要是用<strong>tikz</strong>包</p>

<p>在开头需使用</p>

<div class="language-latex highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">\usepage</span><span class="p">{</span>tikz<span class="p">}</span>
</code></pre></div></div>

<h3 id="example-1">Example 1</h3>
<p>在计算欧拉积分时，我们需要考虑如下围道</p>

\[\bar{\Gamma}=\Gamma_1\cup\Gamma_2\cup\Gamma_3\cup\Gamma_4\]

\[\left\{
	\begin{aligned}
		&amp;\Gamma_1:\left\{z|r\leq z\leq R\right\}\\
		&amp;\Gamma_2:\left\{z|z=Re^{i\theta},0\leq\theta\leq\alpha\right\}\\
		&amp;\Gamma_3:\left\{z|z=le^{i\alpha},R\geq\theta\geq r\right\}\\
		&amp;\Gamma_4:\left\{z|z=re^{i\theta},\alpha\geq\theta\geq0\right\}
	\end{aligned}
	\right.\]

<p>围道示意图如下：</p>

<div align="center"><img src="/img/in-post/math/LatexDrawing/1.png" width="350" /></div>

<p>具体的 Latex 代码如下：</p>

<div class="language-latex highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">\begin{center}</span>
	<span class="nt">\begin{tikzpicture}</span>[&gt;=<span class="p">{</span>Stealth[length=0.3cm]<span class="p">}</span>,
		decoration=<span class="p">{</span>markings,
		mark= at position .1 with <span class="p">{</span><span class="k">\arrow</span><span class="p">{</span>&lt;<span class="p">}}</span>,
		mark= at position .45 with <span class="p">{</span><span class="k">\arrow</span><span class="p">{</span>&lt;<span class="p">}}</span>,
		mark= at position .83 with <span class="p">{</span><span class="k">\arrow</span><span class="p">{</span>&lt;<span class="p">}}</span>,
		<span class="p">}</span>
	]
		<span class="k">\def\angle</span><span class="p">{</span>40<span class="p">}</span>
		<span class="k">\def\bigradius</span><span class="p">{</span>5<span class="p">}</span>
		<span class="k">\def\littleradius</span><span class="p">{</span>1<span class="p">}</span>
		<span class="k">\filldraw</span><span class="na">[postaction = {decorate}, thick ,fill=gray!40]</span>
			(<span class="k">\angle</span>:<span class="k">\littleradius</span>) node[right]<span class="p">{$</span><span class="nv">\epsilon</span><span class="p">$}</span>
			-- (<span class="k">\angle</span>:<span class="k">\bigradius</span>) node[right]<span class="p">{$</span><span class="nb">R</span><span class="p">$}</span>
			arc(<span class="k">\angle</span>:0:<span class="k">\bigradius</span>) node[below]<span class="p">{$</span><span class="nb">R</span><span class="p">$}</span>
			-- (<span class="k">\littleradius</span>,0) node[below]<span class="p">{$</span><span class="nv">\epsilon</span><span class="p">$}</span>
			arc (0:<span class="k">\angle</span>:<span class="k">\littleradius</span>) -- cycle;

		<span class="k">\draw</span><span class="na">[dashed,thick]</span> (0,0) node[xshift=15pt, yshift=6pt]<span class="p">{$</span><span class="nv">\theta</span><span class="p">$}</span> -- (<span class="k">\angle</span>:<span class="k">\littleradius</span>);
		<span class="k">\node</span> at(3,-0.3)<span class="p">{$</span><span class="nv">\Gamma</span><span class="p">_</span><span class="m">1</span><span class="p">$}</span>;
		<span class="k">\node</span> at(5,2)<span class="p">{$</span><span class="nv">\Gamma</span><span class="p">_</span><span class="m">2</span><span class="p">$}</span>;
		<span class="k">\node</span> at(2.5,2.5)<span class="p">{$</span><span class="nv">\Gamma</span><span class="p">_</span><span class="m">3</span><span class="p">$}</span>;
		<span class="k">\node</span> at(1.5,0.5)<span class="p">{$</span><span class="nv">\Gamma</span><span class="p">_</span><span class="m">4</span><span class="p">$}</span>;
		<span class="k">\draw</span><span class="na">[-Latex]</span> (-0.1*<span class="k">\bigradius</span>,0) -- (1.2*<span class="k">\bigradius</span>,0) node[below]<span class="p">{$</span><span class="nb">x</span><span class="p">$}</span> ;
		<span class="k">\draw</span><span class="na">[-Latex]</span> (0,-0.1*<span class="k">\bigradius</span>) -- (0,4) node[right]<span class="p">{$</span><span class="nb">iy</span><span class="p">$}</span>;
	<span class="nt">\end{tikzpicture}</span>
<span class="nt">\end{center}</span>
</code></pre></div></div>

<h3 id="example-2">Example 2</h3>
<p>在计算高斯积分时，我们可以考虑一种不同于课本方式的围道计算，如下图所示：</p>

<div align="center"><img src="/img/in-post/math/LatexDrawing/2.png" width="450" /></div>

<p>具体的 Latex 代码如下：</p>

<div class="language-latex highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">\begin{center}</span>
	<span class="nt">\begin{tikzpicture}</span>
		<span class="k">\def\gap</span><span class="p">{</span>0.2<span class="p">}</span>
		<span class="k">\def\bigradius</span><span class="p">{</span>3<span class="p">}</span>
		<span class="k">\def\littleradius</span><span class="p">{</span>0.5<span class="p">}</span>
		<span class="c">% Axes</span>

		<span class="k">\draw</span><span class="na">[-&gt;]</span>(-1,-3) -- (5,3) -- (3,3) -- (-3,-3) -- (-1,-3) --cycle;
		<span class="k">\fill</span><span class="na">[gray!40]</span>(-1,-3) -- (5,3) -- (3,3) -- (-3,-3) -- (-1,-3) --cycle;


		<span class="k">\draw</span> [thick,-&gt;] (-4, 0) -- (6,0);
		<span class="k">\draw</span> [thick,-&gt;] (0, -4) -- (0,4);

		<span class="k">\node</span> at (0.5,4)<span class="p">{$</span><span class="nb">iy</span><span class="p">$}</span>;
		<span class="k">\node</span> at (6.2,0.3)<span class="p">{$</span><span class="nb">x</span><span class="p">$}</span>;
		<span class="k">\node</span> at (1.3,-1.3)<span class="p">{$</span><span class="nv">\Gamma</span><span class="p">_</span><span class="m">1</span><span class="p">$}</span>;
		<span class="k">\node</span> at (4,3.3)<span class="p">{$</span><span class="nv">\Gamma</span><span class="p">_</span><span class="m">2</span><span class="p">$}</span>;
		<span class="k">\node</span> at (1.1,1.6)<span class="p">{$</span><span class="nv">\Gamma</span><span class="p">_</span><span class="m">3</span><span class="p">$}</span>;
		<span class="k">\node</span> at (-2,-3.3)<span class="p">{$</span><span class="nv">\Gamma</span><span class="p">_</span><span class="m">4</span><span class="p">$}</span>;
		<span class="k">\draw</span>(1,0) node[shape=circle,draw,inner sep=1pt]<span class="p">{}</span>;
		<span class="k">\node</span> at (1.2,0.3)<span class="p">{$</span><span class="nv">\frac</span><span class="p">{</span><span class="m">1</span><span class="p">}{</span><span class="m">2</span><span class="p">}$}</span>;
		<span class="k">\draw</span>(3,0) node[shape=circle,draw,inner sep=1pt]<span class="p">{}</span>;
		<span class="k">\node</span> at (3.2,-0.3)<span class="p">{$</span><span class="nb">R</span><span class="p">$}</span>;
		<span class="k">\draw</span>(5,0) node[shape=circle,draw,inner sep=1pt]<span class="p">{}</span>;
		<span class="k">\node</span> at (5.2,-0.3)<span class="p">{$</span><span class="nb">R</span><span class="o">+</span><span class="m">1</span><span class="p">$}</span>;
		<span class="k">\draw</span>(0,3) node[shape=circle,draw,inner sep=1pt]<span class="p">{}</span>;
		<span class="k">\node</span> at (0.3,3.3)<span class="p">{$</span><span class="nb">iR</span><span class="p">$}</span>;
		<span class="k">\draw</span><span class="na">[dashed, thick]</span> (0,3)--(3,3)--(3,0);
		<span class="k">\draw</span><span class="na">[dashed, thick]</span> (5,0)--(5,3);
		<span class="c">%\draw[fill=gray,domain=-3:3]plot({\x-2},\x);</span>

	<span class="nt">\end{tikzpicture}</span>
<span class="nt">\end{center}</span>
</code></pre></div></div>

<h3 id="example-3">Example 3</h3>
<p>在计算高斯积分时，我们发现可以对高斯积分进行推广，进而得到 $e^{-a\sqrt{\pi}}$ 的拉普拉斯逆变换，在计算中，我们需要考虑如下图所示的积分围道：</p>

<div align="center"><img src="/img/in-post/math/LatexDrawing/3.png" width="450" /></div>

<p>具体的 Latex 代码如下：</p>

<div class="language-latex highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">\begin{center}</span>
	<span class="nt">\begin{tikzpicture}</span>[&gt;=<span class="p">{</span>Stealth[length=0.3cm]<span class="p">}</span>,
        decoration=<span class="p">{</span>markings,
        mark= at position .15 with <span class="p">{</span><span class="k">\arrow</span><span class="p">{</span>&gt;<span class="p">}}</span>,
        mark= at position .3 with <span class="p">{</span><span class="k">\arrow</span><span class="p">{</span>&gt;<span class="p">}}</span>,
        <span class="c">%mark= at position .42 with {\arrow{&gt;}},</span>
        mark= at position .49 with <span class="p">{</span><span class="k">\arrow</span><span class="p">{</span>&gt;<span class="p">}}</span>,
        mark= at position .63 with <span class="p">{</span><span class="k">\arrow</span><span class="p">{</span>&gt;<span class="p">}}</span>,
        mark= at position 0.9 with <span class="p">{</span><span class="k">\arrow</span><span class="p">{</span>&gt;<span class="p">}}</span>,
        <span class="p">}</span>]
        <span class="k">\def\radius</span><span class="p">{</span>3.4<span class="p">}</span>
        <span class="k">\def\bigradius</span><span class="p">{</span>3.4<span class="p">}</span>
        <span class="k">\def\littleradius</span><span class="p">{</span>0.5<span class="p">}</span>
        <span class="k">\def\angle</span><span class="p">{</span>60<span class="p">}</span>
        <span class="k">\def\gap</span><span class="p">{</span>0.3<span class="p">}</span>
    <span class="k">\draw</span><span class="na">[dashed,thick]</span>
        let
            <span class="k">\n</span>0 = <span class="p">{</span>cos(<span class="k">\angle</span>)<span class="p">}</span>,
        in
            (<span class="k">\radius*\n</span>0,-<span class="k">\radius*</span>1.2) node[right]<span class="p">{$</span><span class="nb">c </span><span class="o">-</span><span class="nb"> i</span><span class="nv">\infty</span><span class="p">$}</span>-- (<span class="k">\radius*\n</span>0,<span class="k">\radius*</span>1.2)node[right]<span class="p">{$</span><span class="nb">c</span><span class="o">+</span><span class="nb">i</span><span class="nv">\infty</span><span class="p">$}</span>;
    <span class="c">% contour</span>
    <span class="k">\filldraw</span><span class="na">[postaction = {decorate}, thick ,fill=gray!40]</span>
    let
    <span class="k">\n</span>1 = <span class="p">{</span>asin(<span class="k">\gap</span>/2/<span class="k">\bigradius</span>)<span class="p">}</span>,
    <span class="k">\n</span>2 = <span class="p">{</span>asin(<span class="k">\gap</span>/2/<span class="k">\littleradius</span>)<span class="p">}</span>
    in
    (0.5*<span class="k">\bigradius</span>,<span class="k">\bigradius</span>)node[right]<span class="p">{$</span><span class="nb">B</span><span class="p">$}</span>--(0,<span class="k">\bigradius</span>) arc(90:180-<span class="k">\n</span>1:<span class="k">\bigradius</span>) --(-<span class="k">\n</span>2:-<span class="k">\littleradius</span>) arc (-<span class="k">\n</span>2:-(360-<span class="k">\n</span>2):-<span class="k">\littleradius</span>) --(<span class="k">\n</span>1:-<span class="k">\bigradius</span>) arc(180+<span class="k">\n</span>1:270:<span class="k">\bigradius</span>)--(0.5*<span class="k">\bigradius</span>,-<span class="k">\bigradius</span>)node[right]<span class="p">{$</span><span class="nb">A</span><span class="p">$}</span>--(0.5*<span class="k">\bigradius</span>,<span class="k">\bigradius</span>);

    <span class="k">\draw</span> (0,0) -- (0.5*<span class="k">\bigradius</span>,<span class="k">\bigradius</span>) node[xshift=-20pt,yshift=-20pt]<span class="p">{$</span><span class="nb">R</span><span class="p">$}</span>;
    <span class="k">\draw</span> (0,0) -- (2*<span class="k">\angle</span>:<span class="k">\littleradius</span>) node[xshift=0pt,yshift=-8pt]<span class="p">{$</span><span class="nv">\delta</span><span class="p">$}</span>;
    <span class="k">\node</span><span class="na">[xshift=-10pt,yshift=10pt]</span> at (-<span class="k">\bigradius</span>,0)<span class="p">{$</span><span class="nb">C</span><span class="p">_</span><span class="nb">R</span><span class="p">$}</span>;
    <span class="k">\node</span><span class="na">[xshift=-10pt,yshift=10pt]</span> at (-<span class="k">\littleradius</span>,0)<span class="p">{$</span><span class="nb">C</span><span class="p">_{</span><span class="nv">\delta</span><span class="p">}$}</span>;

	<span class="k">\draw</span><span class="na">[-&gt;]</span>(1.5,3.6)--(0.2,3.6);
	<span class="k">\node</span> at (0.8,3.9)<span class="p">{$</span><span class="nb">L</span><span class="p">_</span><span class="m">1</span><span class="p">$}</span>;
	<span class="k">\draw</span><span class="na">[-&gt;]</span>(0.2,-3.6)--(1.5,-3.6);
	<span class="k">\node</span> at (0.8,-3.9)<span class="p">{$</span><span class="nb">L</span><span class="p">_</span><span class="m">2</span><span class="p">$}</span>;
	<span class="k">\node</span> at(-2,2.1)<span class="p">{$</span><span class="nv">\Gamma</span><span class="p">_</span><span class="m">1</span><span class="p">$}</span>;
	<span class="k">\node</span> at(-2,-2.1)<span class="p">{$</span><span class="nv">\Gamma</span><span class="p">_</span><span class="m">2</span><span class="p">$}</span>;
	<span class="k">\node</span> at(-2,0.5)<span class="p">{$</span><span class="nv">\lambda</span><span class="p">_</span><span class="m">1</span><span class="p">$}</span>;
	<span class="k">\node</span> at(-2,-0.5)<span class="p">{$</span><span class="nv">\lambda</span><span class="p">_</span><span class="m">2</span><span class="p">$}</span>;
	<span class="k">\node</span> at(2,0.5)<span class="p">{$</span><span class="nb">L</span><span class="p">$}</span>;
    <span class="c">% pole</span>
    <span class="c">%\fill (0,0)  circle (3pt) ;</span>
    <span class="c">%\draw[-Latex] (0.6,-0.8) node[right]{pole} --(0.15,-0.15);</span>

    <span class="c">% axis</span>
    <span class="k">\draw</span><span class="na">[-Latex]</span> (-1.8*<span class="k">\radius</span>,0) -- (1.3*<span class="k">\radius</span>,0) node[below]<span class="p">{$</span><span class="nb">x</span><span class="p">$}</span> ;
    <span class="k">\draw</span><span class="na">[-Latex]</span> (0,-1.2*<span class="k">\radius</span>) -- (0,1.2*<span class="k">\radius</span>) node[right]<span class="p">{$</span><span class="nb">iy</span><span class="p">$}</span>;
	<span class="nt">\end{tikzpicture}</span>
<span class="nt">\end{center}</span>
</code></pre></div></div>

<h3 id="example-3-1">Example 3</h3>
<p>在计算狄利克雷积分时，我们需要考虑一种围道计算，如下图所示：</p>

<div align="center"><img src="/img/in-post/math/LatexDrawing/4.png" width="400" /></div>

<p>具体的 Latex 代码如下：</p>

<div class="language-latex highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">\begin{center}</span>
	  <span class="nt">\begin{tikzpicture}</span>[&gt;=<span class="p">{</span>Stealth[length=0.3cm,bend]<span class="p">}</span>,
				decoration=<span class="p">{</span>markings,
				mark= at position .1 with <span class="p">{</span><span class="k">\arrow</span><span class="p">{</span>&gt;<span class="p">}}</span>,
				mark= at position .32 with <span class="p">{</span><span class="k">\arrow</span><span class="p">{</span>&gt;<span class="p">}}</span>,
				mark= at position .55 with <span class="p">{</span><span class="k">\arrow</span><span class="p">{</span>&gt;<span class="p">}}</span>,
				<span class="c">% mark= at position 0.86 with {\arrow{&gt;}},</span>
				<span class="p">}</span>
			]
				<span class="k">\def\gap</span><span class="p">{</span>0.3<span class="p">}</span>
				<span class="k">\def\bigradius</span><span class="p">{</span>3<span class="p">}</span>
				<span class="k">\def\littleradius</span><span class="p">{</span>0.5<span class="p">}</span>
			<span class="k">\filldraw</span><span class="na">[postaction = {decorate}, thick ,fill=gray!40]</span>
			let
				<span class="k">\n</span>1 = <span class="p">{</span>asin(<span class="k">\gap</span>/2/<span class="k">\bigradius</span>)<span class="p">}</span>,
				<span class="k">\n</span>2 = <span class="p">{</span>asin(<span class="k">\gap</span>/2/<span class="k">\littleradius</span>)<span class="p">}</span>
			in
				(0+<span class="k">\n</span>1:<span class="k">\bigradius</span>) node[above right]<span class="p">{$</span><span class="nb">R</span><span class="p">$}</span>  arc (0+<span class="k">\n</span>1:360-<span class="k">\n</span>1:<span class="k">\bigradius</span>) node[below left]<span class="p">{$</span><span class="nb">C</span><span class="p">_{</span><span class="nb">R</span><span class="p">}$}</span> -- (0-<span class="k">\n</span>2:<span class="k">\littleradius</span>) arc (360-<span class="k">\n</span>2:0+<span class="k">\n</span>2:<span class="k">\littleradius</span>) node[above right]<span class="p">{$</span><span class="nv">\delta</span><span class="p">$}</span> -- cycle;
				<span class="k">\draw</span><span class="na">[thick,-&gt;]</span> (300:<span class="k">\littleradius</span>) arc (300:130:<span class="k">\littleradius</span>) node[above]<span class="p">{$</span><span class="nb">C</span><span class="p">_{</span><span class="nv">\delta</span><span class="p">}$}</span>;
			<span class="c">%\fill (-1.2,0)  circle (3pt) ;</span>
			<span class="c">%\draw[-&gt;] (-1.2,-1) node[right]{pole} --(-1.2,-0.15);  % &lt;--</span>
			<span class="k">\draw</span><span class="na">[-Latex]</span> (-1.5*<span class="k">\bigradius</span>,0) -- (1.5*<span class="k">\bigradius</span>,0) node[below]<span class="p">{$</span><span class="nb">x</span><span class="p">$}</span> ;
			<span class="k">\draw</span><span class="na">[-Latex]</span> (0,-1.2*<span class="k">\bigradius</span>) -- (0,1.2*<span class="k">\bigradius</span>) node[right]<span class="p">{$</span><span class="nb">iy</span><span class="p">$}</span>;
	  <span class="nt">\end{tikzpicture}</span>
<span class="nt">\end{center}</span>
</code></pre></div></div>

<h2 id="remark">Remark</h2>
<p>If you have any questions or need further assistance, feel free to ask! Here is my email: <a href="mailto:nkusherr1@gmail.com">nkusherr1 at gmail.com</a></p>]]></content><author><name>Sherr1</name><email>nkuSherr1@nankai.edu.cn</email></author><category term="Latex Drawing" /><category term="Latex" /><category term="Code" /><summary type="html"><![CDATA[Introduction During the process of writing my complex variable paper, since the main content I was dealing with was about the residue theorem, it was inevitable to use contour integrals. At first, I just thought it would be fine to verbally describe what the contour looked like. However, considering that the final exam for Complex Variable II was a paper, I thought it would be better to be more careful. Therefore, I taught myself to draw with LaTeX.]]></summary></entry><entry><title type="html">Complex Analysis Essay</title><link href="https://nkusherr1.github.io/posts/2024/12/js-Complex-Analysis-Essay/" rel="alternate" type="text/html" title="Complex Analysis Essay" /><published>2024-12-20T00:00:00+00:00</published><updated>2024-12-20T00:00:00+00:00</updated><id>https://nkusherr1.github.io/posts/2024/12/js-Complex-Analysis-Essay</id><content type="html" xml:base="https://nkusherr1.github.io/posts/2024/12/js-Complex-Analysis-Essay/"><![CDATA[<h2 id="introduction">Introduction</h2>
<p>This is the essay of the Class “Complex Analysis II”.</p>

<!-- 我写的这篇论文主题是关于三个经典积分命题及其推广. -->
<p>The topic of the paper I have written is about three classic integral propositions and their generalizations.</p>

<h2 id="abstract">Abstract</h2>
<!-- 留数定理巧妙地通过柯西积分定理将洛朗级数和积分计算巧妙结合在一起，为我们计算复杂
的广义积分乃至瑕积分提供了一种崭新的思路，极大降低了单纯地通过数学分析手段求解复杂积
分的难度。本文将结合自己这一个学期关于留数定理的学习以及阅读相关文献所积累下来的一些
关于留数定理的命题，从留数定理的视角去研究三个经典积分：欧拉积分、高斯积分、狄利克雷
积分及其推广形式 -->

<p>The Residue Theorem ingeniously combines Laurent series and integral calculation through Cauchy’s Integral Theorem, providing a brand-new approach for us to calculate complex generalized integrals and even improper integrals, significantly reducing the difficulty of solving complex integrals solely through mathematical analysis methods. This article will study three classic integrals - the Euler integral, the Gaussian integral, and the Dirichlet integral, as well as their extended forms, from the perspective of the Residue Theorem, based on my learning of the Residue Theorem this semester and the propositions I have accumulated by reading related literature.</p>

<h2 id="recalling">Recalling</h2>
<p>我们先来回顾一下留数定理：</p>

<p>关于<strong>留数</strong>的定义：</p>

<p>设 $z_0$ 是 $f(z_0)$ 的孤立奇点，于是 $f(z)$ 在 $ V(z_0,R)-{z_0} $ 中有<strong>Laurent展开</strong></p>

\[\displaystyle f(z)=\sum_{k=-\infty}^{+\infty}c_k(z-z_0)^k,\quad z\in V(z_0,R)-\left\{z_0\right\}\]

<p>此时</p>

\[\displaystyle c_{-1}=\frac{1}{2\pi i}\int_{\Gamma}f(z)dz\]

<p>称为$f$在$z_0$处的<strong>留数</strong>，记为$Res(f,z_0)$.</p>

<p>关于<strong>留数定理</strong>的内容：</p>

<p>设$\Gamma$为一条正向简单闭路径，内部为$D$，${z_k}<em>{1\leq k\leq n}$是$D$中有限个点，今若$f$在 $\bar{D}-\left{z_k\right}</em>{1\leq k\leq n}$ 上解析，则</p>

\[\frac{1}{2\pi i}\int_{\Gamma}f(z)dz=\sum_{k=1}^{n}Res(f,z_k)\]

<p>关于在<strong>极点处留数的计算方法</strong></p>

<p>设$a$是$f$的$n$阶极点，$n\geq1$.并设在$a$附近我们有$f(z)=\frac{g(z)}{(z-a)^n}$，其中$g(z)$在$a$解析且$g(a)\neq0$.则</p>

\[Res(f,a)=\frac{g^{(n-1)}(a)}{(n-1)!}\]

<p>接着我们来研究以下几个经典的积分命题</p>

<h3 id="euler-integral">Euler Integral</h3>
<p><strong>欧拉积分</strong>这个例子来自南开数分教材第$19$章$B$组第$11$题.</p>

<p>对于$\forall \lambda&gt;0,x&gt;0,\alpha\in(-\frac{\pi}{2},\frac{\pi}{2})$，有
		\(\left\{
		\begin{aligned}
			\int_{0}^{+\infty}t^{x-1}e^{-\lambda t\cos\alpha}\cos(\lambda t\sin\alpha)dt=\frac{\Gamma(x)}{\lambda^x}\cos\alpha x\\
			\int_{0}^{+\infty}t^{x-1}e^{-\lambda t\cos\alpha}\sin(\lambda t\sin\alpha)dt=\frac{\Gamma(x)}{\lambda^x}\sin\alpha x
		\end{aligned}
		\right.\)</p>

<h3 id="gauss-integral">Gauss Integral</h3>
<p><strong>高斯积分(概率积分)</strong></p>

\[I=\int_{-\infty}^{+\infty}e^{-x^2}dx=\sqrt{\pi}\]

<p>我们也可以对高斯积分进行进一步的推广：</p>

<p>对于$\forall a,b\in\mathbb{C}$且$Re(a)&gt;0$</p>

\[I(a,b)=\int_{-\infty}^{+\infty}e^{-ax^2+bx}dx=\sqrt{\frac{\pi}{a}}e^{\frac{b^2}{4a}}\]

<p>在研究高斯积分的过程中，我们也可以发现<strong>菲涅尔积分</strong>公式：</p>

\[\int_0^\infty\sin x^2\mathrm{~}dx=\int_0^\infty\cos x^2\mathrm{~}dx=\sqrt{\frac\pi8}\]

<p>同时我们也可以发现一些<strong>Laplace逆变换</strong>.</p>

<h3 id="dirichlet-integral">Dirichlet Integral</h3>
<p>狄利克雷积分这个例子来自南开复变教材第$4$章习题$33-(v),(vi)$.</p>

\[\int_{-\infty}^{+\infty}\frac{\sin x}{x}dx=\pi\]

<p>更进一步，我们有其推广形式：</p>

<p>对$\forall m\in\mathbb{N}^{*}$，</p>

\[\int_{-\infty}^{+\infty}\frac{\sin^m x}{x^m}dx=\left\{
		\begin{aligned}
		&amp;\int_{-\infty}^\infty\frac{\sin^{2n+1}x}{x^{2n+1}}\mathrm dx=\frac{\pi}{(2n)!}\sum_{k=0}^n(-)^k\binom{2n+1}{k}\left(\frac{2n+1}{2}-k\right)^{2n}\quad m=2n+1\\
		&amp;\int_{-\infty}^{\infty}\frac{\sin^{2n}x}{x^{2n}}\mathrm{d}x=\:\frac{\pi}{(2n-1)!}\sum_{k=0}^{n-1}(-1)^{k}\binom{2n}{k}(n-k)^{2n-1}\quad m=2n
		\end{aligned}\right.\]

<p>不过说实话这个狄利克雷积分挺搞的，复变函数期末考考，数学分析III期末考也考，结果我都算错了，太难绷了.</p>

<h2 id="epilogue">Epilogue</h2>
<p>留数定理堪称复变函数领域的一座巍峨丰碑。它犹如一条精妙的纽带，将复变函数在孤立奇点处看似微观局部的留数特性，与宏观层面的闭曲线积分紧密相连，展现出一种高屋建瓴的理论架构。在理论深度上，它是柯西积分定理等经典理论的卓越升华，极大地拓展了复变函数积分理论的边界，为深入探究函数在奇点附近的行为以及复杂区域上的积分开辟了崭新通途。其影响力更是跨越复变函数的范畴，在调和分析、数论等数学分支中若隐若现地编织起联系的网络，促进了数学学科内部的深度交融。</p>

<p>正如高斯所言：“数学中的一些美丽定理具有这样的特性：它们极易从事实中归纳出来，但证明却隐藏的极深。” 留数定理便是这样一个美丽且深刻的定理，它建立了函数在孤立奇点处的留数与闭曲线积分之间的联系，这种联系看似简洁明了，但背后的证明和理论基础却蕴含着深刻的数学思想。</p>

<h2 id="partial-content-display">Partial content display:</h2>
<p><img src="/img/in-post/math/Essay/Complex%20Analysis%20II%20Essay/Page_1.jpg" alt="" /></p>

<h2 id="download-for-pdf">Download for PDF</h2>
<p>For more information about this essay, please refer to the following sources(Chinese version):</p>

<p>Click <a href="/files/Essay/复变II期末论文.pdf">Here</a> to get my essay.</p>

<h2 id="remark">Remark</h2>
<p>If you have any questions or need further assistance, feel free to ask! Here is my email: <a href="mailto:nkusherr1@gmail.com">nkusherr1 at gmail.com</a></p>]]></content><author><name>Sherr1</name><email>nkuSherr1@nankai.edu.cn</email></author><category term="Complex Analysis" /><category term="Essay" /><summary type="html"><![CDATA[Introduction This is the essay of the Class “Complex Analysis II”.]]></summary></entry><entry><title type="html">Complex Analysis 3</title><link href="https://nkusherr1.github.io/posts/2024/11/js-20yrs-preface/" rel="alternate" type="text/html" title="Complex Analysis 3" /><published>2024-11-02T00:00:00+00:00</published><updated>2024-11-02T00:00:00+00:00</updated><id>https://nkusherr1.github.io/posts/2024/11/js-20yrs-preface</id><content type="html" xml:base="https://nkusherr1.github.io/posts/2024/11/js-20yrs-preface/"><![CDATA[<h2 id="introduction">Introduction</h2>
<p>This is the third class of Complex Analysis, hosted by <em>Shengxuan Tang</em>. In this class, we will focus on the following topics:</p>

<h2 id="partial-content-display">Partial content display:</h2>
<!-- ![](/img/in-post/post-ca/11.jpg) -->

<h2 id="download">Download</h2>
<p>For more information about the 3rd Class of Complex Analysis, please refer to the following sources(Chinese version):</p>

<p><a href="/files/Grade2/Complex-Analysis-TSX.pdf">Complex Analysis</a> (begin from page <strong>17</strong> to page <strong>?</strong>)</p>

<p>If you have any questions or need further assistance, feel free to ask! Here is my email: <a href="mailto:nkusherr1@gmail.com">nkusherr1 at gmail.com</a></p>]]></content><author><name>Sherr1</name><email>nkuSherr1@nankai.edu.cn</email></author><category term="Complex Analysis" /><category term="Seminar" /><summary type="html"><![CDATA[Introduction This is the third class of Complex Analysis, hosted by Shengxuan Tang. In this class, we will focus on the following topics:]]></summary></entry><entry><title type="html">An Analysis-Problem from Mathematical-analysis-III of Nankai University</title><link href="https://nkusherr1.github.io/posts/2024/11/js-Analysis-Problem/" rel="alternate" type="text/html" title="An Analysis-Problem from Mathematical-analysis-III of Nankai University" /><published>2024-11-02T00:00:00+00:00</published><updated>2024-11-02T00:00:00+00:00</updated><id>https://nkusherr1.github.io/posts/2024/11/js-Analysis-Problem</id><content type="html" xml:base="https://nkusherr1.github.io/posts/2024/11/js-Analysis-Problem/"><![CDATA[<h2 id="introduction">Introduction</h2>
<p>This is an <strong>analysis problem</strong> from <em>2022~2023 boling class mathematical-analysis-III mid-term examination paper</em>. This post will show you the problem and its connecting problem from <em>Mathematical-analysis-III of Nankai University</em> <strong>Exercise 14(B)-13</strong>.</p>
<h2 id="problem-from-exercise-paper">Problem from Exercise Paper</h2>
<hr />
<h4 id="problem">Problem</h4>

<p>设 \(\alpha\gt0\)，讨论级数</p>

\[\displaystyle\sum_{n=1}^{\infty}\frac{\cos\sqrt{n}}{n^{\alpha}}\]

<p>的收敛性(若收敛，精确到条件收敛和绝对收敛)</p>

<h2 id="problem-from-textbook">Problem from Textbook</h2>
<p>For the more information about the following problem, you can refer to the book <em>Mathematical-analysis-III of Nankai University</em> <strong>Exercise 14(B)-13</strong>.</p>

<h4 id="problem-1">Problem</h4>

<p>设$\alpha\in(0,1)$，$p&gt;max\lbrace\alpha,1-\alpha\rbrace$，则</p>

\[\displaystyle\sum_{n=1}^{\infty}\frac{\sin n^{\alpha}}{n^p}\]

<p>收敛.</p>

<h2 id="solution-for-pdf">Solution for PDF</h2>
<p>Click <a href="/files/Problems/Problem2024.11.02Two-Series-Problems">Here</a> and get the solution about these two similar series problems.</p>

<h2 id="remark">Remark</h2>
<p>If you have any questions or need further assistance, feel free to ask! Here is my email: <a href="mailto:nkusherr1@gmail.com">nkusherr1 at gmail.com</a></p>]]></content><author><name>Sherr1</name><email>nkuSherr1@nankai.edu.cn</email></author><category term="Analysis Problems" /><category term="Series Problems" /><summary type="html"><![CDATA[Introduction This is an analysis problem from 2022~2023 boling class mathematical-analysis-III mid-term examination paper. This post will show you the problem and its connecting problem from Mathematical-analysis-III of Nankai University Exercise 14(B)-13. Problem from Exercise Paper Problem]]></summary></entry><entry><title type="html">Functional Analysis 1</title><link href="https://nkusherr1.github.io/posts/2024/11/js-Functional-Analysis/" rel="alternate" type="text/html" title="Functional Analysis 1" /><published>2024-11-02T00:00:00+00:00</published><updated>2024-11-02T00:00:00+00:00</updated><id>https://nkusherr1.github.io/posts/2024/11/js-Functional-Analysis</id><content type="html" xml:base="https://nkusherr1.github.io/posts/2024/11/js-Functional-Analysis/"><![CDATA[<h2 id="introduction">Introduction</h2>
<p>This semester, I participated in the <strong>Functional Analysis Seminar</strong> set up by Mr. Liu Rui. The main content was to discuss some cutting-edge topics related to <strong>Functional Analysis</strong>.</p>

<p>And the fist part of this seminar is to study a paper called <strong>Expressivity of Spiking Neural Networks</strong> held by one of his  graduate student.</p>

<h2 id="the-paper">the Paper</h2>
<p><strong>Abstract</strong></p>

<p>The synergy between spiking neural networks and neuromorphic hardware holds promise for the development of energy-efficient AI applications. Inspired by this potential, we revisit the foundational aspects to study the capabilities of spiking neural networks where information is encoded in the firing time of neurons. Under the Spike Response Model as a mathematical model of a spiking neuron with a linear response function, we compare the expressive power of artificial and spiking neural networks, where we initially show that they realize piecewise linear mappings. In contrast to ReLU networks, we prove that spiking neural networks can realize both continuous and discontinuous functions. Moreover, we provide complexity bounds on the size of spiking neural networks to emulate multi-layer (ReLU) neural networks. Restricting to the continuous setting, we also establish complexity bounds in the reverse direction for one-layer spiking neural networks.</p>

<p><strong>Keywords</strong>: Expressivity, Approximation Theory, Spiking Neural Networks, Deep (ReLU) Neural Networks, Temporal Coding, Linear Regions</p>

<p>Click <a href="/files/Seminar/Paper1.pdf">Here</a> to read the original paper.</p>

<h2 id="the-notes">the Notes</h2>
<p>As you know, I’ve always been in the habit of taking notes.</p>

<p>But the size of my note is too large. So I I uploaded my notes to my <strong>Baidu Netdisk</strong>.</p>

<p>CLick <a href="https://pan.baidu.com/s/1pa_I0RlgI3HsuiJjmbSNsQ?pwd=24yk">Here</a> to download my note.</p>

<h2 id="remark">Remark</h2>
<p>About this Seminar, I have something to share.</p>

<p>At first, there were more than ten participants in this course, but I don’t know if it was because the content was too abstract or for some other reason. After three classes, only the graduate students and I were left (LOL).</p>

<p>But <strong>Neural Network Learning</strong> is really interesting</p>

<p>By the way, if you have any questions or need further assistance, feel free to ask! Here is my email: <a href="mailto:nkusherr1@gmail.com">nkusherr1 at gmail.com</a></p>]]></content><author><name>Sherr1</name><email>nkuSherr1@nankai.edu.cn</email></author><category term="Functional Analysis" /><category term="Seminar" /><summary type="html"><![CDATA[Introduction This semester, I participated in the Functional Analysis Seminar set up by Mr. Liu Rui. The main content was to discuss some cutting-edge topics related to Functional Analysis.]]></summary></entry><entry><title type="html">Two Integral Problems</title><link href="https://nkusherr1.github.io/posts/2024/11/js-Analysis-Problem2/" rel="alternate" type="text/html" title="Two Integral Problems" /><published>2024-11-02T00:00:00+00:00</published><updated>2024-11-02T00:00:00+00:00</updated><id>https://nkusherr1.github.io/posts/2024/11/js-Analysis-Problem2</id><content type="html" xml:base="https://nkusherr1.github.io/posts/2024/11/js-Analysis-Problem2/"><![CDATA[<h2 id="introduction">Introduction</h2>
<p>These are two <strong>Integral Problems</strong> in our textbook. It’s a little difficult but very interesting. Let’s see.</p>
<h2 id="problems">Problems</h2>
<h4 id="exercise-1">Exercise 1</h4>
<p>For the more information about the following problem, you can refer to the book <em>Mathematical-analysis-III of Nankai University</em> <strong>Exercise 15(B)-12(4)</strong>.</p>

<p>研究下列广义积分的敛散性：</p>

\[\int_{\Omega}\frac{1}{\displaystyle\sum_{i=1}^{n}\left|x_i\right|^p_i}dx_1...dx_n,p_i&gt;0,i=1,2,...,n\]

\[\textbf{(a)}\Omega:\sum_{i=1}^{n}\left|x_i\right|\leq1\]

\[\textbf{(b)}\Omega:\sum_{i=1}^{n}\left|x_i\right|\gt1\]

<h4 id="exercise-2">Exercise 2</h4>
<p>For the more information about the following problem, you can refer to the book <em>Mathematical-analysis-III of Nankai University</em> <strong>Exercise 15(B)-15</strong>.</p>

<p>设(\mathbf{A}=(a_{ij}))是(n)阶实对称正定矩阵，$b_1,…,b_n$和$c$均是实数.求</p>

\[I=\int_{\mathbb{R}^n}\exp\left(-\sum_{i,j=1}^{n}a_{ij}x_ix_j+2\sum_{i=1}^{n}b_ix_i+c\right)dx_1...dx_n\]

<p>其中$\exp(u)$表示$e^u$.</p>

<h2 id="solution-for-pdf">Solution for PDF</h2>
<p>Click <a href="/files/Problems/Problem2024.11.11Two-Generalized-Multiple-Integral-Problems.pdf">Here</a> and get the solution about these two Integral Problems.</p>

<h2 id="remark">Remark</h2>
<p>If you have any questions or need further assistance, feel free to ask! Here is my email: <a href="mailto:nkusherr1@gmail.com">nkusherr1 at gmail.com</a></p>]]></content><author><name>Sherr1</name><email>nkuSherr1@nankai.edu.cn</email></author><category term="Analysis Problems" /><category term="Integral Problems" /><summary type="html"><![CDATA[Introduction These are two Integral Problems in our textbook. It’s a little difficult but very interesting. Let’s see. Problems Exercise 1 For the more information about the following problem, you can refer to the book Mathematical-analysis-III of Nankai University Exercise 15(B)-12(4).]]></summary></entry><entry><title type="html">Mathematical Analysis III Mid-Test</title><link href="https://nkusherr1.github.io/posts/2024/11/js-NKU-Math-Analysis-Mid-Test/" rel="alternate" type="text/html" title="Mathematical Analysis III Mid-Test" /><published>2024-11-02T00:00:00+00:00</published><updated>2024-11-02T00:00:00+00:00</updated><id>https://nkusherr1.github.io/posts/2024/11/js-NKU-Math-Analysis-Mid-Test</id><content type="html" xml:base="https://nkusherr1.github.io/posts/2024/11/js-NKU-Math-Analysis-Mid-Test/"><![CDATA[<h2 id="introduction">Introduction</h2>
<p>This is the <strong>Midterm Exam of Mathematical Analysis III</strong>(Boling Class) at Nankai University in the autumn semester of 2024-2025.</p>

<p>On the whole, the difficulty level of this test is between that of last year and the year before.</p>
<h2 id="problems-and-solutions">Problems and Solutions</h2>
<h4 id="exercise-1">Exercise 1</h4>
<p>研究下列级数的收敛性</p>

\[(1)\quad\displaystyle\sum_{n=1}^{+\infty}\frac{\sin(n+\frac{1}{n})}{\sqrt{n}}\]

\[(2)\quad\displaystyle\sum_{n=1}^{+\infty}\Big(\big(1+\frac{1}{n+1}\big)^{2n}-\big(1+\frac{2}{n+a}\big)^{n}\Big)\]

<h5 id="solution-1-1-1">Solution 1-(1)-1</h5>
<p>已知$\displaystyle\sum_{n=1}^{+\infty}\frac{\sin n}{\sqrt{n}}$ 收敛，考虑：</p>

\[\displaystyle\sum_{n=1}^{+\infty}\frac{\sin(n+\frac{1}{n^2})}{\sqrt{n}}-\sum_{n=1}^{+\infty}\frac{\sin n}{\sqrt{n}}=\sum_{n=1}^{+\infty}\frac{\sin(n+\frac{1}{n^2})-\sin n}{\sqrt{n}}=\sum_{n=1}^{+\infty}\frac{\cos\theta_n}{n^2\sqrt{n}}\]

<p>又</p>

\[\sum_{n=1}^{+\infty}\left|\frac{\cos\theta_n}{n^2\sqrt{n}}\right|\leq\sum_{n=1}^{+\infty}\frac{1}{n^2\sqrt{n}}\]

<p>而$\displaystyle\sum_{n=1}^{+\infty}\frac{1}{n^2\sqrt{n}}$收敛，故
\(\displaystyle\sum_{n=1}^{+\infty}\left|\frac{\cos\theta_n}{n^2\sqrt{n}}\right|\)
收敛，故$\displaystyle\sum_{n=1}^{+\infty}\frac{\cos\theta_n}{n^2\sqrt{n}}$收敛，即有$\displaystyle\sum_{n=1}^{+\infty}\frac{\sin(n+\frac{1}{n^2})}{\sqrt{n}}$收敛.</p>

<h5 id="solution-1-1-2">Solution 1-(1)-2</h5>
<p>\(\displaystyle\sum_{n=1}^{+\infty}\frac{\sin(n+\frac{1}{n^2})}{\sqrt{n}}=\sum_{n=1}^{+\infty}\frac{\sin n\cos\frac{1}{n^2}}{\sqrt{n}}+\sum_{n=1}^{+\infty}\frac{\cos n\sin\frac{1}{n^2}}{\sqrt{n}}\)</p>

<p>由于$\displaystyle\sum_{n=1}^{+\infty}\frac{\sin n}{\sqrt{n}}$收敛，$\displaystyle\cos\frac{1}{n^2}$单调有界，故由<strong>Abel判别法</strong>可知$\displaystyle\sum_{n=1}^{+\infty}\frac{\sin n\cos\frac{1}{n^2}}{\sqrt{n}}$收敛.</p>

<p>由于
\(\displaystyle\left|\frac{\cos n\sin\frac{1}{n^2}}{\sqrt{n}}\right|\leq\left|\frac{sin\frac{1}{n^2}}{\sqrt{n}}\right|\leq\frac{1}{n^2\sqrt{n}}\)且$\displaystyle\sum_{n=1}^{+\infty}\frac{1}{n^2\sqrt{n}}$收敛，故$\displaystyle\sum_{n=1}^{+\infty}\frac{\cos n\sin\frac{1}{n^2}}{\sqrt{n}}$收敛.</p>

<p>又由于
    \(\displaystyle\sum_{n=1}^{+\infty}\frac{\sin(n+\frac{1}{n^2})}{\sqrt{n}}=\sum_{n=1}^{+\infty}\frac{\sin n\cos\frac{1}{n^2}}{\sqrt{n}}+\sum_{n=1}^{+\infty}\frac{\cos n\sin\frac{1}{n^2}}{\sqrt{n}}\)</p>

<p>故$\displaystyle\sum_{n=1}^{+\infty}\frac{\sin(n+\frac{1}{n^2})}{\sqrt{n}}$收敛.</p>

<h5 id="solution-1-2">Solution 1-(2)</h5>
<p>\(\begin{aligned}
    &amp;(1+\frac{1}{n+1})^{2n}-(1+\frac{2}{n+a})^n=e^{2n\ln\left(1+\frac{1}{n+1}\right)}-e^{\ln\left(1+\frac{2}{n+a}\right)}\\
    =&amp;e^{2n\left(\frac{1}{n+1}-\frac{1}{2(n+1)^2}+o(\frac{1}{n^2})\right)}-e^{n\left(\frac{2}{n+a}-\frac{4}{2(n+a)^2}+o(\frac{1}{n^2})\right)}\\
    =&amp;e^2{\left(e^{\frac{2n}{n+1}-2-\frac{n}{(n+1)^2}+o(\frac{1}{n})}-e^{\frac{2n}{n+a}-2-\frac{2n}{(n+a)^2}+o(\frac{1}{n})}\right)}\\
    =&amp;e^2\left(1-\frac{2}{n+1}-\frac{n}{(n+1)^2}+o(\frac{1}{n^2})-1+\frac{2a}{n+a}+\frac{2n}{(n+a)^2}+o(\frac{1}{n^2})\right)\\
    =&amp;e^2\left(\frac{2a(n+1)-2(n+a)}{(n+1)(n+a)}+\frac{2}{n}-\frac{1}{n}+o(\frac{1}{n})\right)=e^2\left(\frac{2a-2+1}{n}+o(\frac{1}{n})\right)\sim e^2\frac{2a-1}{n}
    \end{aligned}\)
    由上式可知当且仅当$2a-1=0\Rightarrow a=\frac{1}{2}$时收敛，其余情况均发散.</p>

<h4 id="exercise-2">Exercise 2</h4>
<p>判断下列积分的收敛性</p>

\[\iint_{x^2+y^2\geq1}\frac{\cos(x^2)}{x^2+y^2}dxdy\]

<h5 id="solution-2-1">Solution 2-1</h5>
<p>首先我们有<strong>广义积分的绝对收敛和收敛是等价的</strong>，故我们只需研究下列积分的收敛性即可：</p>

\[\iint_{x^2+y^2\geq1}\frac{\left|\cos(x^2)\right|}{x^2+y^2}dxdy\]

<p>由于</p>

\[\frac{\left|\cos(x^2)\right|}{x^2+y^2}\geq\frac{1}{2(x^2+y^2)}+\frac{\cos(2x^2)}{2(x^2+y^2)}\]

<p>故</p>

\[\iint_{x^2+y^2\geq1}\frac{\left|\cos(x^2)\right|}{x^2+y^2}dxdy\geq\iint_{x^2+y^2\geq1}\frac{1}{2(x^2+y^2)}dxdy+\iint_{x^2+y^2\geq1}\frac{\cos(2x^2)}{2(x^2+y^2)}dxdy\]

<p><strong>反证</strong>：我们假设原积分收敛，则有：</p>

\[\iint_{x^2+y^2\geq1}\frac{\left|\cos(x^2)\right|}{x^2+y^2}dxdy\text{与}\iint_{x^2+y^2\geq1}\frac{\cos(2x^2)}{2(x^2+y^2)}dxdy\text{均收敛}\]

<p>进而有</p>

\[\iint_{x^2+y^2\geq1}\frac{1}{2(x^2+y^2)}dxdy\text{收敛}\]

<p>而</p>

\[\iint_{x^2+y^2\geq1}\frac{1}{2(x^2+y^2)}dxdy=\int_{0}^{2\pi}d\theta\int_{1}^{+\infty}\frac{r}{2r^2}dr=\pi\int_{1}^{+\infty}\frac{1}{r}dr\text{发散}\]

<p>故矛盾，即$\displaystyle\iint_{x^2+y^2\geq1}\frac{\cos(x^2)}{x^2+y^2}dxdy$发散.</p>

<h5 id="solution-2-2">Solution 2-2</h5>

\[\iint_{x^2+y^2\geq1}\frac{\left|\cos(x^2)\right|}{x^2+y^2}dxdy=\lim_{A\rightarrow+\infty}\int_{0}^{2\pi}d\theta\int_{1}^{A}\frac{\left|\cos(r^2\cos^2\theta)\right|}{r^2}rdr\quad(\clubsuit)\]

<p>令
\(r=\displaystyle\frac{\sqrt{t}}{\left|\cos\theta\right|}\)
则\(\displaystyle dr=\frac{1}{2\sqrt{t}}\frac{1}{\left|\cos\theta\right|}\)，代入$(\clubsuit)$式，我们有：</p>

\[\begin{aligned}\lim_{A\rightarrow+\infty}\int_{0}^{2\pi}d\theta\int_{1}^{A}\frac{\left|\cos(r^2\cos^2\theta)\right|}{r^2}rdr&amp;\geq\lim_{A\rightarrow+\infty}\int_{0}^{2\pi}d\theta\int_{1}^{\frac{1}{2}A^2}\frac{\left|\cos t\right|}{\frac{\sqrt{t}}{\left|\cos\theta\right|}}\frac{1}{2\sqrt{t}}\frac{1}{\left|\cos\theta\right|}\\
&amp;\geq2\pi\int_{1}^{\frac{1}{2}A^2}\frac{\left|\cos t\right|}{t}dt\quad\text{发散}\end{aligned}\]

<p>故$\displaystyle\iint_{x^2+y^2\geq1}\frac{\cos(x^2)}{x^2+y^2}dxdy$发散.</p>

<h4 id="exercise-3">Exercise 3</h4>
<p>研究下列积分的收敛性</p>

\[\int_{0}^{+\infty}\frac{x^q}{1+x^p}\cos xdx\]

<h5 id="solution-3">Solution 3</h5>
<p>可能的奇点：$0,+\infty$</p>

\[\int_{0}^{+\infty}\frac{x^q}{1+x^p}\cos xdx=\int_{0}^{1}\frac{x^q}{1+x^p}\cos xdx+\int_{1}^{+\infty}\frac{x^q}{1+x^p}\cos xdx\]

<p>在$x=0$处，$\displaystyle\frac{x^q}{1+x^p}\cos x\sim x^q(x\rightarrow0^{+})\Rightarrow q\gt-1$收敛.</p>

<p>在$x\rightarrow+\infty$处，</p>

\[\int_{1}^{+\infty}\frac{x^q}{1+x^p}\cos xdx=\int_{1}^{+\infty}\frac{x^p}{1+x^p}x^{q-p}\cos xdx\]

<p>显然由$Cauchy$判别法易知$q-p\geq0$发散.</p>

<p>当$q-p\lt-1$时，</p>

\[\int_{1}^{+\infty}\left|\frac{x^p}{1+x^p}x^{q-p}\cos x\right|dx\leq\int_{1}^{+\infty}x^{q-p}dx\quad\text{收敛}\]

<p>即此时有$\displaystyle\int_{1}^{+\infty}\frac{x^q}{1+x^p}\cos xdx$绝对收敛.</p>

<p>当$-1\leq q-p\lt0$时，</p>

\[\left|\frac{x^p}{1+x^p}x^{q-p}\cos x\right|\geq\frac{1}{2}x^{q-p}\cos^2x=\frac{1}{4}x^{q-p}(1+\cos 2x)=\frac{1}{4}x^{q-p}+\frac{1}{4}x^{q-p}\cos 2x\]

<p>而$\displaystyle\int_{1}^{+\infty}\frac{1}{4}x^{q-p}dx$发散，$\displaystyle\int_{1}^{+\infty}\frac{1}{4}x^{q-p}\cos 2xdx$由<strong>Dilichlet判别法</strong>易知收敛，故</p>

\[\int_{1}^{+\infty}\left|\frac{x^p}{1+x^p}x^{q-p}\cos x\right|dx\geq\int_{1}^{+\infty}\frac{1}{4}x^{q-p}dx+\int_{1}^{+\infty}\frac{1}{4}x^{q-p}\cos 2xdx\quad\text{发散}\]

<p>故此时有$\displaystyle\int_{1}^{+\infty}\frac{x^q}{1+x^p}\cos xdx$条件收敛.</p>

<p>综上：</p>

\[\left\{\begin{aligned}
        q-p\lt-1\text{且}q\gt-1&amp;\quad\text{绝对收敛}\\
        -1\leq q-p\lt0\text{且}q\gt-1 &amp;\quad\text{条件收敛}\\
        q-p\geq0\text{或}q\leq-1 &amp;\quad\text{发散}
    \end{aligned}\right.\]

<h4 id="exercise-4">Exercise 4</h4>
<p>设$p\geq0$，数列$a_n$满足$a_1=1,a_{n+1}=n^{-p}\arctan a_n$，判断并证明级数</p>

\[\sum_{n=1}^{\infty}a_n\]

<p>的收敛性</p>

<h5 id="solution-4">Solution 4</h5>

<p>①$p\gt0$时，</p>

\[\arctan x\sim x(x\rightarrow0)\quad\frac{a_{n+1}}{a_n}\sim n^{-p}\rightarrow0(n\rightarrow\infty)\]

<p>由达朗贝尔判别法知<strong>收敛</strong>.</p>

<p>②$p=0$时，</p>

\[a_{n+1}=\arctan a_n\quad\arctan x\sim x-\frac{1}{3}x^3+o(x^3)\]

\[\lim_{n\rightarrow\infty}\frac{a_n^r}{n}=\lim_{n\rightarrow\infty}\frac{a_{n+1}^r-a_n^r}{n+1-n}=\lim_{n\rightarrow\infty}\frac{r\theta_n^{r-1}(a_{n+1}-a_n)}{1}=\lim_{n\rightarrow\infty}ra_n^{r-1}(-\frac{1}{3}a_n^3)=-\frac{r}{3}\lim_{n\rightarrow\infty}a_n^{r+2}\]

<p>取$r=-2$有$\lim_{n\rightarrow\infty}\frac{a_n^{-2}}{n}=\frac{2}{3}\Rightarrow a_n\sim\sqrt{\frac{2}{3n}}\Rightarrow\sum_{n=1}^{+\infty}a_n$<strong>发散</strong>.</p>

<h4 id="exercise-5">Exercise 5</h4>
<p>判断下列积分的收敛性</p>

\[\int_{0}^{+\infty}(-1)^{\left[x^3\right]}dx\]

<h5 id="solution-5">Solution 5</h5>
<p>显然这是一个<strong>非绝对收敛</strong>的积分.</p>

\[\int_{0}^{+\infty}(-1)^{\left[x^3\right]}dx=\sum_{n=0}^{+\infty}\int_{\sqrt[3]{n}}^{\sqrt[3]{n+1}}(-1)^ndx=\sum_{n=0}^{+\infty}\left((n+1)^{\frac{1}{3}}-n^{\frac{1}{3}}\right)(-1)^n=\sum_{n=0}^{+\infty}\frac{1}{3\sqrt[3]{\theta_n^2}}\]

<p>其中$n\leq\theta_n\leq n+1$，故由$Libiniz$判别法知收敛，即$\displaystyle\int_{0}^{+\infty}(-1)^{\left[x^3\right]}dx$<strong>条件收敛</strong>.</p>

<h4 id="exercise-6">Exercise 6</h4>
<p>设$G$为$\mathbb{R}^2$上的有界闭区域，$\partial G$由有线条分段光滑的简单闭曲线构成，假设$u\in C^2(G)$，且$u$在边界上恒为$0$，证明对$\forall\lambda\gt0$，</p>

\[\lambda\int_{G}u^2dxdy+\frac{1}{\lambda}\int_{G}\left(\frac{\partial^2 u}{\partial x^2}+\frac{\partial^2 u}{\partial y^2}\right)dxdy\geq2\int_{G}\left(\frac{\partial u}{\partial x}\right)^2+\left(\frac{\partial u}{\partial y}\right)^2dxdy\]

<h5 id="solution-6">Solution 6</h5>
<p>由于$u$在$\partial G$上恒为$0$，故由<strong>Green公式</strong>有</p>

\[0=\int_{\partial G}u(u_xdy-u_ydx)=\iint_{G}(u_x^2+u_y^2+u\cdot u_{xx}+u\cdot u_{yy})dxdy\]

\[\Rightarrow\iint_{G}(u_x^2+u_y^2)dxdy=\iint_{G}-u(u_{xx}+u_{yy})dxdy\]

<p>由<strong>Cauchy-Schwart积分不等式</strong>有：</p>

\[\begin{aligned}
    &amp;\lambda\int_{G}u^2dxdy+\frac{1}{\lambda}\int_{G}\left(\frac{\partial^2 u}{\partial x^2}+\frac{\partial^2 u}{\partial y^2}\right)dxdy\geq2\iint_{G}\left|u(u_{xx}+u_{yy})\right|dxdy\\
    \geq&amp;2\iint_{G}-u(u_{xx}+u_{yy})dxdy=2\iint_{G}(u_x^2+u_y^2)dxdy=2\int_{G}\left(\frac{\partial u}{\partial x}\right)^2+\left(\frac{\partial u}{\partial y}\right)^2dxdy
\end{aligned}\]

<p>故综上：</p>

\[\lambda\int_{G}u^2dxdy+\frac{1}{\lambda}\int_{G}\left(\frac{\partial^2 u}{\partial x^2}+\frac{\partial^2 u}{\partial y^2}\right)dxdy\geq2\int_{G}\left(\frac{\partial u}{\partial x}\right)^2+\left(\frac{\partial u}{\partial y}\right)^2dxdy\]

<h2 id="solution-for-pdf">Solution for PDF</h2>
<p>Click <a href="/files/Exam/Exam2024Fall-NKU-Analysis-Mid-Exam-Solution.pdf">Here</a> and get the solution of this exam.</p>
<h2 id="remark">Remark</h2>
<p>If you have any questions or need further assistance, feel free to ask! Here is my email: <a href="mailto:nkusherr1@gmail.com">nkusherr1 at gmail.com</a></p>]]></content><author><name>Sherr1</name><email>nkuSherr1@nankai.edu.cn</email></author><category term="Analysis Problems" /><category term="Series Problems" /><category term="Nankai University" /><category term="Exam" /><summary type="html"><![CDATA[Introduction This is the Midterm Exam of Mathematical Analysis III(Boling Class) at Nankai University in the autumn semester of 2024-2025.]]></summary></entry><entry><title type="html">Complex Analysis 2</title><link href="https://nkusherr1.github.io/posts/2024/10/js-20yrs-preface/" rel="alternate" type="text/html" title="Complex Analysis 2" /><published>2024-10-26T00:00:00+00:00</published><updated>2024-10-26T00:00:00+00:00</updated><id>https://nkusherr1.github.io/posts/2024/10/js-20yrs-preface</id><content type="html" xml:base="https://nkusherr1.github.io/posts/2024/10/js-20yrs-preface/"><![CDATA[<h2 id="introduction">Introduction</h2>
<p>This is the second class of Complex Analysis, hosted by <em>Shengxuan Tang</em>. In this class, we will focus on the following topics:</p>

<p><strong>Essential Singularity</strong></p>
<ul>
  <li><em>Casorati Weierstrass</em> Theorem</li>
  <li>Meromorphic Function</li>
  <li>Holomorphism</li>
  <li>Calculation of Residue</li>
</ul>

<p><strong>Argument Principle</strong></p>

<p><strong>Rouche Theorem</strong></p>
<ul>
  <li>Fundamental Theorem of Algebra</li>
</ul>

<p><strong>Open Mapping Theorem</strong></p>

<h2 id="download">Download</h2>
<p>For more information about the 2nd Class of Complex Analysis, please refer to the following sources(Chinese version):</p>

<p><a href="/files/Grade2/Complex-Analysis-TSX.pdf">Complex Analysis</a> (begin from page <strong>11</strong> to page <strong>16</strong>)</p>

<p>If you have any questions or need further assistance, feel free to ask! Here is my email: <a href="mailto:nkusherr1@gmail.com">nkusherr1 at gmail.com</a></p>]]></content><author><name>Sherr1</name><email>nkuSherr1@nankai.edu.cn</email></author><category term="Complex Analysis" /><category term="Seminar" /><summary type="html"><![CDATA[Introduction This is the second class of Complex Analysis, hosted by Shengxuan Tang. In this class, we will focus on the following topics:]]></summary></entry></feed>